/** * tests getTokensUntilClosingScope */ public function testGetTokensUntilClosingScope() { $lexer = new Lexer("{ foo => 'bar' \n { next => 'level' } }"); $parser = new Parser_Dummy($lexer->tokens()); $this->assertEquals(9, count($parser->getTokensUntilClosingScope())); // also check of the parser is done $this->assertTrue($parser->parserIsDone()); // include the scope $lexer = new Lexer("{ foo => 'bar' \n { next => 'level' } } '123'"); $parser = new Parser_Dummy($lexer->tokens()); $this->assertEquals(11, count($parser->getTokensUntilClosingScope(true))); // parser should not be done $this->assertFalse($parser->parserIsDone()); // validate the current token $this->assertEquals('123', $parser->currentToken()->getValue()); }
/** * tests Lexer error * * @expectedException \Tattoo\Lexer\Exception */ public function test_unknownToken() { $lexer = new Lexer("รง"); $lexer->tokens(); }
/** * tests Parser */ public function testConsturct() { $lexer = new Lexer('foo'); $parser = new Scope($lexer->tokens()); $this->assertInstanceOf('Tattoo\\Parser', $parser); }
/** * Parse tattoo code * * @throws Tattoo\Exception * * @param string $code * @return Node\Scope */ public function parse($code) { $lexer = new Lexer($code); $parser = new ScopeParser($lexer->tokens()); return $parser->parse(); }
/** * parse attributes string and assert the results */ protected function assertAttributesArray(array $expected, $code) { $lexer = new Lexer($code); $parser = new ShortTagParser($lexer->tokens()); foreach ($parser->parseAttributeTokens($parser->getTokens()) as $key => $values) { $this->assertEquals($expected[$key], $values); } }