From: Ben Pfaff Date: Sun, 6 Nov 2022 19:41:06 +0000 (-0800) Subject: Use lex_error_expecting() in more places. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dee5f07052d915c97330a2f9371d44e0e5333fa8;p=pspp Use lex_error_expecting() in more places. --- diff --git a/src/language/control/do-if.c b/src/language/control/do-if.c index 69288e5c14..24a1e4f106 100644 --- a/src/language/control/do-if.c +++ b/src/language/control/do-if.c @@ -120,7 +120,7 @@ cmd_do_if (struct lexer *lexer, struct dataset *ds) { if (lex_token (lexer) == T_STOP) { - lex_error (lexer, NULL); + lex_error_expecting (lexer, "END IF"); break; } else if (lex_match_phrase (lexer, "ELSE IF")) diff --git a/src/language/control/loop.c b/src/language/control/loop.c index 0db3a491d3..ed6d38dd6e 100644 --- a/src/language/control/loop.c +++ b/src/language/control/loop.c @@ -97,7 +97,7 @@ cmd_loop (struct lexer *lexer, struct dataset *ds) { if (lex_token (lexer) == T_STOP) { - lex_error (lexer, NULL); + lex_error_expecting (lexer, "END LOOP"); ok = false; break; } diff --git a/src/language/data-io/combine-files.c b/src/language/data-io/combine-files.c index dde261a68f..3306ffec68 100644 --- a/src/language/data-io/combine-files.c +++ b/src/language/data-io/combine-files.c @@ -357,7 +357,11 @@ combine_files (enum comb_command_type command, } else { - lex_error (lexer, NULL); + if (command == COMB_UPDATE) + lex_error_expecting (lexer, "BY", "MAP", "DROP", "KEEP"); + else + lex_error_expecting (lexer, "BY", "FIRST", "LAST", + "MAP", "DROP", "KEEP"); goto error; } diff --git a/tests/language/control/do-if.at b/tests/language/control/do-if.at index b12cdaa4fd..6281a0fd68 100644 --- a/tests/language/control/do-if.at +++ b/tests/language/control/do-if.at @@ -132,6 +132,6 @@ AT_CHECK([pspp -O format=csv do-if.sps], [1], [dnl 20 | DO IF !. | ^" -error: DO IF: At end of input: Syntax error. +error: DO IF: At end of input: Syntax error expecting END IF. ]) AT_CLEANUP diff --git a/tests/language/control/loop.at b/tests/language/control/loop.at index 8f4d2b4225..23ab6b5b18 100644 --- a/tests/language/control/loop.at +++ b/tests/language/control/loop.at @@ -369,6 +369,6 @@ loop.sps:36.10: error: LOOP: Syntax error expecting end of command. 36 | END LOOP !. | ^ -error: LOOP: At end of input: Syntax error. +error: LOOP: At end of input: Syntax error expecting END LOOP. ]) AT_CLEANUP \ No newline at end of file