private function assertTokenizerOutput($source_file, $tokens_file) { $source = $this->loadFixture($source_file); $expected_tokens = json_decode($this->loadFixture($tokens_file), true); $nodes = $this->phpParser->parse($source); $tokenizer = new TreeEmittingTokenizer(new PhpNodesInputStream($nodes), $tree = new DecodingTreeBuilder()); $tokenizer->parse(); $actual_tokens = $tree->save(); $this->assertEquals($expected_tokens, $this->normalize($actual_tokens)); }
private function assertTreeBuilderOutput($source_file, $tokens_file) { $source = $this->loadFixture($source_file); $phpNodes = $this->phpParser->parse($source); $tokenizer = new TreeEmittingTokenizer(new PhpNodesInputStream($phpNodes), $tree = new TreeBuilder($this->componentsProvider)); $nodes = $tokenizer->parse(); $actual = new \DOMDocument(); $actual->preserveWhiteSpace = false; $actual->loadXML($this->serializer->serialize($nodes)); $expected = new \DOMDocument(); $expected->preserveWhiteSpace = false; $expected->loadXML($this->loadFixture($tokens_file)); $this->assertEquals($expected, $actual); }
/** * @param string $code Source code * @return Node[] */ public function parse($code) { $nodes = $this->phpParser->parse($code); $tokenizer = new TreeEmittingTokenizer(new PhpNodesInputStream($nodes), new TreeBuilder($this->components)); return $tokenizer->parse(); }