Exemple #1
0
 public static function getClassDefs(PHC $phc)
 {
     $children = $phc->getXmlElement()->children(PHC::PHC_NS);
     $list = new ClassMetaDataList();
     foreach ($children->AST_class_def_list as $key => $classDefList) {
         if (strcasecmp($key, ClassMetaDataList::NODE_NAME) !== 0) {
             continue;
         }
         $children = $classDefList->children();
         foreach ($children as $name => $classDef) {
             if (strcasecmp($name, ClassMetaData::NODE_NAME) !== 0) {
                 continue;
             }
             $classMeta = new ClassMetaData();
             $classMeta->setToken(new ClassTokenMetaData(self::getTokenValue($classDef->Token_class_name)));
             $classMeta->setInterfaceMetaDataList(self::getInterfaceNameList($classDef));
             $classMeta->setMemberList(self::getMemberList($classDef));
             $list->add($classMeta);
         }
     }
     return $list;
 }
Exemple #2
0
 public function visitClassListMeta(ClassMetaDataList $meta)
 {
     $buf = new TreeOutput();
     $buf->add('[' . $meta->getNodeName() . ']');
     $buf->down();
     $list = $meta->getList();
     foreach ($list as $class) {
         $buf->writeln($class->toJSValue($this));
     }
     $buf->up();
     return $buf;
 }