aboutsummaryrefslogtreecommitdiff
path: root/go/src/reader
diff options
context:
space:
mode:
Diffstat (limited to 'go/src/reader')
-rw-r--r--go/src/reader/reader.go5
1 files changed, 3 insertions, 2 deletions
diff --git a/go/src/reader/reader.go b/go/src/reader/reader.go
index 3222d6f..6a08840 100644
--- a/go/src/reader/reader.go
+++ b/go/src/reader/reader.go
@@ -29,7 +29,7 @@ func (tr *TokenReader) next() *string {
}
func (tr *TokenReader) peek() *string {
- if tr.position > len(tr.tokens) { return nil }
+ if tr.position >= len(tr.tokens) { return nil }
return &tr.tokens[tr.position]
}
@@ -79,8 +79,9 @@ func read_list(rdr Reader) (types.MalType, error) {
return nil, errors.New("expected '('")
}
token = rdr.peek()
- for ; token != nil && *token != ")" ; token = rdr.peek() {
+ for ; true ; token = rdr.peek() {
if token == nil { return nil, errors.New("exepected ')', got EOF") }
+ if *token == ")" { break }
f, e := read_form(rdr)
if e != nil { return nil, e }
ast_list = append(ast_list, f)