From ee78756a504dc61f50422298cc1123c5ac6b3b69 Mon Sep 17 00:00:00 2001 From: Mathias Magnusson Date: Sat, 31 May 2025 02:12:02 +0200 Subject: actually codegen the provided code ... well, since all we can do is to add integer literals, we produce code for the calculations and then perform the exit syscall with the result --- src/parse.zig | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/parse.zig') diff --git a/src/parse.zig b/src/parse.zig index 2149cd7..e0c1fd0 100644 --- a/src/parse.zig +++ b/src/parse.zig @@ -26,6 +26,15 @@ pub const Expr = struct { }; }; }; + + pub fn getInt(self: *const @This(), file_source: []const u8) u64 { + var value: u64 = 0; + for (file_source[self.loc.start..self.loc.end]) |c| { + std.debug.assert('0' <= c and c <= '9'); + value = value * 10 + c - '0'; + } + return value; + } }; pub fn expression(allocator: Allocator, lexer: *Peekable(Lexer)) error{OutOfMemory}!*Expr { -- cgit v1.2.3