From: Matthias Kruk Date: Sun, 5 Jul 2020 05:38:07 +0000 (+0900) Subject: lex: Return wide strings and wide character literals as one token X-Git-Url: https://git.corax.cc/?a=commitdiff_plain;h=c195a21f8f099aa8678043c638c0b43f888fe19d;p=ccc lex: Return wide strings and wide character literals as one token --- 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);