move iterator
This commit is contained in:
parent
279e0d7ee1
commit
ac6d039ed5
1 changed files with 11 additions and 3 deletions
|
|
@ -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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue