dont serialize meta flag, wasm work
This commit is contained in:
@@ -120,6 +120,7 @@ fn void lex_token_ex(lexer_t *lex, lex_t *token) {
|
||||
case ';': token->kind = lex_kind_semicolon; break;
|
||||
case ':': token->kind = lex_kind_colon; break;
|
||||
case ',': token->kind = lex_kind_comma; break;
|
||||
case '@': token->kind = lex_kind_tag; break;
|
||||
case '"': lex_eat_string(lex, token); break;
|
||||
case '`': lex_eat_string(lex, token); break;
|
||||
case '\'': lex_eat_string(lex, token); break;
|
||||
@@ -314,6 +315,12 @@ fn lex_t *parser_expect(parser_t *par, lex_kind_t kind) {
|
||||
return token;
|
||||
}
|
||||
|
||||
fn lex_t *parser_expecti(parser_t *par, s8_t ident) {
|
||||
lex_t *token = parser_matchi(par, ident);
|
||||
if (!token) parser_panicf(par->at, "expected identifier: '%S'", ident);
|
||||
return token;
|
||||
}
|
||||
|
||||
fn void parser_eat_until(parser_t *par, lex_kind_t kind) {
|
||||
while (par->at->kind != kind && par->at->kind != lex_kind_eof) {
|
||||
parser_next(par);
|
||||
|
||||
@@ -56,6 +56,7 @@ enum lex_kind_t {
|
||||
X(lex_kind_colon , "':' colon" , ":" )\
|
||||
X(lex_kind_arrow , "'->' arrow" , "->" )\
|
||||
X(lex_kind_question , "'?' question mark" , "?" )\
|
||||
X(lex_kind_tag , "'@' tag sign" , "@" )\
|
||||
|
||||
#define X(KIND, STR, SIMPLE) KIND,
|
||||
LEX_KIND_XLIST
|
||||
|
||||
@@ -31,6 +31,7 @@ struct sb8_t {
|
||||
sb8_node_t *first;
|
||||
sb8_node_t *last;
|
||||
|
||||
// WARNING: remember to update typeinfo after editing this
|
||||
i32 indent;
|
||||
};
|
||||
|
||||
|
||||
@@ -46,6 +46,7 @@ struct type_member_t {
|
||||
type_t *type;
|
||||
i64 value;
|
||||
u64 offset;
|
||||
b8 dont_serialize;
|
||||
};
|
||||
|
||||
//
|
||||
@@ -120,6 +121,22 @@ gb_read_only type_t type__ma_arena_t = { type_kind_struct, s8_const_lit("ma_aren
|
||||
}
|
||||
};
|
||||
|
||||
gb_read_only type_t type__sb8_node_t = {type_kind_struct, s8_const_lit("sb8_node_t"), sizeof(sb8_t), .count = 2,
|
||||
.members = (type_member_t[]){
|
||||
{s8_const_lit("next"), &POINTER(sb8_node_t), .offset = offsetof(sb8_node_t, next)},
|
||||
{s8_const_lit("string"), &type__s8_t, .offset = offsetof(sb8_node_t, string)},
|
||||
}
|
||||
};
|
||||
|
||||
gb_read_only type_t type__sb8_t = { type_kind_struct, s8_const_lit("sb8_t"), sizeof(sb8_t), .count = 4,
|
||||
.members = (type_member_t[]){
|
||||
{s8_const_lit("arena"), &POINTER(ma_arena_t), .offset = offsetof(sb8_t, arena)},
|
||||
{s8_const_lit("first"), &POINTER(sb8_node_t), .offset = offsetof(sb8_t, first)},
|
||||
{s8_const_lit("last"), &POINTER(sb8_node_t), .offset = offsetof(sb8_t, last)},
|
||||
{s8_const_lit("indent"), &type__i32, .offset = offsetof(sb8_t, first)},
|
||||
}
|
||||
};
|
||||
|
||||
gb_read_only type_t type__ma_temp_t = { type_kind_struct, s8_const_lit("ma_temp_t"), sizeof(ma_temp_t), .count = 2,
|
||||
.members = (type_member_t[]){
|
||||
{s8_const_lit("arena"), &POINTER(ma_arena_t), .offset = offsetof(ma_temp_t, arena)},
|
||||
|
||||
Reference in New Issue
Block a user