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