From c195a21f8f099aa8678043c638c0b43f888fe19d Mon Sep 17 00:00:00 2001 From: Matthias Kruk Date: Sun, 5 Jul 2020 14:38:07 +0900 Subject: [PATCH] lex: Return wide strings and wide character literals as one token --- src/lex.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/lex.c b/src/lex.c index d2bc345..83f71b6 100644 --- a/src/lex.c +++ b/src/lex.c @@ -500,6 +500,16 @@ struct token *_nexttoken(void) case STATE_ID: if(identifier_chr(c)) { token_append_char(tok, c); + } else if(c == '\'' && token_cmp(tok, "L") == 0) { + /* token is a wide character literal */ + token_append_char(tok, c); + tok->type = TOKEN_CHAR_LITERAL; + state = STATE_CHR; + } else if(c == '"' && token_cmp(tok, "L") == 0) { + /* token is a wide string literal */ + token_append_char(tok, c); + tok->type = TOKEN_STRING; + state = STATE_STRING; } else { _putnextchar(c); _identify_token(tok); -- 2.47.3