3 class MacroDef<string name> {
8 class SimpleMacroDef<string name, string value> : MacroDef<name> {
9 let Defn = !strconcat("#define ", name, " ", value);
12 class MacroDefineIfNot<string name, string value> : MacroDef<name> {
13 let Defn = !strconcat("#ifndef ", name, "\n",
14 "#define " , name, " ", value, "\n",
18 class PublicAPI<string name> {
19 string HeaderName = name;
20 list<MacroDef> Macros = [];
21 list<string> Types = [];
22 list<string> Enumerations = [];
23 list<string> Structs = [];
24 list<string> Functions = [];
25 list<string> Objects = [];