Handle EOFs in string literals correctly

We can't return a STR token without setting a valid StringToken,
otherwise the parser will crash.

Fixes #6562.
This commit is contained in:
Eelco Dolstra 2022-05-25 15:45:10 +02:00
parent d8398d33c9
commit 27ebb97d0a
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE
2 changed files with 4 additions and 1 deletions

View file

@ -198,7 +198,7 @@ or { return OR_KW; }
(...|\$[^\{\"\\]|\\.|\$\\.)+ would have triggered. (...|\$[^\{\"\\]|\\.|\$\\.)+ would have triggered.
This is technically invalid, but we leave the problem to the This is technically invalid, but we leave the problem to the
parser who fails with exact location. */ parser who fails with exact location. */
return STR; return EOF;
} }
\'\'(\ *\n)? { PUSH_STATE(IND_STRING); return IND_STRING_OPEN; } \'\'(\ *\n)? { PUSH_STATE(IND_STRING); return IND_STRING_OPEN; }

View file

@ -0,0 +1,3 @@
# https://github.com/NixOS/nix/issues/6562
# Note that this file must not end with a newline.
a 1"$