aboutsummaryrefslogtreecommitdiff
path: root/src/token.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/token.c')
-rw-r--r--src/token.c64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/token.c b/src/token.c
index 6bba2b9..079a59f 100644
--- a/src/token.c
+++ b/src/token.c
@@ -12,6 +12,70 @@ token_t* token_init(int type, char* val) {
return token;
}
+char* token_get_type(int type) {
+ switch (type) {
+ case TOKEN_KEYWORD:
+ return "TOKEN_KEYWORD";
+ break;
+ case TOKEN_PRIM_STR:
+ return "TOKEN_PRIM_STR";
+ break;
+ case TOKEN_PRIM_INT:
+ return "TOKEN_PRIM_INT";
+ break;
+ case TOKEN_COMM:
+ return "TOKEN_COMM";
+ break;
+ case TOKEN_EXPR_END:
+ return "TOKEN_EXPR_END";
+ break;
+ case TOKEN_LGROUP:
+ return "TOKEN_LGROUP";
+ break;
+ case TOKEN_RGROUP:
+ return "TOKEN_RGROUP";
+ break;
+ case TOKEN_DIRECTIVE:
+ return "TOKEN_DIRECTIVE";
+ break;
+ case TOKEN_FN_APPLY:
+ return "TOKEN_FN_APPLY";
+ break;
+ case TOKEN_LIST_DELIM:
+ return "TOKEN_LIST_DELIM";
+ break;
+ case TOKEN_DEF_TAG:
+ return "TOKEN_DEF_TAG";
+ break;
+ case TOKEN_BLOCK_START:
+ return "TOKEN_BLOCK_START";
+ break;
+ case TOKEN_BLOCK_END:
+ return "TOKEN_BLOCK_END";
+ break;
+ case TOKEN_NAMESPACE_DELIM:
+ return "TOKEN_NAMESPACE_DELIM";
+ break;
+ case TOKEN_ARRAY_START:
+ return "TOKEN_ARRAY_START";
+ break;
+ case TOKEN_ARRAY_END:
+ return "TOKEN_ARRAY_END";
+ break;
+ case TOKEN_DEF_SET:
+ return "TOKEN_DEF_SET";
+ break;
+ case TOKEN_UNKNOWN:
+ return "TOKEN_UNKNOWN";
+ break;
+ case TOKEN_EOF:
+ return "TOKEN_EOF";
+ break;
+ default:
+ return "???";
+ }
+}
+
int char_could_start_keyword(char* character) {
for (int i = 0; i < TOKEN_DEFNAME_FIRST_CHAR_ALLOWED_CHARS_LEN; ++ i) {
if (TOKEN_DEFNAME_FIRST_CHAR_ALLOWED_CHARS[i] == *character) {