diff options
author | Přemysl Eric Janouch <p@janouch.name> | 2023-07-07 12:25:14 +0200 |
---|---|---|
committer | Přemysl Eric Janouch <p@janouch.name> | 2023-07-07 16:43:52 +0200 |
commit | 2edc9c6fd10e34ca1da0d25d3ceb9b67a6b9c73c (patch) | |
tree | 83e3f3c9cd4b4200946ec2428672cecfd6d3d311 /tools/lxdrgen-c.awk | |
parent | f78f8a70f1753d687cae4a23659995b65e91fb3e (diff) | |
download | liberty-2edc9c6fd10e34ca1da0d25d3ceb9b67a6b9c73c.tar.gz liberty-2edc9c6fd10e34ca1da0d25d3ceb9b67a6b9c73c.tar.xz liberty-2edc9c6fd10e34ca1da0d25d3ceb9b67a6b9c73c.zip |
Add a C++ backend for LibertyXDR
Also change the C backend so that it also de/serializes
unions without any other fields besides the tag.
Diffstat (limited to 'tools/lxdrgen-c.awk')
-rw-r--r-- | tools/lxdrgen-c.awk | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/tools/lxdrgen-c.awk b/tools/lxdrgen-c.awk index e898aae..0ee660c 100644 --- a/tools/lxdrgen-c.awk +++ b/tools/lxdrgen-c.awk @@ -222,7 +222,7 @@ function codegen_struct(name, cg, ctype, funcname) { delete cg[i] } -function codegen_union_tag(d, cg) { +function codegen_union_tag(name, d, cg) { cg["tagtype"] = d["type"] cg["tagname"] = d["name"] append(cg, "fields", "\t" CodegenCType[d["type"]] " " d["name"] ";\n") @@ -281,7 +281,7 @@ function codegen_union(name, cg, exhaustive, f, ctype, funcname) { CodegenDispose[name] = "\t" funcname "(&%s);\n" } - if (cg["serialize"]) { + { funcname = PrefixLower cameltosnake(name) "_serialize" print "" print "static bool\n" \ @@ -299,7 +299,7 @@ function codegen_union(name, cg, exhaustive, f, ctype, funcname) { CodegenSerialize[name] = "\tif (!" funcname "(&%s, w))\n" \ "\t\treturn false;\n" } - if (cg["deserialize"]) { + { funcname = PrefixLower cameltosnake(name) "_deserialize" print "" print "static bool\n" \ |