linters, some ast headers
This commit is contained in:
33
ast.h
33
ast.h
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user