From 495418dadc9513c6d48735da39e874decdac7810 Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Sun, 30 Apr 2023 11:47:53 -0400 Subject: [PATCH] step: deal with parenthesis --- mumble | Bin 102076 -> 102428 bytes src/mumble.c | 20 +++++++++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/mumble b/mumble index 638a2e10e88f35ebc47742d64cdaff0e49724a0b..c6e6f0ad016e8064c46a3115c5a6fd5a3da95a24 100755 GIT binary patch delta 28564 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 delta 28257 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 QoC2N@HosQ>@~ diff --git a/src/mumble.c b/src/mumble.c index 0bb632c..ca9b1eb 100644 --- a/src/mumble.c +++ b/src/mumble.c @@ -23,6 +23,11 @@ long evaluate_operation(char* op, long x, long y) return 0; } +int is_ignorable(mpc_ast_t* t){ + int is_regex = !strcmp(t->tag, "regex"); + int is_parenthesis = !strcmp(t->tag, "char") && !strcmp(t->contents, "("); + return is_regex || is_parenthesis; +} long evaluate_ast(mpc_ast_t* t) { // Base case #1: It's a number @@ -41,24 +46,25 @@ long evaluate_ast(mpc_ast_t* t) printf("\nCase #2, %s", t->children[0]->contents); return atoi(t->children[0]->contents); } - - // Case #3: Parenthesis case - - if (t->children_num == 2 && !strcmp(t->children[0]->tag, "expr|>") && strstr(t->children[1]->tag, "regex")) { - return evaluate_ast(t->children[0]); + // Base case #3: Top level parenthesis + if (t->children_num == 2 && strstr(t->children[0]->tag, "expr|>") && !strcmp(t->children[1]->tag, "regex")) { + if (VERBOSE) + printf("\nCase #3, top level parenthesis"); + return evaluate_ast(t->children[0]); } - // Case #4: Unary operations case + // Case #4: Unary operations case // Case #5: Binary (or more) operations case long x; char* operation; - if (t->children_num > 3 && !strcmp(t->children[0]->tag, "regex") && strstr(t->children[1]->tag, "operator")) { + if (t->children_num > 3 && is_ignorable(t->children[0]) && strstr(t->children[1]->tag, "operator")) { operation = t->children[1]->contents; if (VERBOSE) printf("\nCase #5, %s", operation); x = evaluate_ast(t->children[2]); int i = 3; while ((i < t->children_num) && strstr(t->children[i]->tag, "expr")) { + // note that when reaching a closing parenthesis, ^ returns false long y = evaluate_ast(t->children[i]); x = evaluate_operation(operation, x, y); i++;