From 6b7b9d96fb26ba9d4616d2b839098b7c75f39c3f Mon Sep 17 00:00:00 2001 From: mryouse Date: Fri, 26 May 2023 01:36:49 +0000 Subject: strings as seqs --- chunk.d | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'chunk.d') diff --git a/chunk.d b/chunk.d index 47d3c73..08ba003 100644 --- a/chunk.d +++ b/chunk.d @@ -48,6 +48,34 @@ abstract class Seq { abstract int length(); } +class String : Seq { + string str; + + this(Value value) { + this.str = value.as.str; + } + + this(string str) { + this.str = str; + } + + override Value first() { + return makeStringValue(to!string(this.str[0])); + } + + override Seq rest() { + return new String(this.str[1..$]); + } + + override int length() { + return to!int(str.length); + } + + override string toString() { + return format("\"%s\"", this.str); + } +} + class List : Seq { Value[] inner; -- cgit v1.2.3