From 2edc9c6fd10e34ca1da0d25d3ceb9b67a6b9c73c Mon Sep 17 00:00:00 2001 From: Přemysl Eric Janouch Date: Fri, 7 Jul 2023 12:25:14 +0200 Subject: 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. --- tools/lxdrgen-c.awk | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'tools/lxdrgen-c.awk') 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" \ -- cgit v1.2.3-54-g00ecf