diff --git a/src/01_lexic/root.zig b/src/01_lexic/root.zig new file mode 100644 index 0000000..1c2c752 --- /dev/null +++ b/src/01_lexic/root.zig @@ -0,0 +1,3 @@ +pub fn stub() i32 { + return 322; +} diff --git a/src/main.zig b/src/main.zig index 6b004d0..e876e82 100644 --- a/src/main.zig +++ b/src/main.zig @@ -1,4 +1,6 @@ const std = @import("std"); +const lexic = @import("./01_lexic/root.zig"); + const thp_version: []const u8 = "0.0.0"; pub fn main() !void { @@ -13,8 +15,18 @@ fn repl() !void { var bw = std.io.bufferedWriter(stdout_file); const stdout = bw.writer(); try stdout.print("The THP REPL, v{s}\n", .{thp_version}); - try stdout.print("Enter expressions to evaluate. Enter CTRL-D to exit.\n", .{}); + try stdout.print("Enter expressions to evaluate. Enter CTRL-D to exit.\n\n", .{}); + try bw.flush(); + const stdin = std.io.getStdIn().reader(); + + try stdout.print("thp => ", .{}); + try bw.flush(); + + const user_input = try stdin.readUntilDelimiterAlloc(std.heap.page_allocator, '\n', 8192); + defer std.heap.page_allocator.free(user_input); + + try stdout.print("got: `{s}`\n", .{user_input}); try bw.flush(); } @@ -24,3 +36,8 @@ test "simple test" { try list.append(42); try std.testing.expectEqual(@as(i32, 42), list.pop()); } + +test "new test" { + const res = lexic.stub(); + try std.testing.expectEqual(@as(i32, 322), res); +}