From 7ccd9286bafbd01fbda67c2f234998c2e591ed2a Mon Sep 17 00:00:00 2001 From: kartofen Date: Thu, 17 Jul 2025 01:27:05 +0300 Subject: ok precedence --- demos/sample-files/arithmetic-skeleton.c | 62 -------------------------------- 1 file changed, 62 deletions(-) delete mode 100644 demos/sample-files/arithmetic-skeleton.c (limited to 'demos/sample-files/arithmetic-skeleton.c') diff --git a/demos/sample-files/arithmetic-skeleton.c b/demos/sample-files/arithmetic-skeleton.c deleted file mode 100644 index ef5ec2f..0000000 --- a/demos/sample-files/arithmetic-skeleton.c +++ /dev/null @@ -1,62 +0,0 @@ -#include ae -#include - -#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, -}; - -struct token { - symbol s; -}; - -static inline struct token *char_to_token(char c) -{ - static struct token t; - - switch(c) { - case '+': t = (struct token){PLUS}; break; - case '-': t = (struct token){MINUS}; break; - case '(': t = (struct token){LPAREN}; break; - case ')': t = (struct token){RPAREN}; break; - case '0': t = (struct token){N0}; break; - case '1': t = (struct token){N1}; break; - case 0 : t = (struct token){END_INPUT}; break; - default: fprintf(stderr, "ERROR: Unknown character '%c'\n", c); exit(1); - } - - return &t; -} - -static char *input; - -symbol token_sym(struct token *t) { return t->s; } -int token_val(struct token *t) { return 0; } -struct token *toklist_eat() { return char_to_token(*(input++)); } // unsafe -struct token *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; -} -- cgit v1.2.3