macros
This commit is contained in:
40
ast.h
40
ast.h
@@ -486,7 +486,8 @@ typedef uint32_t AstNodeIndex;
|
||||
typedef uint32_t AstIndex;
|
||||
|
||||
typedef struct {
|
||||
AstIndex lhs, rhs;
|
||||
AstIndex lhs;
|
||||
AstIndex rhs;
|
||||
} AstData;
|
||||
|
||||
typedef struct {
|
||||
@@ -497,22 +498,35 @@ typedef struct {
|
||||
AstData* datas;
|
||||
} AstNodeList;
|
||||
|
||||
typedef struct {
|
||||
uint32_t len;
|
||||
uint32_t cap;
|
||||
TokenizerTag* tags;
|
||||
AstIndex* starts;
|
||||
} AstTokenList;
|
||||
|
||||
typedef struct {
|
||||
uint32_t len;
|
||||
uint32_t cap;
|
||||
AstNodeIndex* arr;
|
||||
} AstExtraData;
|
||||
|
||||
typedef struct {
|
||||
const char* source;
|
||||
const uint32_t source_len;
|
||||
|
||||
struct {
|
||||
uint32_t len;
|
||||
TokenizerTag* tags;
|
||||
AstIndex* starts;
|
||||
} tokens;
|
||||
|
||||
uint32_t source_len;
|
||||
AstTokenList tokens;
|
||||
AstNodeList nodes;
|
||||
AstExtraData extra_data;
|
||||
} Ast;
|
||||
|
||||
AstNodeIndex* extra_data;
|
||||
uint32_t extra_data_len;
|
||||
} ast;
|
||||
Ast astParse(const char* source, uint32_t len);
|
||||
|
||||
ast astParse(const char* source, uint32_t len);
|
||||
// MultiArrayList
|
||||
void astNodeListEnsureCapacity(AstNodeList* list, uint32_t additional);
|
||||
void astTokenListEnsureCapacity(AstTokenList* list, uint32_t additional);
|
||||
|
||||
void astNodeListAppend(AstNodeList* list, AstNodeTag tag,
|
||||
AstTokenIndex main_token, AstData data);
|
||||
void astTokenListAppend(AstTokenList* list, TokenizerTag tag, AstIndex start);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user