diff --git a/pkg/shsh/token.go b/pkg/shsh/token.go index da572b5..3617794 100644 --- a/pkg/shsh/token.go +++ b/pkg/shsh/token.go @@ -16,6 +16,7 @@ func Lex(input string) Token { delim := ' ' var tok strings.Builder iter_alloced := false + is_list = false; for pos, char := range input { switch char { @@ -23,11 +24,21 @@ func Lex(input string) Token { case '\'', '"', '`': delim = char case '(': + is_list = true delim = ')' case delim: *iter = new(Token) - *iter._inner = tok.String() + if is_list { + // TODO: Pass a pointer out of Lex and store a pointer + *iter._inner = Lex(tok.String()) + is_list = false + + } else { + // TODO: Store a pointer to the contents of the stringbuilder + *iter._inner = tok.String() + } + iter_alloced = true delim = ' '