fix a precedence error

This commit is contained in:
blueloveTH 2022-11-08 21:56:43 +08:00
parent 84cdb20687
commit d78dfb9d7f

View File

@ -114,9 +114,9 @@ public:
#undef METHOD #undef METHOD
#undef NO_INFIX #undef NO_INFIX
#define EXPR() parsePrecedence(PREC_COMMA) // no '=' and ',' just a simple expression #define EXPR() parsePrecedence(PREC_LOGICAL_OR) // no '=' and ',' just a simple expression
#define EXPR_TUPLE() parsePrecedence(PREC_ASSIGNMENT) // no '=', but ',' is allowed #define EXPR_TUPLE() parsePrecedence(PREC_COMMA) // no '=', but ',' is allowed
#define EXPR_ANY() parsePrecedence(PREC_NONE) #define EXPR_ANY() parsePrecedence(PREC_ASSIGNMENT)
} }
_Str eatStringUntil(char quote) { _Str eatStringUntil(char quote) {
@ -620,7 +620,7 @@ __LISTCOMP:
} }
(this->*prefix)(); (this->*prefix)();
while (rules[peek()].precedence > precedence) { while (rules[peek()].precedence >= precedence) {
lexToken(); lexToken();
_TokenType op = parser->previous.type; _TokenType op = parser->previous.type;
GrammarFn infix = rules[op].infix; GrammarFn infix = rules[op].infix;