Example #1
0
 public static function getInterfaceDefs(PHC $phc)
 {
     $children = $phc->getXmlElement()->children(PHC::PHC_NS);
     $list = new InterfaceMetaDataList();
     foreach ($children->AST_interface_def_list as $key => $listDefList) {
         if (strcasecmp($key, InterfaceMetaDataList::NODE_NAME) !== 0) {
             continue;
         }
         $children = $listDefList->children();
         foreach ($children as $name => $interfaceDef) {
             if (strcasecmp($name, InterfaceMetaData::NODE_NAME) !== 0) {
                 continue;
             }
             $interfaceMeta = new InterfaceMetaData();
             $interfaceMeta->setToken(new InterfaceTokenMetaData(self::getTokenValue($interfaceDef->Token_interface_name)));
             $interfaceMeta->setInterfaceMetaDataList(self::getInterfaceNameList($interfaceDef));
             $interfaceMeta->setMemberList(self::getMemberList($interfaceDef));
             $list->add($interfaceMeta);
         }
     }
     return $list;
 }
Example #2
0
 public function visitInterfaceMeta(InterfaceMetaData $meta)
 {
     $buf = new TreeOutput();
     $buf->add('[' . $meta->getNodeName() . ']');
     $buf->down();
     $buf->writeln($meta->getToken()->toJSValue($this));
     $buf->writeln($meta->getInterfaceList()->toJSValue($this));
     $buf->writeln($meta->getMemberList()->toJSValue($this));
     $buf->up();
     return $buf;
 }