summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTaylan Kammer <taylan.kammer@gmail.com>2025-02-20 18:29:59 +0100
committerTaylan Kammer <taylan.kammer@gmail.com>2025-02-20 18:29:59 +0100
commitab0edc69d17cd32397a4f7a059120fd6152bb138 (patch)
tree505bc85978714cb0b6f4e5d8c9058bbcf1fe1bab /src
parent3b713ef3e872bda3da9e5a67a9bfd5c6701cb665 (diff)
update
Diffstat (limited to 'src')
-rw-r--r--src/libzisp.zig14
-rw-r--r--src/libzisp/parser.zig (renamed from src/libzisp/read.zig)7
2 files changed, 10 insertions, 11 deletions
diff --git a/src/libzisp.zig b/src/libzisp.zig
index 29b87dd..cf8ceec 100644
--- a/src/libzisp.zig
+++ b/src/libzisp.zig
@@ -5,9 +5,9 @@ const std = @import("std");
const builtin = @import("builtin");
const testing = std.testing;
-pub const value = @import("libzisp/value.zig");
-pub const read = @import("libzisp/read.zig");
pub const gc = @import("libzisp/gc.zig");
+pub const parser = @import("libzisp/parser.zig");
+pub const value = @import("libzisp/value.zig");
pub const Value = value.Value;
pub const Bucket = gc.Bucket;
@@ -250,16 +250,16 @@ test "pair" {
try std.testing.expectEqual(4, value.fixnum.unpack(cdr2));
}
-test "read" {
- const val = read.read("\"foo\"");
+test "parse" {
+ const val = parser.parse("\"foo\"");
const r, const rl = value.rune.unpack(value.pair.car(val));
const s, const sl = value.sstr.unpack(value.pair.cdr(val));
try std.testing.expectEqualStrings("string", r[0..rl]);
try std.testing.expectEqualStrings("foo", s[0..sl]);
}
-test "read2" {
- const val = read.read("#\"foo\"");
+test "parse2" {
+ const val = parser.parse("#\"foo\"");
const r, const rl = value.rune.unpack(value.pair.car(val));
try std.testing.expectEqualStrings("hash", r[0..rl]);
@@ -272,5 +272,5 @@ test "read2" {
const f, const fl = value.sstr.unpack(value.pair.cdr(cdr));
try std.testing.expectEqualStrings("foo", f[0..fl]);
- _ = read.read("(\"foo\" '\"bar\" [#x \"baz\"])");
+ _ = parser.parse("(\"foo\" '\"bar\" [#x \"baz\"])");
}
diff --git a/src/libzisp/read.zig b/src/libzisp/parser.zig
index 74ae51b..9e70614 100644
--- a/src/libzisp/read.zig
+++ b/src/libzisp/parser.zig
@@ -253,7 +253,7 @@ const Next = enum {
finish,
};
-pub fn read(input: []const u8) Value {
+pub fn parse(input: []const u8) Value {
var gpa: std.heap.GeneralPurposeAllocator(.{}) = .init;
var top = State{ .alloc = gpa.allocator(), .input = input };
var s = &top;
@@ -268,13 +268,12 @@ pub fn read(input: []const u8) Value {
.end_improper_list => endImproperList(s),
.finish => s.finish() orelse break,
};
- std.debug.print("next: {}\n", .{s.next});
}
if (s.eof() or s.isFinalNull()) {
return s.retval;
} else {
// Should never happen.
- err(s, "READER BUG: unconsumed input");
+ err(s, "PARSER BUG: unconsumed input");
}
}
@@ -654,5 +653,5 @@ fn startBareString(s: *State) *State {
fn err(s: *State, msg: []const u8) noreturn {
std.debug.print("{s}\n", .{msg});
std.debug.print("pos: {}\n", .{s.pos});
- @panic("reader error");
+ @panic("parse error");
}