private function interfaceDeclaration() {
    $node = new InterfaceNode();
    $this->matchDocComment($node);
    $this->mustMatch(T_INTERFACE, $node);
    $name_node = new NameNode();
    $this->mustMatch(T_STRING, $name_node, NULL, TRUE);
    $node->addChild($name_node, 'name');
    if ($this->tryMatch(T_EXTENDS, $node)) {
      $extends = new CommaListNode();
      do {
        $extends->addChild($this->name());
      } while ($this->tryMatch(',', $extends));
      $node->addChild($extends, 'extends');
    }
    $this->matchHidden($node);
    $statement_block = new StatementBlockNode();
    $this->mustMatch('{', $statement_block, NULL, FALSE, TRUE);
    while ($this->currentType !== NULL && $this->currentType !== '}') {
      $this->matchHidden($statement_block);
      if ($this->currentType === T_CONST) {
        $statement_block->addChild($this->_const());
      }
      else {
        $statement_block->addChild($this->interfaceMethod());
      }
    }
    $this->mustMatch('}', $statement_block, NULL, TRUE, TRUE);
    $node->addChild($statement_block, 'statements');
    return $node;
  }
private function interfaceDeclaration() {
    $node = new InterfaceNode();
    $this->matchDocComment($node);
    $this->mustMatch(T_INTERFACE, $node);
    $name_node = new NameNode();
    $this->mustMatch(T_STRING, $name_node, NULL, TRUE);
    $node->addChild($name_node, 'name');
    if ($this->tryMatch(T_EXTENDS, $node)) {
      $extends = new CommaListNode();
      do {
        $extends->addChild($this->name());
      } while ($this->tryMatch(',', $extends));
      $node->addChild($extends, 'extends');
    }
    $this->matchHidden($node);
    $statement_block = new StatementBlockNode();
    $this->mustMatch('{', $statement_block, NULL, FALSE, TRUE);
    while ($this->currentType !== NULL && $this->currentType !== '}') {
      $this->matchHidden($statement_block);
      if ($this->currentType === T_CONST) {
        $statement_block->addChild($this->_const());
      }
      else {
        $statement_block->addChild($this->interfaceMethod());
      }
    }
    $this->mustMatch('}', $statement_block, NULL, TRUE, TRUE);
    $node->addChild($statement_block, 'statements');
    return $node;
  }
private function interfaceDeclaration ( ) { $ node = new InterfaceNode ( ) ; $ this -> matchDocComment ( $ node ) ; $ this -> mustMatch ( T_INTERFACE , $ node ) ; $ name_node = new NameNode ( ) ; $ this -> mustMatch ( T_STRING , $ name_node , NULL , TRUE ) ; $ node -> addChild ( $ name_node , 'name' ) ; if ( $ this -> tryMatch ( T_EXTENDS , $ node ) ) { $ extends = new CommaListNode ( ) ; do { $ extends -> addChild ( $ this -> name ( ) ) ; } while ( $ this -> tryMatch ( ',' , $ extends ) ) ; $ node -> addChild ( $ extends , 'extends' ) ; } $ this -> matchHidden ( $ node ) ; $ statement_block = new StatementBlockNode ( ) ; $ this -> mustMatch ( '{' , $ statement_block , NULL , FALSE , TRUE ) ; while ( $ this -> currentType !== NULL && $ this -> currentType !== '}' ) { $ this -> matchHidden ( $ statement_block ) ; if ( $ this -> currentType === T_CONST ) { $ statement_block -> addChild ( $ this -> _const ( ) ) ; } else { $ statement_block -> addChild ( $ this -> interfaceMethod ( ) ) ; } } $ this -> mustMatch ( '}' , $ statement_block , NULL , TRUE , TRUE ) ; $ node -> addChild ( $ statement_block , 'statements' ) ; return $ node ; }
Parse an interface declaration.
@return Node
Parse an interface declaration .