Example #1
0
 /**
  * When the given token is the next token then move
  * to it, otherwise throw a syntax error exception.
  *
  * @param int $token The token code to check.
  * @return AnnotationToken The next token.
  */
 private function next($token)
 {
     /* @var \com\mohiva\common\lang\AnnotationToken $lookahead */
     $lookahead = $this->stream->getLookahead();
     if ($lookahead && $lookahead->getCode() !== $token || !$lookahead) {
         $this->syntaxError(array($token), $lookahead);
     }
     $this->stream->next();
     return $this->stream->current();
 }
Example #2
0
 /**
  * Test if can get the lookahead token if iterator mode is set to LIFO.
  *
  * @param \com\mohiva\common\parser\TokenStream $stream The token stream to use for this test.
  * @dataProvider tokenStreamProvider
  */
 public function testGetLookaheadInLifoMode(TokenStream $stream)
 {
     // user.name.split(" ").join("-")
     $stream->setIteratorMode(TokenStream::IT_MODE_LIFO);
     $stream->rewind();
     $this->assertSame($stream->getLookahead()->getCode(), self::T_VALUE);
     $this->assertSame($stream->getLookahead(1)->getCode(), self::T_VALUE);
     $stream->next();
     $this->assertSame($stream->getLookahead(1)->getCode(), self::T_OPEN_PARENTHESIS);
     $stream->next();
     $this->assertSame($stream->getLookahead(1)->getCode(), self::T_NAME);
     $stream->next();
     $this->assertSame($stream->getLookahead(1)->getCode(), self::T_POINT);
     $this->assertSame($stream->getLookahead(2)->getCode(), self::T_CLOSE_PARENTHESIS);
     $this->assertSame($stream->getLookahead(3)->getCode(), self::T_VALUE);
     $this->assertSame($stream->getLookahead(4)->getCode(), self::T_OPEN_PARENTHESIS);
     $this->assertSame($stream->getLookahead(5)->getCode(), self::T_NAME);
     $this->assertSame($stream->getLookahead(6)->getCode(), self::T_POINT);
     $this->assertSame($stream->getLookahead(7)->getCode(), self::T_NAME);
     $this->assertSame($stream->getLookahead(8)->getCode(), self::T_POINT);
     $this->assertSame($stream->getLookahead(9)->getCode(), self::T_NAME);
     $this->assertNull($stream->getLookahead(10));
 }