|
@@ -69,37 +69,24 @@ const char* tGetName(Token token) {
|
|
return "unknown";
|
|
return "unknown";
|
|
}
|
|
}
|
|
|
|
|
|
-static bool tEqual(const char* a, const char* b) {
|
|
|
|
- return strcmp(a, b) == 0;
|
|
|
|
-}
|
|
|
|
|
|
+#define MATCH_TOKEN(tokenName, token) \
|
|
|
|
+ if(strcmp(name, tokenName) == 0) { \
|
|
|
|
+ return token; \
|
|
|
|
+ }
|
|
|
|
|
|
Token tFromName(const char* name) {
|
|
Token tFromName(const char* name) {
|
|
- if(tEqual(name, "print")) {
|
|
|
|
- return T_PRINT;
|
|
|
|
- } else if(tEqual(name, "null")) {
|
|
|
|
- return T_NULL;
|
|
|
|
- } else if(tEqual(name, "true")) {
|
|
|
|
- return T_TRUE;
|
|
|
|
- } else if(tEqual(name, "false")) {
|
|
|
|
- return T_FALSE;
|
|
|
|
- } else if(tEqual(name, "function")) {
|
|
|
|
- return T_FUNCTION;
|
|
|
|
- } else if(tEqual(name, "return")) {
|
|
|
|
- return T_RETURN;
|
|
|
|
- } else if(tEqual(name, "if")) {
|
|
|
|
- return T_IF;
|
|
|
|
- } else if(tEqual(name, "else")) {
|
|
|
|
- return T_ELSE;
|
|
|
|
- } else if(tEqual(name, "while")) {
|
|
|
|
- return T_WHILE;
|
|
|
|
- } else if(tEqual(name, "for")) {
|
|
|
|
- return T_FOR;
|
|
|
|
- } else if(tEqual(name, "break")) {
|
|
|
|
- return T_BREAK;
|
|
|
|
- } else if(tEqual(name, "continue")) {
|
|
|
|
- return T_CONTINUE;
|
|
|
|
- } else if(tEqual(name, "array")) {
|
|
|
|
- return T_ARRAY;
|
|
|
|
- }
|
|
|
|
|
|
+ MATCH_TOKEN("print", T_PRINT);
|
|
|
|
+ MATCH_TOKEN("null", T_NULL);
|
|
|
|
+ MATCH_TOKEN("true", T_TRUE);
|
|
|
|
+ MATCH_TOKEN("false", T_FALSE);
|
|
|
|
+ MATCH_TOKEN("function", T_FUNCTION);
|
|
|
|
+ MATCH_TOKEN("return", T_RETURN);
|
|
|
|
+ MATCH_TOKEN("if", T_IF);
|
|
|
|
+ MATCH_TOKEN("else", T_ELSE);
|
|
|
|
+ MATCH_TOKEN("while", T_WHILE);
|
|
|
|
+ MATCH_TOKEN("for", T_FOR);
|
|
|
|
+ MATCH_TOKEN("break", T_BREAK);
|
|
|
|
+ MATCH_TOKEN("continue", T_CONTINUE);
|
|
|
|
+ MATCH_TOKEN("array", T_ARRAY);
|
|
return T_END;
|
|
return T_END;
|
|
}
|
|
}
|