From fee81a2dbda7791f462adc70e080e4bb6e96365f Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Tue, 18 Mar 2025 11:26:40 +0100 Subject: Bug fixes Fixed not outputting '@' if no keyword follows Fixed not outputting newline after @expand expression --- examples/table.c | 27 +++++++++++++++++++++++++++ examples/table.meta | Bin 0 -> 15488 bytes examples/table.meta.c | 21 +++++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 examples/table.c create mode 100755 examples/table.meta create mode 100644 examples/table.meta.c (limited to 'examples') diff --git a/examples/table.c b/examples/table.c new file mode 100644 index 0000000..63edb16 --- /dev/null +++ b/examples/table.c @@ -0,0 +1,27 @@ +#include + +@table(name, str) MyEnumTable +{ + { A "A" } + { B "Beau Gosse" } + { C "C" } +} + +typedef enum { +@expand(MyEnumTable a) +` MyEnum_$(a.name),` + MyEnum_Count +} MyEnum; + +char *StringTable[MyEnum_Count] = { +@expand(MyEnumTable a) +` $(a.str),` +}; + +int +main(int Argc, char *Args[]) +{ + printf("@: %s\n", StringTable[MyEnum_B]); + + return 0; +} diff --git a/examples/table.meta b/examples/table.meta new file mode 100755 index 0000000..2976f54 Binary files /dev/null and b/examples/table.meta differ diff --git a/examples/table.meta.c b/examples/table.meta.c new file mode 100644 index 0000000..5534457 --- /dev/null +++ b/examples/table.meta.c @@ -0,0 +1,21 @@ +#include + + + +typedef enum { + MyEnum_A, // "A" MyEnum_B, // "Beau Gosse" MyEnum_C, // "C" MyEnum_Count +} MyEnum; + +char *StringTable[MyEnum_Count] = { + "A", + "Beau Gosse", + "C", +}; + +int +main(int Argc, char *Args[]) +{ + printf("%s\n", StringTable[MyEnum_B]); + + return 0; +} -- cgit v1.2.3