From d78dfb9d7fc6e952071bfcaad7b668bdea0942de Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Tue, 8 Nov 2022 21:56:43 +0800 Subject: [PATCH] fix a precedence error --- src/compiler.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/compiler.h b/src/compiler.h index 25d341d1..7d728d3a 100644 --- a/src/compiler.h +++ b/src/compiler.h @@ -114,9 +114,9 @@ public: #undef METHOD #undef NO_INFIX -#define EXPR() parsePrecedence(PREC_COMMA) // no '=' and ',' just a simple expression -#define EXPR_TUPLE() parsePrecedence(PREC_ASSIGNMENT) // no '=', but ',' is allowed -#define EXPR_ANY() parsePrecedence(PREC_NONE) +#define EXPR() parsePrecedence(PREC_LOGICAL_OR) // no '=' and ',' just a simple expression +#define EXPR_TUPLE() parsePrecedence(PREC_COMMA) // no '=', but ',' is allowed +#define EXPR_ANY() parsePrecedence(PREC_ASSIGNMENT) } _Str eatStringUntil(char quote) { @@ -620,7 +620,7 @@ __LISTCOMP: } (this->*prefix)(); - while (rules[peek()].precedence > precedence) { + while (rules[peek()].precedence >= precedence) { lexToken(); _TokenType op = parser->previous.type; GrammarFn infix = rules[op].infix;