/** * This method will parse a variable declarator. * * <code> * // Parameter declarator * function foo($x = 23) { * } * // Property declarator * class Foo{ * protected $bar = 42; * } * // Static declarator * function baz() { * static $foo; * } * </code> * * @return PHP_Depend_Code_ASTVariableDeclarator * @since 0.9.6 */ private function _parseVariableDeclarator() { $this->_tokenStack->push(); $name = $this->consumeToken(self::T_VARIABLE)->image; $this->consumeComments(); $declarator = $this->builder->buildASTVariableDeclarator($name); if ($this->tokenizer->peek() === self::T_EQUAL) { $this->consumeToken(self::T_EQUAL); $declarator->setValue($this->_parseStaticValueOrStaticArray()); } return $this->_setNodePositionsAndReturn($declarator); }
/** * testPopOnRootReturnsExpectedTokenArrayWithAllTokens * * @return void */ public function testPopOnRootReturnsExpectedTokenArrayWithAllTokens() { $stack = new PHP_Depend_Parser_TokenStack(); $stack->push(); $expected = array($stack->add($this->createToken()), $stack->add($this->createToken())); $stack->push(); $expected[] = $stack->add($this->createToken()); $expected[] = $stack->add($this->createToken()); $stack->pop(); self::assertSame($expected, $stack->pop()); }