diff --git a/src/backend/meta/ast.nim b/src/backend/meta/ast.nim index f125a67..ba9d88d 100644 --- a/src/backend/meta/ast.nim +++ b/src/backend/meta/ast.nim @@ -618,7 +618,7 @@ proc `$`*(self: ASTNode): string = if self.kind in {trueExpr, falseExpr, nanExpr, nilExpr, infExpr}: result &= &"Literal({($self.kind)[0..^5]})" elif self.kind == strExpr: - result &= &"Literal({LiteralExpr(self).literal.lexeme.escape()})" + result &= &"Literal({LiteralExpr(self).literal.lexeme})" else: result &= &"Literal({LiteralExpr(self).literal.lexeme})" of identExpr: diff --git a/src/backend/meta/token.nim b/src/backend/meta/token.nim index b724dc3..89ed93a 100644 --- a/src/backend/meta/token.nim +++ b/src/backend/meta/token.nim @@ -80,6 +80,6 @@ type proc `$`*(self: Token): string = if self != nil: - result = &"Token(kind={self.kind}, lexeme={$(self.lexeme).escape()}, line={self.line}, pos=({self.pos.start}, {self.pos.stop}))" + result = &"Token(kind={self.kind}, lexeme={$(self.lexeme)}, line={self.line}, pos=({self.pos.start}, {self.pos.stop}))" else: result = "nil" diff --git a/src/backend/serializer.nim b/src/backend/serializer.nim index daf9768..648e18d 100644 --- a/src/backend/serializer.nim +++ b/src/backend/serializer.nim @@ -122,21 +122,23 @@ proc writeConstants(self: Serializer, stream: var seq[byte]) = stream.extend(self.toBytes(constant.token.lexeme)) of strExpr: stream.add(0x2) + var temp: seq[byte] = @[] var strip: int = 2 var offset: int = 1 case constant.token.lexeme[0]: of 'f': strip = 3 inc(offset) - stream.add(0x2) + temp.add(0x2) of 'b': strip = 3 inc(offset) - stream.add(0x1) + temp.add(0x1) else: strip = 2 - stream.add(0x0) - stream.extend((len(constant.token.lexeme) - offset).toTriple()) # Removes the quotes from the length count as they're not written + temp.add(0x0) + stream.extend((len(constant.token.lexeme) - strip).toTriple()) # Removes the quotes from the length count as they're not written + stream.extend(temp) stream.add(self.toBytes(constant.token.lexeme[offset..^2])) of identExpr: stream.add(0x0) @@ -186,8 +188,11 @@ proc readConstants(self: Serializer, stream: seq[byte]): int = self.error(&"unknown string modifier in chunk table (0x{stream[0].toHex()}") stream = stream[1..^1] s.token.lexeme.add("\"") - s.token.lexeme.add(stream[0..