asm: fix compiler warnings
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
#include <ivy/asm/parse.h>
|
||||
#include "parse.h"
|
||||
|
||||
#include <ivy/asm/lex.h>
|
||||
#include <ivy/asm/parse.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "parse.h"
|
||||
|
||||
extern struct parser_state_type unit_parser_state_type;
|
||||
extern struct parser_state_type constpool_parser_state_type;
|
||||
@@ -21,7 +22,8 @@ static const struct parser_state_type *parser_state_types[] = {
|
||||
[ASM_PARSER_IMPORT] = &import_parser_state_type,
|
||||
[ASM_PARSER_BLOCK] = &block_parser_state_type,
|
||||
};
|
||||
static const size_t nr_parser_state_types = sizeof parser_state_types / sizeof parser_state_types[0];
|
||||
static const size_t nr_parser_state_types
|
||||
= sizeof parser_state_types / sizeof parser_state_types[0];
|
||||
|
||||
enum ivy_status ivy_asm_parser_create(struct ivy_asm_parser **out)
|
||||
{
|
||||
@@ -44,13 +46,13 @@ void ivy_asm_parser_destroy(struct ivy_asm_parser *p)
|
||||
free(p);
|
||||
}
|
||||
|
||||
void ivy_asm_parser_set_assembler(
|
||||
struct ivy_asm_parser *p, struct ivy_assembler *as)
|
||||
void ivy_asm_parser_set_assembler(struct ivy_asm_parser *p, struct ivy_assembler *as)
|
||||
{
|
||||
p->p_assembler = as;
|
||||
}
|
||||
|
||||
static token_parse_function get_token_parser(struct parser_state *state, struct ivy_asm_token *tok)
|
||||
static token_parse_function get_token_parser(
|
||||
struct parser_state *state, struct ivy_asm_token *tok)
|
||||
{
|
||||
const struct parser_state_type *type = state->s_type;
|
||||
if (!type) {
|
||||
@@ -59,17 +61,23 @@ static token_parse_function get_token_parser(struct parser_state *state, struct
|
||||
|
||||
token_parse_function specific_parser = NULL;
|
||||
token_parse_function specific_fallback_parser = NULL;
|
||||
token_parse_function token_parser = type->n_token_parsers[__TOK_PARSER_INDEX(tok->t_type)];
|
||||
token_parse_function token_fallback_parser = type->n_token_parsers[__TOK_PARSER_FALLBACK_INDEX];
|
||||
token_parse_function token_parser
|
||||
= type->n_token_parsers[__TOK_PARSER_INDEX(tok->t_type)];
|
||||
token_parse_function token_fallback_parser
|
||||
= type->n_token_parsers[__TOK_PARSER_FALLBACK_INDEX];
|
||||
|
||||
switch (tok->t_type) {
|
||||
case IVY_ASM_TOK_SYMBOL:
|
||||
specific_parser = type->n_symbol_parsers[__SYM_PARSER_INDEX(tok->t_symbol)];
|
||||
specific_fallback_parser = type->n_symbol_parsers[__SYM_PARSER_FALLBACK_INDEX];
|
||||
specific_parser
|
||||
= type->n_symbol_parsers[__SYM_PARSER_INDEX(tok->t_symbol)];
|
||||
specific_fallback_parser
|
||||
= type->n_symbol_parsers[__SYM_PARSER_FALLBACK_INDEX];
|
||||
break;
|
||||
case IVY_ASM_TOK_KEYWORD:
|
||||
specific_parser = type->n_keyword_parsers[__KW_PARSER_INDEX(tok->t_keyword)];
|
||||
specific_fallback_parser = type->n_keyword_parsers[__KW_PARSER_FALLBACK_INDEX];
|
||||
specific_parser
|
||||
= type->n_keyword_parsers[__KW_PARSER_INDEX(tok->t_keyword)];
|
||||
specific_fallback_parser
|
||||
= type->n_keyword_parsers[__KW_PARSER_FALLBACK_INDEX];
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -107,7 +115,8 @@ enum ivy_status ivy_asm_parser_push_token(
|
||||
return f(p, tok);
|
||||
}
|
||||
|
||||
static const struct parser_state_type *get_parser_state_type(enum parser_state_type_id type)
|
||||
static const struct parser_state_type *get_parser_state_type(
|
||||
enum parser_state_type_id type)
|
||||
{
|
||||
if (type < 0 || type >= nr_parser_state_types) {
|
||||
return NULL;
|
||||
@@ -137,7 +146,7 @@ struct parser_state *asm_parser_push_state(
|
||||
state->s_type = type_info;
|
||||
|
||||
if (attrib) {
|
||||
memcpy(state->s_attrib, attrib, sizeof attrib);
|
||||
memcpy(state->s_attrib, attrib, IVY_ASSEMBLER_ATTRIB_TABLE_SIZE);
|
||||
}
|
||||
|
||||
if (type_info->n_init_state) {
|
||||
|
||||
Reference in New Issue
Block a user