diff options
| author | Joel Martin <github@martintribe.org> | 2014-10-04 21:49:26 -0500 |
|---|---|---|
| committer | Joel Martin <github@martintribe.org> | 2014-10-04 21:49:26 -0500 |
| commit | 70ea599b6e0787102f12cd543dcd65a2eb3751d5 (patch) | |
| tree | 81e43e09ed4f56f9290cc765e0f57dd35de02a5d /go/src/reader | |
| parent | 45e1db6afbb0c63b1cd5d17e0996d7929803f37b (diff) | |
| download | mal-70ea599b6e0787102f12cd543dcd65a2eb3751d5.tar.gz mal-70ea599b6e0787102f12cd543dcd65a2eb3751d5.zip | |
go: step1_read_print print working.
Diffstat (limited to 'go/src/reader')
| -rw-r--r-- | go/src/reader/reader.go | 5 |
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) |
