lang: lex: implement lexing of numbers and atoms

This commit is contained in:
2024-11-17 09:31:58 +00:00
parent f55b8f4851
commit 104e549b32
2 changed files with 192 additions and 16 deletions

View File

@@ -40,6 +40,8 @@ enum ivy_keyword {
IVY_KW_UNLESS,
IVY_KW_IN,
IVY_KW_DO,
IVY_KW_GET,
IVY_KW_SET,
IVY_KW_END,
};
@@ -79,14 +81,16 @@ enum ivy_symbol {
IVY_SYM_PIPE_EQUAL,
IVY_SYM_PERCENT_EQUAL,
IVY_SYM_CARET_EQUAL,
IVY_SYM_HASH,
IVY_SYM_BANG,
IVY_SYM_PIPE,
IVY_SYM_CARET,
IVY_SYM_UNDERSCORE,
IVY_SYM_COMMA,
IVY_SYM_SEMICOLON,
IVY_SYM_DOLLAR,
IVY_SYM_RIGHT_ARROW,
IVY_SYM_BIG_RIGHT_ARROW,
IVY_SYM_HYPHEN_RIGHT_ANGLE,
IVY_SYM_EQUAL_RIGHT_ANGLE,
IVY_SYM_FORWARD_SLASH_ASTERISK,
IVY_SYM_ASTERISK_FORWARD_SLASH,
};
@@ -98,7 +102,7 @@ struct ivy_token {
union {
enum ivy_keyword t_keyword;
enum ivy_symbol t_symbol;
signed long long t_number;
unsigned long long t_number;
char *t_str;
};
};