lang: implement elif keyword for more complex if-statements

This commit is contained in:
2025-04-24 09:45:26 +01:00
parent d37c07e5e4
commit cbec21b90f
5 changed files with 60 additions and 11 deletions

View File

@@ -31,12 +31,13 @@ static struct lex_token_def keywords[] = {
LEX_TOKEN_DEF(IVY_KW_FINALLY, "finally"),
LEX_TOKEN_DEF(IVY_KW_UNDERSTANDS, "understands"),
LEX_TOKEN_DEF(IVY_KW_IF, "if"),
LEX_TOKEN_DEF(IVY_KW_ELIF, "elif"),
LEX_TOKEN_DEF(IVY_KW_ELSE, "else"),
LEX_TOKEN_DEF(IVY_KW_THEN, "then"),
LEX_TOKEN_DEF(IVY_KW_AND, "and"),
LEX_TOKEN_DEF(IVY_KW_OR, "or"),
LEX_TOKEN_DEF(IVY_KW_IS, "is"),
LEX_TOKEN_DEF(IVY_KW_NOT, "not"),
LEX_TOKEN_DEF(IVY_KW_ELSE, "else"),
LEX_TOKEN_DEF(IVY_KW_WHILE, "while"),
LEX_TOKEN_DEF(IVY_KW_FOR, "for"),
LEX_TOKEN_DEF(IVY_KW_MATCH, "match"),
@@ -1140,6 +1141,7 @@ const char *ivy_keyword_to_string(enum ivy_keyword keyword)
ENUM_STR(IVY_KW_CATCH);
ENUM_STR(IVY_KW_FINALLY);
ENUM_STR(IVY_KW_IF);
ENUM_STR(IVY_KW_ELIF);
ENUM_STR(IVY_KW_THEN);
ENUM_STR(IVY_KW_AND);
ENUM_STR(IVY_KW_OR);