* examples/c/bistromathic/bistromathic.test: here.
* examples/c/bistromathic/parse.y (expected_tokens): Fix a memory
leak.
---
examples/c/bistromathic/bistromathic.test | 15 +++++++++++++++
examples/c/bistromathic/parse.y | 4 +++-
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/examples/c/bistromathic/bistromathic.test
b/examples/c/bistromathic/bistromathic.test
index f42fb29d..ad614283 100755
--- a/examples/c/bistromathic/bistromathic.test
+++ b/examples/c/bistromathic/bistromathic.test
@@ -79,3 +79,18 @@ cat >input <<EOF
EOF
run 0 '> 1 / 0
> err: 1.1-5: error: division by zero'
+
+
+## ------------ ##
+## Completion. ##
+## ------------ ##
+
+sed -e 's/\\t/ /g' >input <<EOF
+( 1 + \t\t
+EOF
+run 0 '> ( 1 +
+( cos ln
+- double precision number sin
+atan exp sqrt
+> ( 1 +
+> err: 1.7: syntax error: expected - or ( or double precision number or
function or variable before end of file'
diff --git a/examples/c/bistromathic/parse.y b/examples/c/bistromathic/parse.y
index 4591b64f..971f9b56 100644
--- a/examples/c/bistromathic/parse.y
+++ b/examples/c/bistromathic/parse.y
@@ -356,7 +356,9 @@ expected_tokens (const char *input,
// Then query for the accepted tokens at this point.
yyparse_context_t yyctx
= {ps->yyssp, YYEMPTY, &lloc, ps->yyesa, &ps->yyes, &ps->yyes_capacity};
- return yyexpected_tokens (&yyctx, tokens, ntokens);
+ int res = yyexpected_tokens (&yyctx, tokens, ntokens);
+ yypstate_delete (ps);
+ return res;
}
/* Attempt to complete on the contents of TEXT. START and END bound the
--
2.25.1