private function getParser($file) { $code = $this->getRawContent($file); $parser = new Parser(); $parser->parse($code); return $parser; }
public function __construct(Parser $parser) { $this->parser = $parser; $this->matcher = $parser->getMatcher(); $this->blockStack = new Stack(); $this->groupStack = new Stack(); $this->contextStack = new Stack(); $this->dispatcher = new EventDispatcher(); }
public function format($code) { $parser = new Parser(); $parser->parse($code); // formatting $delegate = new DelegateFormatter($parser, $this->config); $delegate->format(); // post processing return $delegate->getCode(); }
public function visitToken(Token $token) { $this->parser->getTracker()->visitToken($token); // visit all rules $this->commentsFormatter->visitToken($token); $this->indentationFormatter->visitToken($token); $this->newlineFormatter->visitToken($token); $this->whitespaceFormatter->visitToken($token); $this->blanksFormatter->visitToken($token); $this->defaultFormatter->visitToken($token); }
public function testGroupStack() { $log = new ArrayList(); $listener = function (GroupEvent $event) use($log) { $log->add($event->getName() . ' ' . $event->getGroup()->type); }; $parser = new Parser(); $parser->getContext()->addListener(Context::EVENT_GROUP_ENTER, $listener); $parser->getContext()->addListener(Context::EVENT_GROUP_LEAVE, $listener); $parser->parse($this->getCode()); $this->assertEquals(['context.group_enter block', 'context.group_leave block', 'context.group_enter block', 'context.group_leave block', 'context.group_enter call', 'context.group_leave call', 'context.group_enter block', 'context.group_leave block', 'context.group_enter block', 'context.group_enter group', 'context.group_leave group', 'context.group_leave block'], $log->toArray()); }
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()); }
private function finish(Token $token) { if ($this->parser->getTracker()->isLastToken($token)) { $this->dumpCurrentUnit(); } }
public function visitToken(Token $token) { $this->nextToken = $this->parser->getTracker()->getNextToken(); $this->prevToken = $this->parser->getTracker()->getPrevToken(); $this->doVisitToken($token); }