move iterator

This commit is contained in:
Aidan Hahn 2019-11-12 14:17:04 -08:00
parent 279e0d7ee1
commit ac6d039ed5
No known key found for this signature in database
GPG key ID: 327711E983899316

View file

@ -25,18 +25,21 @@ type Token struct {
interface{} *_inner interface{} *_inner
} }
func lex(string input) string { func lex(string input) string {
ret := new(Token) ret := new(Token)
iter := &ret iter := &ret
// buffered reader via new or make i dunno // 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 { for pos, char := range input {
switch char { switch char {
case ' ', '\t', '\n', '\f', '\r':
// parse new token
case '\'', '\"', '`': case '\'', '\"', '`':
// parse new token // parse new token
fallthrough // ?
case ' ', '\t', '\n', '\f', '\r':
// parse new token
case '(': case '(':
// match paren // match paren
// parse list // parse list
@ -51,6 +54,11 @@ func lex(string input) string {
// clear buffer // clear buffer
buf_is_dirty = false buf_is_dirty = false
} }
if iter_alloced {
iter = &(*iter)->next
iter_alloced = false
}
} }
} }