From 68ed52b34789e28316e8854d154084c9605abbfb Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Sat, 11 Mar 2023 17:47:43 +1100 Subject: [PATCH] Tweaked precedence of binary expressions --- source/toy_parser.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/source/toy_parser.c b/source/toy_parser.c index 89b53fb..0057823 100644 --- a/source/toy_parser.c +++ b/source/toy_parser.c @@ -367,73 +367,73 @@ static Toy_Opcode binary(Toy_Parser* parser, Toy_ASTNode** nodeHandle) { //assignment case TOY_TOKEN_ASSIGN: { - parsePrecedence(parser, nodeHandle, PREC_ASSIGNMENT); + parsePrecedence(parser, nodeHandle, PREC_ASSIGNMENT + 1); return TOY_OP_VAR_ASSIGN; } case TOY_TOKEN_PLUS_ASSIGN: { - parsePrecedence(parser, nodeHandle, PREC_ASSIGNMENT); + parsePrecedence(parser, nodeHandle, PREC_ASSIGNMENT + 1); return TOY_OP_VAR_ADDITION_ASSIGN; } case TOY_TOKEN_MINUS_ASSIGN: { - parsePrecedence(parser, nodeHandle, PREC_ASSIGNMENT); + parsePrecedence(parser, nodeHandle, PREC_ASSIGNMENT + 1); return TOY_OP_VAR_SUBTRACTION_ASSIGN; } case TOY_TOKEN_MULTIPLY_ASSIGN: { - parsePrecedence(parser, nodeHandle, PREC_ASSIGNMENT); + parsePrecedence(parser, nodeHandle, PREC_ASSIGNMENT + 1); return TOY_OP_VAR_MULTIPLICATION_ASSIGN; } case TOY_TOKEN_DIVIDE_ASSIGN: { - parsePrecedence(parser, nodeHandle, PREC_ASSIGNMENT); + parsePrecedence(parser, nodeHandle, PREC_ASSIGNMENT + 1); return TOY_OP_VAR_DIVISION_ASSIGN; } case TOY_TOKEN_MODULO_ASSIGN: { - parsePrecedence(parser, nodeHandle, PREC_ASSIGNMENT); + parsePrecedence(parser, nodeHandle, PREC_ASSIGNMENT + 1); return TOY_OP_VAR_MODULO_ASSIGN; } //comparison case TOY_TOKEN_EQUAL: { - parsePrecedence(parser, nodeHandle, PREC_COMPARISON); + parsePrecedence(parser, nodeHandle, PREC_COMPARISON + 1); return TOY_OP_COMPARE_EQUAL; } case TOY_TOKEN_NOT_EQUAL: { - parsePrecedence(parser, nodeHandle, PREC_COMPARISON); + parsePrecedence(parser, nodeHandle, PREC_COMPARISON + 1); return TOY_OP_COMPARE_NOT_EQUAL; } case TOY_TOKEN_LESS: { - parsePrecedence(parser, nodeHandle, PREC_COMPARISON); + parsePrecedence(parser, nodeHandle, PREC_COMPARISON + 1); return TOY_OP_COMPARE_LESS; } case TOY_TOKEN_LESS_EQUAL: { - parsePrecedence(parser, nodeHandle, PREC_COMPARISON); + parsePrecedence(parser, nodeHandle, PREC_COMPARISON + 1); return TOY_OP_COMPARE_LESS_EQUAL; } case TOY_TOKEN_GREATER: { - parsePrecedence(parser, nodeHandle, PREC_COMPARISON); + parsePrecedence(parser, nodeHandle, PREC_COMPARISON + 1); return TOY_OP_COMPARE_GREATER; } case TOY_TOKEN_GREATER_EQUAL: { - parsePrecedence(parser, nodeHandle, PREC_COMPARISON); + parsePrecedence(parser, nodeHandle, PREC_COMPARISON + 1); return TOY_OP_COMPARE_GREATER_EQUAL; } case TOY_TOKEN_AND: { - parsePrecedence(parser, nodeHandle, PREC_AND); + parsePrecedence(parser, nodeHandle, PREC_AND + 1); return TOY_OP_AND; } case TOY_TOKEN_OR: { - parsePrecedence(parser, nodeHandle, PREC_OR); + parsePrecedence(parser, nodeHandle, PREC_OR + 1); return TOY_OP_OR; }