diff options
| author | Baitinq <[email protected]> | 2025-02-02 22:39:44 +0100 |
|---|---|---|
| committer | Baitinq <[email protected]> | 2025-02-02 22:39:44 +0100 |
| commit | 607340acaf618d72658bc46ffa16b1f35fcae790 (patch) | |
| tree | f00f4b30b532cc52f33a7d7d122dbc36ddd654bb | |
| parent | Codegen: Support mul,div,sub and cmp (diff) | |
| download | interpreter-607340acaf618d72658bc46ffa16b1f35fcae790.tar.gz interpreter-607340acaf618d72658bc46ffa16b1f35fcae790.tar.bz2 interpreter-607340acaf618d72658bc46ffa16b1f35fcae790.zip | |
Codegen: Add errdefers for debugging
| -rw-r--r-- | src/codegen.zig | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/codegen.zig b/src/codegen.zig index 555f447..3f5b3bc 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -114,6 +114,7 @@ pub const CodeGen = struct { } fn generate_statement(self: *CodeGen, statement: *parser.Node) CodeGenError!void { + errdefer std.debug.print("Error generating statement\n", .{}); std.debug.assert(statement.* == parser.Node.STATEMENT); switch (statement.STATEMENT.statement.*) { @@ -130,6 +131,7 @@ pub const CodeGen = struct { } fn generate_assignment_statement(self: *CodeGen, statement: *parser.Node) CodeGenError!void { + errdefer std.debug.print("Error generating assignment statement\n", .{}); std.debug.assert(statement.* == parser.Node.ASSIGNMENT_STATEMENT); const assignment_statement = statement.ASSIGNMENT_STATEMENT; @@ -143,6 +145,7 @@ pub const CodeGen = struct { } fn generate_function_call_statement(self: *CodeGen, statement: *parser.Node) CodeGenError!types.LLVMValueRef { + errdefer std.debug.print("Error generating function call statement\n", .{}); std.debug.assert(statement.* == parser.Node.FUNCTION_CALL_STATEMENT); const function_call_statement = statement.FUNCTION_CALL_STATEMENT; @@ -164,6 +167,7 @@ pub const CodeGen = struct { } fn generate_return_statement(self: *CodeGen, statement: *parser.Node) !void { + errdefer std.debug.print("Error generating return statement\n", .{}); std.debug.assert(statement.* == parser.Node.RETURN_STATEMENT); const expression = statement.RETURN_STATEMENT.expression; @@ -172,6 +176,7 @@ pub const CodeGen = struct { } fn generate_if_statement(self: *CodeGen, statement: *parser.Node) !void { + errdefer std.debug.print("Error generating if statement\n", .{}); std.debug.assert(statement.* == parser.Node.IF_STATEMENT); const if_statement = statement.IF_STATEMENT; @@ -194,6 +199,7 @@ pub const CodeGen = struct { } fn generate_expression_value(self: *CodeGen, expression: *parser.Node) !*Variable { + errdefer std.debug.print("Error generating statement value\n", .{}); return switch (expression.*) { .FUNCTION_DEFINITION => |function_definition| { try self.environment.create_scope(); |