summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTaylan Kammer <taylan.kammer@gmail.com>2026-06-03 20:56:00 +0200
committerTaylan Kammer <taylan.kammer@gmail.com>2026-06-03 20:56:00 +0200
commite77c34f654a47cb90857f1ac4d6957e008858d6a (patch)
tree1daa1ad34faa4e0e262f97ffafe48addcaa14b57 /src
parent8484220d8b364d118288cf204a1459f45b37cb1d (diff)
At-quoted strings carry the sentinel.
Diffstat (limited to 'src')
-rw-r--r--src/zisp/io/Parser.zig9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/zisp/io/Parser.zig b/src/zisp/io/Parser.zig
index e29868a..a56a61b 100644
--- a/src/zisp/io/Parser.zig
+++ b/src/zisp/io/Parser.zig
@@ -481,13 +481,14 @@ fn getString(p: *Parser, comptime close: u8) !Value {
}
fn getAtString(p: *Parser) !Value {
- const sentinel = try p.readNoEof("at-string");
+ const stop = try p.readNoEof("at-string");
while (try p.readNoEof2("at-string")) |c| {
- if (c == sentinel) break;
+ if (c == stop) break;
try p.addChar(c);
}
- const s = try p.getCharsAsString();
- return p.cons(ATSTR, s);
+ const str = try p.getCharsAsString();
+ const byte = value.fixnum.pack(stop);
+ return p.cons(ATSTR, p.cons(byte, str));
}
fn skipStringLfEscape(p: *Parser) !u8 {