>>105917058
I just used a prolog dcg over a token stream to do:
string_literals([Literal|Literals]) --> string_literal(Literal), string_literals(Literals).
string_literals([]) --> [].
where string_literal is another dcg that handles a single string literal. it's trivial, but annoying to have to handle additional cases because people like you are too retarded to read a single-line string with whitespace characters like a normal fucking programmer.