From 6b7b9d96fb26ba9d4616d2b839098b7c75f39c3f Mon Sep 17 00:00:00 2001 From: mryouse Date: Fri, 26 May 2023 01:36:49 +0000 Subject: strings as seqs --- parser.d | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'parser.d') diff --git a/parser.d b/parser.d index e51b5e1..6974662 100644 --- a/parser.d +++ b/parser.d @@ -8,6 +8,7 @@ import dbg; enum FormType { ATOM, + LITERALSTRING, CONS, NIL, SYMBOL, @@ -240,6 +241,18 @@ class Def : Form { } } +class LiteralString : Form { + Value value; + + this(string value, int line) { + this.value = makeStringValue(value); + this.line = line; + this.type = FormType.LITERALSTRING; + this.evaluate = false; + this.returnType = this.value.type; + } +} + class Atom : Form { Value value; @@ -419,7 +432,7 @@ class Parser { return new ParseError("unterminated string!", line); } advance(); // go past last quote - return new Atom(to!string(acc), line); + return new LiteralString(to!string(acc), line); } bool isBoundary(char ch) { -- cgit v1.2.3