diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2003-10-29T16·05+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2003-10-29T16·05+0000 |
commit | b95a3dc45bcbbe8a0985bab82146ed00afcf0239 (patch) | |
tree | 75ec3e901b3af65a814770aae807c790d20eff1d /src/fix-ng/bin2c.c | |
parent | 4d728f6a36c83ff684426788df775b385fae9e88 (diff) |
* Basic grammar and parser for the Fix language. We use libsglr and
friends to do the parsing. The parse table is embedded in the Fix executable using bin2c, which converts an arbitrary file into a C character array.
Diffstat (limited to 'src/fix-ng/bin2c.c')
-rw-r--r-- | src/fix-ng/bin2c.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/fix-ng/bin2c.c b/src/fix-ng/bin2c.c new file mode 100644 index 000000000000..18bf81d69e25 --- /dev/null +++ b/src/fix-ng/bin2c.c @@ -0,0 +1,23 @@ +#include <stdlib.h> +#include <stdio.h> +#include <stdarg.h> + +void print(const char *format, ...) +{ + va_list ap; + va_start(ap, format); + if (vprintf(format, ap) < 0) abort(); + va_end(ap); +} + +int main(int argc, char * * argv) +{ + int c; + if (argc != 2) abort(); + print("static unsigned char %s[] = {", argv[1]); + while ((c = getchar()) != EOF) { + print("0x%02x, ", (unsigned char) c); + } + print("};\n"); + return 0; +} |