From 3c0db5bc8265a0af1d630553c4cae77bd17f5457 Mon Sep 17 00:00:00 2001 From: Laurent Mazet Date: Mon, 23 Jan 2023 11:07:42 +0100 Subject: [PATCH] raise error on missing end bracket --- calc.c | 3 ++- parser.c | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/calc.c b/calc.c index 82ec971..513c781 100644 --- a/calc.c +++ b/calc.c @@ -232,7 +232,8 @@ int main (int argc, char *argv[]) // test: echo "2 + cos(3 *)" | calc.exe | grep -q 'error' // test: echo "2 + (foo)" | calc.exe | grep -q 'error' // test: echo "2 + cos (pi +" | calc.exe | grep -q 'error' -// test: echo "2 + cos (pi" | calc.exe | grep -vq 'error' +// test: echo "2 + cos (pi" | calc.exe | grep -q 'error' +// test: echo "(2 + " | calc.exe | grep -q 'error' // test: echo "cos (1, 2)" | calc.exe | grep -q 'error' // test: echo "sqrt 2" | calc.exe | grep -q 'error' // test: echo "pow (2)" | calc.exe | grep -q 'error' diff --git a/parser.c b/parser.c index a6992c8..05b89c9 100644 --- a/parser.c +++ b/parser.c @@ -209,6 +209,10 @@ element_t *parser (char *str, char **next, int prio) } root->ops[0] = new; } + if (*str != ')') { + delelement (root); + return ERROR_OP; + } str++; VERBOSE (DEBUG, fprintf (stdout, "stop processing bracket\n")); continue; -- 2.30.2