Pretty draw app_events, s8->string

This commit is contained in:
krzosa
2024-12-29 10:34:08 +01:00
parent 6939170478
commit fddbbb9654
7 changed files with 33 additions and 24 deletions

View File

@@ -72,12 +72,12 @@ ast_t *parse_lit_expr(parser_t *par) {
if (token->kind == lex_kind_integer) {
ast_t *result = create_ast(par, token, set_bit(ast_flag_integer) | set_bit(ast_flag_string));
result->integer = token->integer;
result->string = token->s8;
result->string = token->string;
return result;
} else if (token->kind == lex_kind_real) {
ast_t *result = create_ast(par, token, set_bit(ast_flag_real) | set_bit(ast_flag_string));
result->real = (double)token->real;
result->string = token->s8;
result->string = token->string;
return result;
} else if (token->kind == lex_kind_open_paren) {
ast_t *result = parse_expr(par);
@@ -189,7 +189,7 @@ void run_parser_test() {
ast_t *parse_struct_mem(parser_t *par, s8_t *name) {
lex_t *type_name = parser_expect(par, lex_kind_ident);
ast_t *type = create_ast(par, type_name, set_bit(ast_flag_type_name) | set_bit(ast_flag_string));
type->string = type_name->s8;
type->string = type_name->string;
while (parser_match(par, lex_kind_multiply)) {
ast_t *pointer = create_ast(par, par->at, set_bit(ast_flag_type_pointer) | set_bit(ast_flag_string));
@@ -198,7 +198,7 @@ ast_t *parse_struct_mem(parser_t *par, s8_t *name) {
type = pointer;
}
*name = parser_expect(par, lex_kind_ident)->s8;
*name = parser_expect(par, lex_kind_ident)->string;
while (parser_match(par, lex_kind_open_bracket)) {
ast_t *array = create_ast(par, par->at, set_bit(ast_flag_type_array) | set_bit(ast_flag_string));
@@ -233,7 +233,7 @@ ast_t *parse_decls(ma_arena_t *arena, char *file, char *code) {
while (par->at->kind == lex_kind_ident) {
lex_t *val = parser_expect(par, lex_kind_ident);
ast_t *mem = create_ast(par, val, set_bit(ast_flag_enum_member) | set_bit(ast_flag_string));
mem->string = val->s8;
mem->string = val->string;
ast_append(n, mem);
// if (parser_match(par, lex_kind_assign)) {
@@ -243,12 +243,12 @@ ast_t *parse_decls(ma_arena_t *arena, char *file, char *code) {
if (!parser_match(par, lex_kind_comma)) break;
}
parser_expect(par, lex_kind_close_brace);
n->string = parser_expect(par, lex_kind_ident)->s8;
n->string = parser_expect(par, lex_kind_ident)->string;
parser_expect(par, lex_kind_semicolon);
} else if (parser_matchi(par, s8_lit("struct"))) {
ast_t *n = create_ast(par, pos, set_bit(ast_flag_string) | set_bit(ast_flag_struct));
ast_append(result, n);
n->string = parser_expect(par, lex_kind_ident)->s8;
n->string = parser_expect(par, lex_kind_ident)->string;
parser_expect(par, lex_kind_open_brace);
while (par->at->kind != lex_kind_close_brace) {
@@ -285,16 +285,16 @@ ast_t *parse_table(ma_arena_t *arena, char *file, char *code) {
if (parser_match(par, lex_kind_ident) || parser_match(par, lex_kind_string)) {
ast_t *col = create_ast(par, par->at, set_bit(ast_flag_string));
ast_append(row, col);
col->string = token->s8;
col->string = token->string;
} else if (parser_match(par, lex_kind_integer)) {
ast_t *col = create_ast(par, par->at, set_bit(ast_flag_string) | set_bit(ast_flag_integer));
ast_append(row, col);
col->string = token->s8;
col->string = token->string;
col->integer = token->integer;
} else if (parser_match(par, lex_kind_real)) {
ast_t *col = create_ast(par, par->at, set_bit(ast_flag_string) | set_bit(ast_flag_real));
ast_append(row, col);
col->string = token->s8;
col->string = token->string;
col->real = token->real;
} else if (parser_match(par, lex_kind_bit_or) || parser_match(par, lex_kind_eof)) {
break;