diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/table.c | 27 | ||||
-rwxr-xr-x | examples/table.meta | bin | 0 -> 15488 bytes | |||
-rw-r--r-- | examples/table.meta.c | 21 |
3 files changed, 48 insertions, 0 deletions
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 <stdio.h> + +@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 Binary files differnew file mode 100755 index 0000000..2976f54 --- /dev/null +++ b/examples/table.meta 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 <stdio.h> + + + +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; +} |