From 046cb4b171e2e659193910deb749b63a8da29c88 Mon Sep 17 00:00:00 2001 From: Partho Bhattacharya Date: Fri, 28 Feb 2025 11:50:18 -0500 Subject: [PATCH] solved shift-reduce errors --- grammar.y | 26 ++++++++++++++++++++++---- parser | Bin 40856 -> 40856 bytes 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/grammar.y b/grammar.y index f9f14e8..ca54a25 100644 --- a/grammar.y +++ b/grammar.y @@ -18,6 +18,22 @@ int integ; char * words; } +//precedence order +%precedence RESERVE +%precedence RELEASE +%precedence DOT +%precedence SUB_OR_NEG +%precedence NOT +%left MUL +%left DIV +%left REM +%left ADD +//need subtraction only here +%left LESS_THAN +%left EQUAL_TO +%left AND +%left OR +%left ASSIGN %token ID 101 %token T_INTEGER @@ -50,7 +66,7 @@ %token COLON 508 %token COMMA 509 %token ARROW 510 -%token ADD 601 +/* %token ADD 601 %token SUB_OR_NEG 602 %token MUL 603 %token DIV 604 @@ -63,8 +79,10 @@ %token OR 611 %token DOT 612 %token RESERVE 613 -%token RELEASE 614 +%token RELEASE 614 */ %token COMMENT 700 + + %% program: @@ -140,7 +158,7 @@ expression: constant | UnaryOperator expression | assignable - | expression binaryOperator expression + | constant binaryOperator expression | L_PAREN expression R_PAREN | memOp assignable ; @@ -197,7 +215,7 @@ int main() { int a; while ((a = yyparse()) != EOF){ printf("%d = a: yytext = %s: yychar = %d\n", a, yytext, yychar); - if(yytext[0] == '?'){ + if(yytext[0] == '!'){ print_symbol_table(getAncestor(st),stdout); break; } diff --git a/parser b/parser index cb59b833bc9d5254ff75b3e6fa3d5e61bcbefe06..02e2648389b3dc49b093d9cc710c25095f792e19 100755 GIT binary patch delta 8853 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≺O?XzdCH|>SUmn* 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 sx1LY(Dlg)#m$Q`Z#bP8|yFJOP=l|i@y*uSk