From 73eabebb95c0c1c0292391c5d5cc828811b706bf Mon Sep 17 00:00:00 2001 From: mtardy Date: Wed, 17 Jun 2020 13:18:41 +0200 Subject: [PATCH] Remove calc.leg for indentation fix --- calc.leg | 48 ------------------------------------------------ 1 file changed, 48 deletions(-) delete mode 100644 calc.leg diff --git a/calc.leg b/calc.leg deleted file mode 100644 index dd37277..0000000 --- a/calc.leg +++ /dev/null @@ -1,48 +0,0 @@ -%{ - -/* compile: leg -o calc.c calc.leg - * cc -o calc calc.c - * - * run: echo "2+3" | ./calc - */ - -#define YYSTYPE int -YYSTYPE yylval = 0; - -%} - -start = e:exp { yylval = e } - -exp = - s:sum { $$ = s } - -sum = PLUS* l:prod - ( PLUS+ r:prod { l += r } - | MINUS r:prod { l -= r } - )* { $$ = l } - -prod = l:neg - ( MULTI r:neg { l *= r } - | DIVIDE r:neg { l /= r } - | MODULO r:neg { l %= r } - )* { $$ = l } - -neg = MINUS n:neg { $$ = -n } - | n:NUMBER { $$ = n } - -- = [ \t]* -NUMBER = < [0-9]+ > - { $$ = atoi(yytext) } -PLUS = '+' - -MINUS = '-' - -MULTI = '*' - -DIVIDE = '/' - -MODULO = '%' - -%% - -int main(int argc, char **argv) -{ - while (yyparse()) { - printf("%d\n", yylval); - } - - return 0; -}