From 0d7eb4139b55b6b6b12c05179986a194fbd85856 Mon Sep 17 00:00:00 2001 From: Aidan Date: Fri, 3 Jul 2020 01:05:25 -0700 Subject: [PATCH] dont require top level parens --- ast/eval.go | 2 +- ast/lex.go | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/ast/eval.go b/ast/eval.go index 0d1c86a..bc0c17b 100644 --- a/ast/eval.go +++ b/ast/eval.go @@ -57,7 +57,7 @@ func (in *Token) Eval(funcs FuncTable, vars VarTable, cnvtUndefVars bool) *Token break } - log.Log(log.ERR, + log.Log(log.ERR, "undefined symbol: "+in.Value(), "eval") return nil diff --git a/ast/lex.go b/ast/lex.go index f5e2ff4..3c3bf4c 100644 --- a/ast/lex.go +++ b/ast/lex.go @@ -25,6 +25,17 @@ import ( const string_delims string = "\"'`" func Lex(input string) *Token { + ret := lex(input) + if ret.Tag != LIST { + temp := &Token{Tag: LIST} + temp.Direct(ret) + ret = temp + } + + return ret +} + +func lex(input string) *Token { if len(input) == 0 { return nil } @@ -43,7 +54,7 @@ func Lex(input string) *Token { (*iter).Position = pos if is_list { - (*iter).inner = Lex(tok) + (*iter).inner = lex(tok) (*iter).Tag = LIST is_list = false