Ejemplo n.º 1
0
 /**
  * Creates a method call on an object with an empty argument list.
  *
  * @param Node $object
  *  The expression that is an object.
  * @param string $method_name
  *  The name of the called method.
  *
  * @return static
  */
 public static function create(Node $object, $method_name)
 {
     /** @var ObjectMethodCallNode $node */
     $node = new static();
     $node->addChild($object, 'object');
     $node->addChild(Token::objectOperator(), 'operator');
     $node->addChild(Token::identifier($method_name), 'methodName');
     $node->addChild(Token::openParen(), 'openParen');
     $node->addChild(new CommaListNode(), 'arguments');
     $node->addChild(Token::closeParen(), 'closeParen');
     return $node;
 }
Ejemplo n.º 2
0
 /**
  * Creates a method call on a class with an empty argument list.
  *
  * @param Node|string $class_name
  *  The class node which is typically NameNode of class.
  * @param string $method_name
  *  The name of the called method.
  *
  * @return static
  */
 public static function create($class_name, $method_name)
 {
     if (is_string($class_name)) {
         $class_name = NameNode::create($class_name);
     }
     /** @var ClassMethodCallNode $node */
     $node = new static();
     $node->addChild($class_name, 'className');
     $node->addChild(Token::doubleColon());
     $node->addChild(Token::identifier($method_name), 'methodName');
     $node->addChild(Token::openParen(), 'openParen');
     $node->addChild(new CommaListNode(), 'arguments');
     $node->addChild(Token::closeParen(), 'closeParen');
     return $node;
 }
Ejemplo n.º 3
0
 public function visitNewNode(NewNode $node)
 {
     if (!$node->getArgumentList()) {
         $node->append(Token::openParen());
         $node->addChild(new CommaListNode(), 'arguments');
         $node->append(Token::closeParen());
     }
 }
Ejemplo n.º 4
0
 /**
  * Creates an empty lexical variables list if it does not already exist.
  */
 protected function createLexicalVariables()
 {
     if (!$this->hasLexicalVariables()) {
         $this->lexicalUse = Token::_use();
         $this->lexicalOpenParen = Token::openParen();
         $this->lexicalVariables = new CommaListNode();
         $this->lexicalCloseParen = Token::closeParen();
         $this->closeParen->after([Token::space(), $this->lexicalUse, Token::space(), $this->lexicalOpenParen, $this->lexicalVariables, $this->lexicalCloseParen]);
     }
 }