diff options
Diffstat (limited to 'modules/tools/c_gen_iface.hpp')
-rw-r--r-- | modules/tools/c_gen_iface.hpp | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/modules/tools/c_gen_iface.hpp b/modules/tools/c_gen_iface.hpp index f9ff219..08cf2f4 100644 --- a/modules/tools/c_gen_iface.hpp +++ b/modules/tools/c_gen_iface.hpp @@ -16,9 +16,28 @@ namespace impl { namespace schema { using namespace saw::schema; +using CVar = Struct< + Member<schema::String, "schema">, + Member<schema::String, "type">, + Member<schema::String, "name"> +>; + +using CStruct = Struct< + Member<schema::String, "schema">, + Member<schema::String, "name">, + Member<Array<CVar>, "members"> +>; + +using CFunction = Struct< + Member<schema::String, "schema">, + Member<schema::String, "name">, + Member<Array<CVar>, "params"> +>; + using CIface = Struct< - Member<schema::String,"members"> - Member<schema::String,"structs"> + Member<schema::String, "schema">, + Member<Array<CStruct>,"structs">, + Member<Array<CFunction>,"function"> >; } /** @@ -424,6 +443,11 @@ error_or<void> generate_iface_example(){ schema::Member<Func1, "func_one"> >; + using CIfaceDesc = schema::Struct< + Member<schema::String, "prefix">, + Member<schema::String, "encoding"> + >; + impl::c_types::state c_state; c_state.prefix = "c_saw"; c_state.encoding = "saw::encode::Native"; |