case '[':
case ']':
- case ',':
-
case '#':
return (lex->tok->ttype = ch);
case '|':
case '^':
case '~':
+ case ',':
return ch;
default:
break;
}
}
+ if (ch == ',') {
+ if (!lex_tokench(lex, ch) ||
+ !lex_endtoken(lex))
+ {
+ return (lex->tok->ttype = TOKEN_FATAL);
+ }
+ return (lex->tok->ttype = TOKEN_OPERATOR);
+ }
+
if (ch == '+' || ch == '-' || /* ++, --, +=, -= and -> as well! */
ch == '>' || ch == '<' || /* <<, >>, <=, >= */
ch == '=' || /* == */
} else if (!strcmp(v, "vector")) {
lex->tok->ttype = TOKEN_TYPENAME;
lex->tok->constval.t = TYPE_VECTOR;
- } else if (!strcmp(v, "for") ||
- !strcmp(v, "while") ||
- !strcmp(v, "do") ||
- !strcmp(v, "var") ||
+ } else if (!strcmp(v, "for") ||
+ !strcmp(v, "while") ||
+ !strcmp(v, "do") ||
+ !strcmp(v, "var") ||
+ !strcmp(v, "return") ||
!strcmp(v, "const"))
lex->tok->ttype = TOKEN_KEYWORD;