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.
10 行
192 B
Plaintext
10 行
192 B
Plaintext
int main(void) {
|
|
int i;
|
|
int sum = 0;
|
|
for (i = 0; i < 5; i++) {
|
|
printf("i=%d sum=%d\n", i, sum);
|
|
sum += i;
|
|
}
|
|
printf("final sum = %d\n", sum);
|
|
return 0;
|
|
} |