feat: backtick raw/multi-line strings + QBE backend fixes

- Add backtick raw string literals (Go-style ): no escape processing, multi-line
- C backend: handle backtick strings in emitExpr
- Self-hosted lexer: lexScanBacktickString support
- QBE backend: handle backtick strings in data sections
- QBE: remove broken extern declarations (QBE resolves at link time)
- QBE: fix comparison result types (ceql → w, extend to l)
- QBE: fix SSA parameter name clash (_p_ prefix for params)
- QBE: const inlining via HirLower + QBE emitter
- QBE: proper type mapping for bool/char types
- hir_lower: collect dkConst declarations for const propagation
This commit is contained in:
2026-06-02 11:33:29 +03:00
parent d1160ca5d1
commit 70cfa4f721
14 changed files with 2193 additions and 64 deletions
+1
View File
@@ -479,6 +479,7 @@ char* bux_read_file(const char* path) {
long size = ftell(f);
fseek(f, 0, SEEK_SET);
char* buf = (char*)bux_alloc((size_t)size + 1);
if (!buf) { fclose(f); return NULL; }
size_t read = fread(buf, 1, (size_t)size, f);
fclose(f);
buf[read] = '\0';