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; }