Exemple #1
0
 /**
  * This method parses a single list-statement node.
  *
  * @return PHP_Depend_Code_ASTListExpression
  * @author Joey Mazzarelli
  * @since 0.9.12
  */
 private function parseListExpression()
 {
     $this->tokenStack->push();
     $token = $this->consumeToken(self::T_LIST);
     $this->consumeComments();
     $list = $this->builder->buildAstListExpression($token->image);
     $this->consumeToken(self::T_PARENTHESIS_OPEN);
     $this->consumeComments();
     while (($tokenType = $this->tokenizer->peek()) !== self::T_EOF) {
         // The variable is optional:
         //   list(, , , , $something) = ...;
         // is valid.
         switch ($tokenType) {
             case self::T_COMMA:
                 $this->consumeToken(self::T_COMMA);
                 $this->consumeComments();
                 break;
             case self::T_PARENTHESIS_CLOSE:
                 break 2;
             case self::T_LIST:
                 $list->addChild($this->parseListExpression());
                 $this->consumeComments();
                 break;
             default:
                 $list->addChild($this->parseVariableOrConstantOrPrimaryPrefix());
                 $this->consumeComments();
                 break;
         }
     }
     $this->consumeToken(self::T_PARENTHESIS_CLOSE);
     return $this->setNodePositionsAndReturn($list);
 }