diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2021-05-24 07:40:56 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2021-05-24 07:46:05 -0700 |
commit | 8f066b1f7975129d5560cd8ee68121bf824ea38e (patch) | |
tree | 5798afe24775ebea47ad690157909eda0ba5791b | |
parent | 0e8b426f52c6c684be38fc829e24f9380b906919 (diff) | |
download | txr-8f066b1f7975129d5560cd8ee68121bf824ea38e.tar.gz txr-8f066b1f7975129d5560cd8ee68121bf824ea38e.tar.bz2 txr-8f066b1f7975129d5560cd8ee68121bf824ea38e.zip |
parser: improve diagnostic for unterminated exprs.
* parser.y (parse): When issuing the diagostic indicating the
likely starting line of the unterminated expression, instead
of mentioning that line in the diagnostic text, let's just
issue the diagnostic against that line. The programmer's
text editor can then jump to that line.
* y.tab.c.shipped: Updated.
-rw-r--r-- | parser.y | 7 | ||||
-rw-r--r-- | y.tab.c.shipped | 7 |
2 files changed, 10 insertions, 4 deletions
@@ -2121,8 +2121,11 @@ int parse(parser_t *parser, val name, enum prime_parser prim) if (parser->errors && parser->syntax_tree == nil && parser->lineno != start_line) { - yyerrorf(parser->scanner, lit("while parsing form starting at line ~a"), - num(start_line), nao); + cnum curline = parser->lineno; + parser->lineno = start_line; + yyerrorf(parser->scanner, + lit("while parsing expression starting on this line"), nao); + parser->lineno = curline; } return res; diff --git a/y.tab.c.shipped b/y.tab.c.shipped index 7e5e647e..1b27eb7a 100644 --- a/y.tab.c.shipped +++ b/y.tab.c.shipped @@ -7498,8 +7498,11 @@ int parse(parser_t *parser, val name, enum prime_parser prim) if (parser->errors && parser->syntax_tree == nil && parser->lineno != start_line) { - yyerrorf(parser->scanner, lit("while parsing form starting at line ~a"), - num(start_line), nao); + cnum curline = parser->lineno; + parser->lineno = start_line; + yyerrorf(parser->scanner, + lit("while parsing expression starting on this line"), nao); + parser->lineno = curline; } return res; |