public function testTokenizer() { $parser = new Parser(); $parser->parse($this->getRawContent('sample1')); $tokens = $parser->getTokens(); $tracker = $parser->getTracker(); $firstIf = $tokens->get(1); $firstIfOpen = $tokens->get(2); $this->assertEquals('if', $firstIf->contents); $this->assertEquals('(', $firstIfOpen->contents); $tracker->visitToken($firstIfOpen); $this->assertEquals($firstIf, $tracker->getPrevToken()); $tracker->visitToken($firstIf); $this->assertEquals($firstIfOpen, $tracker->getNextToken()); }
public function testBlockPositionsOnAbstractClass() { $blocks = new ArrayList(); $listener = function (BlockEvent $event) use($blocks) { $blocks->add($event->getBlock()); }; $parser = new Parser(); $parser->getContext()->addListener(Context::EVENT_BLOCK_LEAVE, $listener); $parser->parse($this->getRawContent('abstract-class')); $tokens = $parser->getTokens(); // test: class $class = $blocks->get(3); $this->assertEquals(Block::TYPE_CLASS, $class->type); $this->assertEquals($tokens->get(8), $class->start); $this->assertEquals($tokens->get(59), $class->end); // test: static method $static = $blocks->get(1); $this->assertEquals(Block::TYPE_METHOD, $static->type); $this->assertEquals($tokens->get(34), $static->start); $this->assertEquals($tokens->get(46), $static->end); }
public function format() { foreach ($this->parser->getTokens() as $token) { $token->accept($this); } }