Commit Graph

5 Commits

Author SHA1 Message Date
dimgigov 48ee40e7c5 feat: struct init in all phases, 9/14 modules pass check 2026-05-31 20:21:20 +03:00
dimgigov 35b856bab4 Phase 7.10: buxc2 now compiles multi-statement Bux programs
Parser (src_bux/parser.bux):
- Block stores statements as linked list (firstStmt/lastStmt/nextStmt)
- Block struct: added firstStmt, lastStmt fields
- Stmt struct: added nextStmt field

HIR Lowering (src_bux/hir_lower.bux):
- Lcx_LowerBlock: iterates statement linked list, chains HirNodes via child3
- hIf: else block stored in extraData (child3 reserved for block chaining)

C Backend (src_bux/c_backend.bux):
- hBlock: emits statements via child3 linked list with proper indentation
- hStore: combines alloca + value into single declaration (int x = value;)
- hIf: full if/else emission with proper newlines
- Function decl: proper return types and parameter types (not just "int")
- int main() wrapper: generated when Main function exists
- No duplicate return 0 when body already has return

Tested:
- buxc2 compiles hello world program → runs correctly
- buxc2 compiles multi-statement program (let, if, function calls) → runs correctly
- All 18 examples still pass, all unit tests pass
2026-05-31 17:25:03 +03:00
dimgigov de6e89e3df Phase 7.9: multi-file build, module braces, struct init multi-line, else-if fix 2026-05-31 14:25:57 +03:00
dimgigov f4de065160 fix: module syntax — changed src_bux/*.bux from module X; to module X { ... } 2026-05-31 14:14:42 +03:00
dimgigov 6ee6b3b529 Phase 7: Self-hosting compiler — all 13 modules ported to Bux (3981 LOC) 2026-05-31 13:29:14 +03:00