linters, some ast headers

This commit is contained in:
2024-12-18 22:34:22 +02:00
parent c2915d2eaa
commit 7361b6058d
8 changed files with 184 additions and 48 deletions

33
ast.h
View File

@@ -486,26 +486,33 @@ typedef uint32_t ast_node_index;
typedef uint32_t ast_index;
typedef struct {
ast_node_tag tag;
ast_token_index main_token;
struct {
ast_index lhs, rhs;
} data;
} ast_node;
ast_index lhs, rhs;
} ast_data;
typedef struct {
uint32_t len;
uint32_t cap;
ast_node_tag* tags;
ast_token_index* main_tokens;
ast_data* datas;
} ast_node_list;
typedef struct {
const char* source;
uint32_t source_len;
const uint32_t source_len;
tokenizer_tag* tokens_tag;
ast_index* tokens_start;
uint32_t tokens_len;
struct {
uint32_t len;
tokenizer_tag* tags;
ast_index* starts;
} tokens;
ast_node_list nodes;
ast_node* nodes;
uint32_t nodes_len;
ast_node_index* extra_data;
uint32_t extra_data_len;
} ast;
int ast_parse(const char* source, uint32_t len, ast *result);
ast ast_parse(const char* source, uint32_t len, int* err);
#endif