diff options
Diffstat (limited to 'src/zisp/io/Parser.zig')
| -rw-r--r-- | src/zisp/io/Parser.zig | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/src/zisp/io/Parser.zig b/src/zisp/io/Parser.zig index 08bf8ba..df9e238 100644 --- a/src/zisp/io/Parser.zig +++ b/src/zisp/io/Parser.zig @@ -78,7 +78,6 @@ const GRAVE = value.rune.pack("GRAVE"); const COMMA = value.rune.pack("COMMA"); const SQUARE = value.rune.pack("SQUARE"); const BRACE = value.rune.pack("BRACE"); -const VOID = value.rune.packForced(""); const LSTAIL = value.sstr.pack("."); // zig fmt: on @@ -328,7 +327,7 @@ fn jump(p: *Parser, next: Fn, val: ?Value) void { } fn abort(p: *Parser, next: Fn, unread_c: u8) void { - p.result = VOID; + p.result = value.none; p.unread_char = unread_c; p.context.next = next; } @@ -354,7 +353,7 @@ fn parseUnit(p: *Parser) !void { }, } } - return p.retval(value.eof.eof); + return p.retval(value.eof); } fn endUnit(p: *Parser) !void { @@ -381,7 +380,7 @@ fn parseDatum(p: *Parser) !void { } fn endFirstDatum(p: *Parser) !void { - if (p.result.eq(VOID)) { + if (p.result.eq(value.none)) { return p.ret(); } return parseJoin(p); @@ -406,7 +405,7 @@ fn parseJoin(p: *Parser) !void { fn endJoinDatum(p: *Parser) !void { const prev = p.context.val; const join = p.context.char; - if (p.result.eq(VOID)) { + if (p.result.eq(value.none)) { if (join == 0) { return p.retval(prev); } else { @@ -573,7 +572,7 @@ fn parseHashDatum(p: *Parser) !void { } fn endHashDatum(p: *Parser) !void { - if (p.result.eq(VOID)) { + if (p.result.eq(value.none)) { return p.err(.InvalidCharacter, "hash datum"); } return p.retval(p.cons(HASH, p.result)); @@ -620,7 +619,7 @@ fn parseRuneDatum(p: *Parser) !void { } fn endRuneDatum(p: *Parser) !void { - if (p.result.eq(VOID)) { + if (p.result.eq(value.none)) { p.retval(p.context.val); } return p.retval(p.cons(p.context.val, p.result)); @@ -645,7 +644,7 @@ fn parseLabelEnd(p: *Parser, l: Value, next: Fn) !void { } fn endLabelDatum(p: *Parser) !void { - if (p.result.eq(VOID)) { + if (p.result.eq(value.none)) { return p.err(.InvalidCharacter, "label datum"); } return p.retval(p.cons(LABEL, p.cons(p.context.val, p.result))); @@ -653,9 +652,9 @@ fn endLabelDatum(p: *Parser) !void { fn parseList(p: *Parser, open: u8, next: Fn) !void { const head = switch (open) { - '(' => value.nil.nil, - '[' => p.cons(SQUARE, value.nil.nil), - '{' => p.cons(BRACE, value.nil.nil), + '(' => value.nil, + '[' => p.cons(SQUARE, value.nil), + '{' => p.cons(BRACE, value.nil), else => unreachable, }; const close: u8 = switch (open) { @@ -694,7 +693,7 @@ fn listParserSetup(p: *Parser, head: Value, close: u8, next: Fn) !void { fn continueList(p: *Parser) !void { const close = p.context.char; - if (p.result.eq(VOID)) { + if (p.result.eq(value.none)) { const c = p.getUnread().?; if (c == close) { return endList(p); @@ -733,7 +732,7 @@ fn endList(p: *Parser) !void { } fn endImproperList(p: *Parser) !void { - if (p.result.eq(VOID)) { + if (p.result.eq(value.none)) { return p.err(.InvalidCharacter, "list tail"); } p.context.val = lib.list.reverseWithTail(p.context.val, p.result); @@ -772,7 +771,7 @@ fn parseQuoteExpr(p: *Parser, c1: u8, next: Fn) !void { } fn endQuoteExpr(p: *Parser) !void { - if (p.result.eq(VOID)) { + if (p.result.eq(value.none)) { return p.err(.InvalidCharacter, "quote expression datum"); } return p.retval(p.cons(p.context.val, p.result)); |
