コード例 #1
0
ファイル: ParameterNode.php プロジェクト: kidaa30/redcat
 /**
  * Create a parameter node.
  *
  * @param string $parameter_name
  *   Parameter name, eg. $parm
  * @return ParameterNode
  */
 public static function create($parameter_name)
 {
     $parameter_name = '$' . ltrim($parameter_name, '$');
     $parameter_node = new ParameterNode();
     $parameter_node->addChild(new VariableNode(T_VARIABLE, $parameter_name), 'name');
     return $parameter_node;
 }
コード例 #2
0
ファイル: Parser.php プロジェクト: kidaa30/redcat
 /**
  * Parse parameter.
  * @return ParameterNode
  */
 private function parameter()
 {
     $node = new ParameterNode();
     if ($type = $this->optionalTypeHint()) {
         $node->addChild($type, 'typeHint');
     }
     $this->tryMatch('&', $node, 'reference');
     $this->tryMatch(T_ELLIPSIS, $node, 'variadic');
     $this->mustMatch(T_VARIABLE, $node, 'name', TRUE);
     if ($this->tryMatch('=', $node)) {
         $node->addChild($this->staticScalar(), 'value');
     }
     return $node;
 }