summaryrefslogtreecommitdiff
path: root/src/main.zig
diff options
context:
space:
mode:
authorNic Gaffney <gaffney_nic@protonmail.com>2025-02-18 16:44:48 -0600
committerNic Gaffney <gaffney_nic@protonmail.com>2025-02-18 16:44:48 -0600
commit8f2595c71bce8d2f14de334d6e1b6378cc9f7cbf (patch)
tree6d6ca8b19c42d26bc965ac851eac643d3f1e4e5e /src/main.zig
parentc77c9a42cd048a9f68aedf4fed5bfa8a2a4051d6 (diff)
downloadcalico-8f2595c71bce8d2f14de334d6e1b6378cc9f7cbf.tar.gz
Pre-repair
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/main.zig b/src/main.zig
index 613d8f9..9e53ecd 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -5,6 +5,12 @@ const gen = @import("codegen.zig");
const symb = @import("symtable.zig");
pub fn main() !void {
+ var gpa = std.heap.GeneralPurposeAllocator(.{}){};
+ const alc = gpa.allocator();
+ defer _ = gpa.deinit();
+ var arena = std.heap.ArenaAllocator.init(alc);
+ defer arena.deinit();
+ var allocator = arena.allocator();
if (std.os.argv.len < 2) {
std.debug.print(
\\info: Usage: calico [input file]
@@ -13,10 +19,6 @@ pub fn main() !void {
return;
}
- var gpa = std.heap.GeneralPurposeAllocator(.{}){};
- var allocator = gpa.allocator();
- defer _ = gpa.deinit();
-
var args = std.process.args();
_ = args.skip();
const inputFileName = args.next();
@@ -58,12 +60,10 @@ pub fn main() !void {
try pop.populateSymtable(&treeNode);
// Codegen
- var arena = std.heap.ArenaAllocator.init(allocator);
- var generator = gen.Generator.init(arena.allocator(), tree);
+ var generator = gen.Generator.init(allocator, tree);
defer generator.deinit();
const code = try generator.generate();
try outWriter.writeAll(code);
- arena.deinit();
const binFile = try getFileName(allocator, out_name, "");
defer allocator.free(binFile);