X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Flexer%2Flexer.c;h=e72a3e47bc9637d93ad3c1f764b7099686df6d3d;hb=b69dc704d2263d7f57748beb569b982bb3c250a1;hp=bbb005938fc8b0962a1447f3cafd43fb2ecabad3;hpb=9c0c7dab25469d36b7dcee5df45e1f5767cccb5b;p=pspp diff --git a/src/language/lexer/lexer.c b/src/language/lexer/lexer.c index bbb005938f..e72a3e47bc 100644 --- a/src/language/lexer/lexer.c +++ b/src/language/lexer/lexer.c @@ -625,6 +625,21 @@ lex_force_string (struct lexer *lexer) } } +/* If the current token is a string or an identifier, does nothing and returns + true. Otherwise, reports an error and returns false. + + This is meant for use in syntactic situations where we want to encourage the + user to supply a quoted string, but for compatibility we also accept + identifiers. (One example of such a situation is file names.) Therefore, + the error message issued when the current token is wrong only says that a + string is expected and doesn't mention that an identifier would also be + accepted. */ +bool +lex_force_string_or_id (struct lexer *lexer) +{ + return lex_is_integer (lexer) || lex_force_string (lexer); +} + /* If the current token is an integer, does nothing and returns true. Otherwise, reports an error and returns false. */ bool