bistromathic: don't display undefined locations

Currently, completion when there is a syntax error shows broken
locations.

* examples/c/bistromathic/parse.y (expected_tokens): Initialize the
location.
* examples/c/bistromathic/bistromathic.test: Check that.
This commit is contained in:
Akim Demaille
2020-06-28 15:52:05 +02:00
parent ed10c308fa
commit 7c609859ee
2 changed files with 15 additions and 1 deletions

View File

@@ -306,3 +306,17 @@ end of file exit exp ''
0 0
> '' > ''
err: ' err: '
# Check that completion when there is an error prints valid locations.
sed -e 's/\\t/ /g' >input <<EOF
(1++2) + 3 +\t\t
EOF
run -n 0 '> (1++2) + 3 +
( - atan cos exp ln number sin sqrt
> (1++2) + 3 +
>
err: 1.1: syntax error: expected - or ( or number or function or variable before +
err: 1.1: syntax error: expected - or ( or number or function or variable before +
err: 1.4: syntax error: expected - or ( or number or function or variable before +
err: 1.13: syntax error: expected - or ( or number or function or variable before end of file
'

View File

@@ -447,7 +447,7 @@ expected_tokens (const char *input,
yypstate *ps = yypstate_new (); yypstate *ps = yypstate_new ();
int status = 0; int status = 0;
do { do {
YYLTYPE lloc; YYLTYPE lloc = { 1, 1, 1, 1 };
YYSTYPE lval; YYSTYPE lval;
int token = yylex (&input, &lval, &lloc); int token = yylex (&input, &lval, &lloc);
// Don't let the parse know when we reach the end of input. // Don't let the parse know when we reach the end of input.