From 06764ad9b3bb621b9a36e11b3cfbe0f1ed266bd2 Mon Sep 17 00:00:00 2001 From: Meyer Simon Date: Fri, 7 Mar 2025 12:36:06 -0500 Subject: [PATCH] Prec not working --- src/grammar.y | 28 ++++++++++++------------- tests/sprint2/test/sp2_presidence.alpha | 4 ++++ 2 files changed, 18 insertions(+), 14 deletions(-) create mode 100644 tests/sprint2/test/sp2_presidence.alpha diff --git a/src/grammar.y b/src/grammar.y index 350b568..0fc6eb0 100644 --- a/src/grammar.y +++ b/src/grammar.y @@ -177,20 +177,20 @@ rec_op : expression: constant - | SUB_OR_NEG expression %prec UMINUS - | NOT expression - | expression ADD expression - | expression SUB_OR_NEG expression - | expression MUL expression - | expression DIV expression - | expression REM expression - | expression AND expression - | expression OR expression - | expression LESS_THAN expression - | expression EQUAL_TO expression - | assignable - | L_PAREN expression R_PAREN - | memOp assignable + | SUB_OR_NEG expression %prec UMINUS{printf("==\n");} + | NOT expression{printf("==\n");} + | expression ADD expression %prec ADD {printf("doing addition\n");} + | expression SUB_OR_NEG expression %prec SUB_OR_NEG{printf("subtraction\n");} + | expression MUL expression %prec MUL {printf("multiplication\n");} + | expression DIV expression %prec DIV{printf("division\n");} + | expression REM expression %prec REM {printf("remainder\n");} + | expression AND expression %prec AND {printf("and\n");} + | expression OR expression %prec OR {printf("or\n");} + | expression LESS_THAN expression %prec LESS_THAN {printf("less than\n");} + | expression EQUAL_TO expression %prec EQUAL_TO{printf("==\n");} + | assignable {printf("==\n");} + | L_PAREN expression R_PAREN {printf("==\n");} + | memOp assignable{printf("==\n");} ; ablock: diff --git a/tests/sprint2/test/sp2_presidence.alpha b/tests/sprint2/test/sp2_presidence.alpha new file mode 100644 index 0000000..9b2ef86 --- /dev/null +++ b/tests/sprint2/test/sp2_presidence.alpha @@ -0,0 +1,4 @@ +entry(arg) := { + [integer:x] + x := 3 + 2 * 8; +}