文件
JGZ_YES 7b0a4c535b feat(los4): add pure C compiler targeting Los4 ELF
Add src/PazeE.los4/ — a pure C implementation of the PazeE compiler
that generates static Los4 ELF executables (x86-64, int 0x80 syscalls).

Core components:
- Lexer, preprocessor, recursive-descent parser, AST
- Tree-walking interpreter (paze run) with breakpoints
- x86-64 code generator (SysV AMD64 ABI)
- Los4 ELF writer (4 PH layout matching doomlauncher.elf, base 0x400000)
- Runtime library as raw machine code: printf, sprintf, puts, malloc,
  memcpy, memset, strcmp, strlen, exit, etc.

Key fixes:
- Fix use-after-free: AST paze_str_t slices point into source buffer,
  so free(src) is deferred until after interpreter/codegen completes
- printf/sprintf support %d/%i/%u/%x/%c/%s/%% with rel32 jumps
- External function calls resolved via runtime offset lookup

All 14 test cases pass for both paze run and paze build.

Also includes DebuggerVM.cs and Program.cs updates for the C# compiler.
2026-08-10 21:32:39 +08:00

10 行
161 B
Plaintext

int fib(int n) {
if (n < 2) return n;
return fib(n - 1) + fib(n - 2);
}
int main() {
int r = fib(5);
printf("fib(5) = %d\n", r);
return 0;
}