From 78f119b51e523d52259ad7951aad55f7c7eabb49 Mon Sep 17 00:00:00 2001 From: Sayantan Das Date: Tue, 12 Apr 2022 08:29:09 +0530 Subject: [PATCH] Convert the rune array to string during scanning --- parser.go | 10 +++++----- scanner.go | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/parser.go b/parser.go index 81039b0..9c97651 100644 --- a/parser.go +++ b/parser.go @@ -37,7 +37,7 @@ func (p *Parser) Parse() []Stmt { return nil } - statements = append(statements,expr) + statements = append(statements, expr) } return statements @@ -51,8 +51,8 @@ func (p *Parser) statement() (Stmt, error) { return p.expressionStatement() } -// printStatement parses a print statement. Since the print keyword is -// already consumed by the match method earlier, we just parse the +// printStatement parses a print statement. Since the print keyword is +// already consumed by the match method earlier, we just parse the // subsequent expression, consume the terminating semicolon and emit the // syntax tree. func (p *Parser) printStatement() (Stmt, error) { @@ -69,8 +69,8 @@ func (p *Parser) printStatement() (Stmt, error) { return &Print{Expression: expr}, nil } -// expressionStatement parses expression statements. It kind of acts like a -// fallthrough condition. If we can't match with any known statements, we +// expressionStatement parses expression statements. It kind of acts like a +// fallthrough condition. If we can't match with any known statements, we // assume it's a expression statement. func (p *Parser) expressionStatement() (Stmt, error) { expr, err := p.expression() diff --git a/scanner.go b/scanner.go index 254a0f4..724b268 100644 --- a/scanner.go +++ b/scanner.go @@ -155,7 +155,7 @@ func (sc *Scanner) scanString() { // Trim the surrounding quotes and just take the string literal. val := sc.sourceRunes[sc.start+1 : sc.current-1] - sc.addToken(String, val) + sc.addToken(String, string(val)) } func (sc *Scanner) scanNumber() {