From a21e0e852a72060c54b00404a67f4cee8c3dceb5 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Wed, 13 Jan 2021 15:57:57 -0500 Subject: Try to return strings as single tokens --- bin/c11.l | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/bin/c11.l b/bin/c11.l index 3c951028..ce310ffc 100644 --- a/bin/c11.l +++ b/bin/c11.l @@ -83,10 +83,18 @@ register|restrict|return|static|struct|switch|typedef|union|volatile|while | return Comment; } +[LUu]?"'"/[^\\] { + BEGIN(CharLiteral); + yymore(); +} [LUu]?"'" { BEGIN(CharLiteral); return String; } +([LU]|u8?)?"\""/[^\\%] { + BEGIN(StringLiteral); + yymore(); +} ([LU]|u8?)?"\"" { BEGIN(StringLiteral); return String; @@ -109,14 +117,14 @@ register|restrict|return|static|struct|switch|typedef|union|volatile|while | } { - "'" { + [^\\'']*"'" { BEGIN(pop); return String; } [^\\'']+|. { return String; } } { - "\"" { + [^%\\""]*"\"" { BEGIN(pop); return String; } -- cgit 1.4.1