From: Laurent Mazet Date: Mon, 23 Jan 2023 10:07:42 +0000 (+0100) Subject: raise error on missing end bracket X-Git-Tag: v0.8~30 X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=3c0db5bc8265a0af1d630553c4cae77bd17f5457;p=calc.git raise error on missing end bracket --- 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;