- } else if (!strcmp(v, "for") ||
- !strcmp(v, "while") ||
- !strcmp(v, "do") ||
- !strcmp(v, "if") ||
- !strcmp(v, "else") ||
- !strcmp(v, "local") ||
- !strcmp(v, "return") ||
- !strcmp(v, "not") ||
- !strcmp(v, "const"))
- {
- lex->tok.ttype = TOKEN_KEYWORD;
- }
- else if (opts_standard != COMPILER_QCC)
- {
- /* other standards reserve these keywords */
- if (!strcmp(v, "switch") ||
- !strcmp(v, "struct") ||
- !strcmp(v, "union") ||
- !strcmp(v, "break") ||
- !strcmp(v, "continue") ||
- !strcmp(v, "var"))
- {
- lex->tok.ttype = TOKEN_KEYWORD;
+ } else {
+ size_t kw;
+ for (kw = 0; kw < num_keywords_qc; ++kw) {
+ if (!strcmp(v, keywords_qc[kw]))
+ return (lex->tok.ttype = TOKEN_KEYWORD);
+ }
+ if (opts_standard != COMPILER_QCC) {
+ for (kw = 0; kw < num_keywords_fg; ++kw) {
+ if (!strcmp(v, keywords_fg[kw]))
+ return (lex->tok.ttype = TOKEN_KEYWORD);
+ }