Beispiel #1
0
 /**
  * constructor
  */
 public function __construct($src = null)
 {
     parent::__construct($src);
     $this->addFilter('map-ident', 'IDENT', array($this, 'mapIdentifierFilter'));
     $this->addFilter('comment-note', 'COMMENT', array('Luminous\\Core\\Filters', 'commentNote'));
     $this->addFilter('comment-to-doc', 'COMMENT', array('Luminous\\Core\\Filters', 'genericDocComment'));
     $this->addFilter('string-escape', 'STRING', array('Luminous\\Core\\Filters', 'string'));
     $this->addFilter('char-escape', 'CHARACTER', array('Luminous\\Core\\Filters', 'string'));
     $this->addFilter('pcre', 'REGEX', array('Luminous\\Core\\Filters', 'pcre'));
     $this->addFilter('user-defs', 'IDENT', array($this, 'userDefFilter'));
     $this->addFilter('constant', 'IDENT', array('Luminous\\Core\\Filters', 'upperToConstant'));
     $this->addFilter('clean-ident', 'IDENT', array('Luminous\\Core\\Filters', 'cleanIdent'));
     $this->addStreamFilter('rule-map', array($this, 'ruleMapperFilter'));
     $this->addStreamFilter('oo-syntax', array('Luminous\\Core\\Filters', 'ooStreamFilter'));
 }
Beispiel #2
0
assert($out === array(0 => 6, 1 => array(0 => '45')));
$s->posShift(3);
$out = $s->getNext(array('/\\d+/', '/\\s+/'));
assert($out === array(0 => -1, 1 => null));
$s->reset();
$out = $s->getNextStrpos(array('1', ';'));
assert($out === array(0 => 1, 1 => '1'));
$s->posShift(2);
$out = $s->getNextStrpos(array('1', ';'));
assert($out === array(0 => 5, 1 => ';'));
$s->pos(6);
$out = $s->getNextStrpos(array('1', ';'));
assert($out === array(-1, null));
$s->reset();
$s->string('0123');
$rules = array('one' => '/1/', 'zero' => '/0/', 'digit' => '/\\d+/');
$out = $s->getNextNamed($rules);
assert($out === array('zero', 0, array('0')));
$s->posShift(1);
$out = $s->getNextNamed($rules);
assert($out === array('one', 1, array('1')));
$s->posShift(1);
$out = $s->getNextNamed($rules);
assert($out === array('digit', 2, array('23')));
// rest() had a problem being independent on two scanners
$s2 = new StringScanner('123');
$s3 = new StringScanner('456');
assert($s2->rest() === '123');
assert($s3->rest() === '456');
assert($s2->rest() === $s2->string());
assert($s3->rest() === $s3->string());