diff options
| author | Zuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian> | 2026-01-23 15:55:02 +0000 |
|---|---|---|
| committer | Zuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian> | 2026-01-23 15:55:02 +0000 |
| commit | c735d4b45f2db336e2aff8d94da7a08bb1fad68f (patch) | |
| tree | 16f079ddb7e400ddce4a83be47bed5cc6d46c884 /src/codegen/codegen.c | |
| parent | 8d0ea93a7220730ccce754429549fd63e4eeaa7c (diff) | |
Update for tuples.
Diffstat (limited to 'src/codegen/codegen.c')
| -rw-r--r-- | src/codegen/codegen.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/codegen/codegen.c b/src/codegen/codegen.c index 22cbc15..95e0ccd 100644 --- a/src/codegen/codegen.c +++ b/src/codegen/codegen.c @@ -603,7 +603,15 @@ void codegen_expression(ParserContext *ctx, ASTNode *node, FILE *out) emit_auto_type(ctx, node->member.target, node->token, out); fprintf(out, " _t = ("); codegen_expression(ctx, node->member.target, out); - fprintf(out, "); _t ? _t->%s : 0; })", node->member.field); + char *field = node->member.field; + if (field && field[0] >= '0' && field[0] <= '9') + { + fprintf(out, "); _t ? _t->v%s : 0; })", field); + } + else + { + fprintf(out, "); _t ? _t->%s : 0; })", field); + } } else { @@ -619,7 +627,15 @@ void codegen_expression(ParserContext *ctx, ASTNode *node, FILE *out) { free(lt); } - fprintf(out, "%s%s", actually_ptr ? "->" : ".", node->member.field); + char *field = node->member.field; + if (field && field[0] >= '0' && field[0] <= '9') + { + fprintf(out, "%sv%s", actually_ptr ? "->" : ".", field); + } + else + { + fprintf(out, "%s%s", actually_ptr ? "->" : ".", field); + } } break; case NODE_EXPR_INDEX: |
