diff --git a/core/src/main/grammar/Zig.flex b/core/src/main/grammar/Zig.flex index a08b589c..6a0f1235 100644 --- a/core/src/main/grammar/Zig.flex +++ b/core/src/main/grammar/Zig.flex @@ -234,14 +234,13 @@ BUILTINIDENTIFIER="@"[A-Za-z_][A-Za-z0-9_]* "volatile" { return KEYWORD_VOLATILE; } "while" { return KEYWORD_WHILE; } +//Strings + "'" { yybegin(CHAR_LIT); } {char_char}*"'" { yybegin(YYINITIAL); return CHAR_LITERAL; } <> { yybegin(YYINITIAL); return BAD_SQUOT; } [^] { yypushback(1); yybegin(UNT_SQUOT); } - {FLOAT} { return FLOAT; } - {INTEGER} { return INTEGER; } - "\"" { yybegin(STR_LIT); } {string_char}*"\"" { yybegin(YYINITIAL); return STRING_LITERAL_SINGLE; } <> { yybegin(YYINITIAL); return BAD_DQUOT; } @@ -253,6 +252,13 @@ BUILTINIDENTIFIER="@"[A-Za-z_][A-Za-z0-9_]* {LF} { yybegin(YYINITIAL); return STRING_LITERAL_MULTI; } <> { yybegin(YYINITIAL); return STRING_LITERAL_MULTI; } +//Numbers + + {FLOAT} { return FLOAT; } + {INTEGER} { return INTEGER; } + +//Identifiers + {IDENTIFIER_PLAIN} { return IDENTIFIER; } "@\"" { yybegin(ID_QUOT); } {string_char}*"\"" { yybegin(YYINITIAL); return IDENTIFIER; } @@ -261,6 +267,8 @@ BUILTINIDENTIFIER="@"[A-Za-z_][A-Za-z0-9_]* {BUILTINIDENTIFIER} { return BUILTINIDENTIFIER; } +//Error handling + <> { yybegin(YYINITIAL); return BAD_SQUOT; } {LF} { yybegin(YYINITIAL); return BAD_SQUOT; } {all_no_nl} { } @@ -268,6 +276,8 @@ BUILTINIDENTIFIER="@"[A-Za-z_][A-Za-z0-9_]* {LF} { yybegin(YYINITIAL); return BAD_DQUOT; } {all_no_nl} { } +//Misc + {WHITE_SPACE} { return WHITE_SPACE; } [^] { return BAD_CHARACTER; }