diff options
Diffstat (limited to 'chunk.d')
| -rw-r--r-- | chunk.d | 28 |
1 files changed, 28 insertions, 0 deletions
@@ -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; |
