asm: fix compiler warnings

This commit is contained in:
2024-12-14 21:03:44 +00:00
parent 462f67c6aa
commit a167dd2af5
8 changed files with 150 additions and 117 deletions

View File

@@ -1,13 +1,13 @@
#ifndef _PARSE_PARSE_H_
#define _PARSE_PARSE_H_
#include <blue/core/queue.h>
#include <ivy/asm/assembler.h>
#include <ivy/asm/lex.h>
#include <blue/core/queue.h>
#define __TOK_PARSER_INDEX(x) ((x)-__IVY_ASM_TOK_INDEX_BASE)
#define __SYM_PARSER_INDEX(x) ((x)-__IVY_ASM_SYM_INDEX_BASE)
#define __KW_PARSER_INDEX(x) ((x)-__IVY_ASM_KW_INDEX_BASE)
#define __TOK_PARSER_INDEX(x) ((x) - __IVY_ASM_TOK_INDEX_BASE)
#define __SYM_PARSER_INDEX(x) ((x) - __IVY_ASM_SYM_INDEX_BASE)
#define __KW_PARSER_INDEX(x) ((x) - __IVY_ASM_KW_INDEX_BASE)
#define __TOK_PARSER_FALLBACK_INDEX IVY_ASM_TOK_NONE
#define __SYM_PARSER_FALLBACK_INDEX IVY_ASM_SYM_NONE
@@ -22,29 +22,28 @@
#define KW_PARSER_FALLBACK(func) [__KW_PARSER_FALLBACK_INDEX] = func
struct ivy_asm_parser;
struct parser_state;
enum parser_state_type_id {
ASM_PARSER_NONE = 0,
ASM_PARSER_UNIT,
ASM_PARSER_CLASS,
ASM_PARSER_CONSTPOOL,
ASM_PARSER_IMPORT,
ASM_PARSER_NONE = 0,
ASM_PARSER_UNIT,
ASM_PARSER_CLASS,
ASM_PARSER_CONSTPOOL,
ASM_PARSER_IMPORT,
ASM_PARSER_BLOCK,
ASM_PARSER_SELECTOR,
ASM_PARSER_IDENT,
ASM_PARSER_ATOM,
ASM_PARSER_SELECTOR,
ASM_PARSER_IDENT,
ASM_PARSER_ATOM,
};
typedef enum ivy_status (*token_parse_function)(
struct ivy_asm_parser *, struct ivy_asm_token *);
struct ivy_asm_parser*, struct ivy_asm_token*);
struct parser_state_type {
size_t n_state_size;
size_t n_state_size;
void (*n_init_state)(struct ivy_asm_parser *, struct parser_state *);
void (*n_finish_state)(struct ivy_asm_parser *, struct parser_state *);
enum ivy_status (*n_add_child)(
struct parser_state *, struct ivy_ast_node *);
void (*n_init_state)(struct ivy_asm_parser*, struct parser_state*);
void (*n_finish_state)(struct ivy_asm_parser*, struct parser_state*);
token_parse_function n_token_parsers[__TOK_PARSER_INDEX(__IVY_ASM_TOK_INDEX_LIMIT)];
token_parse_function n_keyword_parsers[__KW_PARSER_INDEX(__IVY_ASM_KW_INDEX_LIMIT)];
@@ -52,19 +51,19 @@ struct parser_state_type {
};
struct parser_state {
b_queue_entry s_entry;
const struct parser_state_type *s_type;
b_queue_entry s_entry;
const struct parser_state_type* s_type;
ivy_assembler_attrib_table s_attrib;
void *s_previous_value;
void* s_previous_value;
};
struct ivy_asm_parser {
struct ivy_assembler *p_assembler;
b_queue p_state;
struct ivy_assembler* p_assembler;
b_queue p_state;
};
extern struct parser_state* asm_parser_push_state(struct ivy_asm_parser* parser, enum parser_state_type_id type, const ivy_assembler_attrib_table attrib);
extern void asm_parser_pop_state(struct ivy_asm_parser *parser, void *ret);
extern struct parser_state *asm_parser_get_state(struct ivy_asm_parser *parser);
extern void asm_parser_pop_state(struct ivy_asm_parser* parser, void* ret);
extern struct parser_state* asm_parser_get_state(struct ivy_asm_parser* parser);
#endif