diff options
Diffstat (limited to 'demos/sample-files/parser-skeleton.c')
-rw-r--r-- | demos/sample-files/parser-skeleton.c | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/demos/sample-files/parser-skeleton.c b/demos/sample-files/parser-skeleton.c deleted file mode 100644 index f601369..0000000 --- a/demos/sample-files/parser-skeleton.c +++ /dev/null @@ -1,52 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> - -#include "lr-parser.c" -#include "bin/generated.c" - -#include "parts/toklist.h" - -enum symbol { - PLUS = 0, - MINUS, - LPAREN, - RPAREN, - N0, N1, - END_INPUT, - - EP, E, T, N, - SYMBOLS_END, -}; - -static inline symbol char_to_token(char c) -{ - switch(c) { - case '+': return PLUS; - case '-': return MINUS; - case '(': return LPAREN; - case ')': return RPAREN; - case '0': return N0; - case '1': return N1; - case 0 : return END_INPUT; - default: fprintf(stderr, "ERROR: Unknown character '%c'\n", c); exit(1); - } -} - -static char *input; - -symbol toklist_eat() { return char_to_token(*(input++)); } // unsafe -symbol toklist_peek() { return char_to_token(*input); } // unsafe - -int main(int argc, char **argv) -{ - if(argc != 2) { - fprintf(stderr, "ERROR: Not enough arguments\n"); - return 1; - } - - input = argv[1]; - - printf("INPUT: '%s'\n", input); - printf("OUTPUT: %d\n", lr_parser()); - return 0; -} |