include "spec/spec.td" class TypeDecl { string Name = name; string Decl = ""; } class MacroDef { string Name = name; string Defn = ""; } class SimpleMacroDef : MacroDef { let Defn = !strconcat("#define ", name, " ", value); } class MacroDefineIfNot : MacroDef { let Defn = !strconcat("#ifndef ", name, "\n", "#define " , name, " ", value, "\n", "#endif // ", name); } class PublicAPI { string HeaderName = name; list Macros = []; list TypeDeclarations = []; list Enumerations = []; list Structs = []; list Functions = []; }