lang: lex: add missing symbol and keyword definitions
This commit is contained in:
12
lang/lex.c
12
lang/lex.c
@@ -71,6 +71,8 @@ static struct lex_token_def symbols[] = {
|
||||
LEX_TOKEN_DEF(IVY_SYM_DOUBLE_EQUAL, "=="),
|
||||
LEX_TOKEN_DEF(IVY_SYM_DOUBLE_LEFT_ANGLE, "<<"),
|
||||
LEX_TOKEN_DEF(IVY_SYM_DOUBLE_RIGHT_ANGLE, ">>"),
|
||||
LEX_TOKEN_DEF(IVY_SYM_LEFT_ANGLE_EQUAL, "<="),
|
||||
LEX_TOKEN_DEF(IVY_SYM_RIGHT_ANGLE_EQUAL, ">="),
|
||||
LEX_TOKEN_DEF(IVY_SYM_DOUBLE_LEFT_ANGLE_EQUAL, "<<="),
|
||||
LEX_TOKEN_DEF(IVY_SYM_DOUBLE_RIGHT_ANGLE_EQUAL, ">>="),
|
||||
LEX_TOKEN_DEF(IVY_SYM_PLUS_EQUAL, "+="),
|
||||
@@ -247,7 +249,7 @@ static void init_keywords(b_dict *keyword_dict)
|
||||
|
||||
static enum ivy_keyword find_keyword_by_name(struct ivy_lexer *lex, const char *s)
|
||||
{
|
||||
b_number *id = b_dict_at(lex->lex_keywords, s);
|
||||
b_number *id = B_NUMBER(b_dict_at(lex->lex_keywords, s));
|
||||
if (!id) {
|
||||
return IVY_KW_NONE;
|
||||
}
|
||||
@@ -906,7 +908,6 @@ static enum ivy_status read_ident(struct ivy_lexer *lex)
|
||||
|
||||
static enum ivy_status pump_tokens(struct ivy_lexer *lex)
|
||||
{
|
||||
enum ivy_status status;
|
||||
struct lexer_state *state = get_lexer_state(lex);
|
||||
|
||||
int c = peek(lex);
|
||||
@@ -1062,6 +1063,8 @@ const char *ivy_keyword_to_string(enum ivy_keyword keyword)
|
||||
ENUM_STR(IVY_KW_UNLESS);
|
||||
ENUM_STR(IVY_KW_IN);
|
||||
ENUM_STR(IVY_KW_DO);
|
||||
ENUM_STR(IVY_KW_GET);
|
||||
ENUM_STR(IVY_KW_SET);
|
||||
ENUM_STR(IVY_KW_END);
|
||||
default:
|
||||
return "";
|
||||
@@ -1073,6 +1076,8 @@ const char *ivy_symbol_to_string(enum ivy_symbol sym)
|
||||
switch (sym) {
|
||||
ENUM_STR(IVY_SYM_NONE);
|
||||
ENUM_STR(IVY_SYM_DOT);
|
||||
ENUM_STR(IVY_SYM_SQUOTE);
|
||||
ENUM_STR(IVY_SYM_DQUOTE);
|
||||
ENUM_STR(IVY_SYM_LEFT_BRACE);
|
||||
ENUM_STR(IVY_SYM_RIGHT_BRACE);
|
||||
ENUM_STR(IVY_SYM_LEFT_BRACKET);
|
||||
@@ -1094,6 +1099,8 @@ const char *ivy_symbol_to_string(enum ivy_symbol sym)
|
||||
ENUM_STR(IVY_SYM_DOUBLE_EQUAL);
|
||||
ENUM_STR(IVY_SYM_DOUBLE_LEFT_ANGLE);
|
||||
ENUM_STR(IVY_SYM_DOUBLE_RIGHT_ANGLE);
|
||||
ENUM_STR(IVY_SYM_LEFT_ANGLE_EQUAL);
|
||||
ENUM_STR(IVY_SYM_RIGHT_ANGLE_EQUAL);
|
||||
ENUM_STR(IVY_SYM_DOUBLE_LEFT_ANGLE_EQUAL);
|
||||
ENUM_STR(IVY_SYM_DOUBLE_RIGHT_ANGLE_EQUAL);
|
||||
ENUM_STR(IVY_SYM_PLUS_EQUAL);
|
||||
@@ -1107,6 +1114,7 @@ const char *ivy_symbol_to_string(enum ivy_symbol sym)
|
||||
ENUM_STR(IVY_SYM_BANG);
|
||||
ENUM_STR(IVY_SYM_PIPE);
|
||||
ENUM_STR(IVY_SYM_CARET);
|
||||
ENUM_STR(IVY_SYM_HASH);
|
||||
ENUM_STR(IVY_SYM_UNDERSCORE);
|
||||
ENUM_STR(IVY_SYM_COMMA);
|
||||
ENUM_STR(IVY_SYM_SEMICOLON);
|
||||
|
||||
Reference in New Issue
Block a user