lang: fix lots of compiler warnings/errors

This commit is contained in:
2024-12-01 13:25:36 +00:00
parent bb34e46c69
commit b5cb87e8df
8 changed files with 90 additions and 52 deletions

View File

@@ -67,7 +67,7 @@ enum token_expr_type get_token_expr_type(struct ivy_token *tok)
case IVY_SYM_COMMA:
return TOK_EXPR_ANY;
default:
op = ivy_operator_get(tok->t_symbol);
op = ivy_operator_get_by_token(tok->t_symbol);
return op ? TOK_EXPR_ANY : TOK_EXPR_NONE;
}
case IVY_TOK_KEYWORD:
@@ -82,7 +82,7 @@ enum token_expr_type get_token_expr_type(struct ivy_token *tok)
case IVY_KW_THROW:
return TOK_EXPR_BEGIN;
default:
op = ivy_operator_get(tok->t_keyword);
op = ivy_operator_get_by_token(tok->t_keyword);
return op ? TOK_EXPR_ANY : TOK_EXPR_NONE;
return TOK_EXPR_NONE;
}
@@ -98,25 +98,31 @@ token_parse_function get_token_parser(
if (!type) {
return NULL;
}
token_parse_function generic_parser = type->n_token_parsers[__TOK_PARSER_INDEX(tok->t_type)];
token_parse_function generic_parser
= type->n_token_parsers[__TOK_PARSER_INDEX(tok->t_type)];
if (!generic_parser) {
generic_parser = type->n_token_parsers[__TOK_PARSER_FALLBACK_INDEX];
generic_parser
= type->n_token_parsers[__TOK_PARSER_FALLBACK_INDEX];
}
token_parse_function better_parser = NULL;
switch (tok->t_type) {
case IVY_TOK_KEYWORD:
better_parser = type->n_keyword_parsers[__KW_PARSER_INDEX(tok->t_keyword)];
better_parser
= type->n_keyword_parsers[__KW_PARSER_INDEX(tok->t_keyword)];
if (type->n_keyword_parsers[__KW_PARSER_FALLBACK_INDEX]) {
generic_parser = type->n_keyword_parsers[__KW_PARSER_FALLBACK_INDEX];
generic_parser
= type->n_keyword_parsers[__KW_PARSER_FALLBACK_INDEX];
}
break;
case IVY_TOK_SYMBOL:
better_parser = type->n_symbol_parsers[__SYM_PARSER_INDEX(tok->t_symbol)];
better_parser
= type->n_symbol_parsers[__SYM_PARSER_INDEX(tok->t_symbol)];
if (type->n_symbol_parsers[__SYM_PARSER_FALLBACK_INDEX]) {
generic_parser = type->n_symbol_parsers[__SYM_PARSER_FALLBACK_INDEX];
generic_parser
= type->n_symbol_parsers[__SYM_PARSER_FALLBACK_INDEX];
}
break;
default: