X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=lexer.c;h=c37678ec0d0c7f1baca44e322aeb6563acbb4891;hp=e4328bec26f37b6b391019cfc99aebdf282fcf1b;hb=04665a9c944bdb6ed62f5223b62852c61ea6fc1e;hpb=6e888396b52378067e4413307e79901617f36df2 diff --git a/lexer.c b/lexer.c index e4328be..c37678e 100644 --- a/lexer.c +++ b/lexer.c @@ -23,7 +23,7 @@ static size_t num_keywords_qc = sizeof(keywords_qc) / sizeof(keywords_qc[0]); /* For fte/gmgqcc */ static const char *keywords_fg[] = { "var", - "switch", + "switch", "case", "default", "struct", "union", "break", "continue" }; @@ -980,9 +980,9 @@ int lex_do(lex_file *lex) if (!strcmp(v, "flush")) { - size_t frame; - for (frame = 0; frame < vec_size(lex->frames); ++frame) - mem_d(lex->frames[frame].name); + size_t fi; + for (fi = 0; fi < vec_size(lex->frames); ++fi) + mem_d(lex->frames[fi].name); vec_free(lex->frames); /* skip line (fteqcc does it too) */ ch = lex_getch(lex); @@ -1021,6 +1021,8 @@ int lex_do(lex_file *lex) { case '[': case '(': + case ':': + case '?': lex_tokench(lex, ch); lex_endtoken(lex); if (lex->flags.noops) @@ -1029,7 +1031,6 @@ int lex_do(lex_file *lex) return (lex->tok.ttype = TOKEN_OPERATOR); case ')': case ';': - case ':': case '{': case '}': case ']':