From ac6d039ed565d74df7dfd2f5ecf4bb0b6e84b4dc Mon Sep 17 00:00:00 2001 From: Aidan Hahn Date: Tue, 12 Nov 2019 14:17:04 -0800 Subject: [PATCH] move iterator --- pkg/shsh/token.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/pkg/shsh/token.go b/pkg/shsh/token.go index d4c3e99..fd81863 100644 --- a/pkg/shsh/token.go +++ b/pkg/shsh/token.go @@ -25,18 +25,21 @@ type Token struct { interface{} *_inner } + func lex(string input) string { ret := new(Token) iter := &ret // buffered reader via new or make i dunno - bool buff_is_dirty = false; + buff_is_dirty := false + iter_alloced := false for pos, char := range input { switch char { - case ' ', '\t', '\n', '\f', '\r': - // parse new token case '\'', '\"', '`': // parse new token + fallthrough // ? + case ' ', '\t', '\n', '\f', '\r': + // parse new token case '(': // match paren // parse list @@ -51,6 +54,11 @@ func lex(string input) string { // clear buffer buf_is_dirty = false } + + if iter_alloced { + iter = &(*iter)->next + iter_alloced = false + } } }