Example #1
0
 /**
  * @param Node $key
  *   Array element's key.
  * @param Node $value
  *   Array element's value.
  *
  * @return ArrayPairNode
  */
 public static function create($key, $value)
 {
     $node = new ArrayPairNode();
     $node->addChild($key, 'key');
     $node->addChild(Token::space());
     $node->addChild(Token::doubleArrow());
     $node->addChild(Token::space());
     $node->addChild($value, 'value');
     return $node;
 }
Example #2
0
 /**
  * Parse an array pair.
  * @return Node
  */
 private function arrayPair()
 {
     if ($this->currentType === '&') {
         return $this->writeVariable();
     }
     $node = $this->expr();
     if ($this->currentType === T_DOUBLE_ARROW) {
         $expr = $node;
         $node = new ArrayPairNode();
         $node->addChild($expr, 'key');
         $this->mustMatch(T_DOUBLE_ARROW, $node);
         if ($this->currentType === '&') {
             $node->addChild($this->writeVariable(), 'value');
         } else {
             $node->addChild($this->expr(), 'value');
         }
     }
     return $node;
 }