The Meta-Environment API
00001 /*#define TODO(m) printf("%s:%d - TODO: %s\n", __FILE__, __LINE__, m)*/ 00002 process TODO(Msg : str) is printf("TODO: %s\n", Msg) 00003 00004 /* meta-kernel */ 00005 #include <module-utils.tb> 00006 #include <error-utils.tb> 00007 #include <error-output.tb> 00008 #include <transaction-management.tb> 00009 #include <text-utils.tb> 00010 00011 /* sdf-meta */ 00012 #include <sdf-listeners.tb> 00013 #include <sdf-utils.tb> 00014 #include <sdf2-language.tb> 00015 #include <sdf-initialize.tb> 00016 #include <term-parsetable.tb> 00017 #include <sdf-transactions.tb> 00018 00019 process StartDefinitionDumper is 00020 let 00021 MenuEventList: list, 00022 ModuleId: module-id, 00023 Event: attribute-changed-event, 00024 Value: term 00025 in 00026 snd-msg(tm-request-transaction(module-manager)) 00027 . OpenModule(MODULENAME, ModuleId?) 00028 . MM-Subscribe-Attribute-Changed(ModuleId,SDF_NAMESPACE,"status",<term>,complete) 00029 . MM-Subscribe-Attribute-Changed(<module-id>,SDF_NAMESPACE,"status",<term>,error) 00030 . MM-Subscribe-Attribute-Changed(<module-id>,SDF_NAMESPACE,"status",<term>,unavailable) 00031 . rec-note(mm-attribute-changed(Event?)) 00032 . snd-msg(tm-end-transaction(module-manager)) 00033 . ACE-GetNewValue(Event, Value?) 00034 . 00035 if or(equal(Value, error), equal(Value, unavailable)) then 00036 printf("Error occurred loading %t\n", MODULENAME) 00037 else 00038 snd-msg(tm-request-transaction(syntax-definition)) 00039 . DumpSdfDefinition(ModuleId, OUTPUTFILE) 00040 . snd-msg(tm-end-transaction(syntax-definition)) 00041 fi 00042 . shutdown("") 00043 endlet 00044 00045 toolbus(StartDefinitionDumper) 00046