diff options
Diffstat (limited to 'codegen')
| -rw-r--r-- | codegen/compiler.go | 1 | ||||
| -rw-r--r-- | codegen/compiler_test.go | 2 | ||||
| -rw-r--r-- | codegen/interpreter.go | 2 | ||||
| -rw-r--r-- | codegen/interpreter_test.go | 7 |
4 files changed, 6 insertions, 6 deletions
diff --git a/codegen/compiler.go b/codegen/compiler.go index 30fc070..02b67cb 100644 --- a/codegen/compiler.go +++ b/codegen/compiler.go @@ -167,7 +167,6 @@ func (c *Compiler) CodeGen(node *parser.Node) (err error) { return true }) - log.Println("main:", c.symbols["main"]) if s, _, ok := c.getSym("main", ""); ok { if i, ok := c.codeIndex(s); ok { // Internal call is always relative to instruction pointer. diff --git a/codegen/compiler_test.go b/codegen/compiler_test.go index fbe8bb2..5c7e9d3 100644 --- a/codegen/compiler_test.go +++ b/codegen/compiler_test.go @@ -19,7 +19,7 @@ func TestCodeGen(t *testing.T) { c.AddSym(fmt.Println, "println") n := &parser.Node{} var err error - if n.Child, err = golang.GoParser.Parse(test.src); err != nil { + if n.Child, err = golang.GoParser.Parse(test.src, n); err != nil { t.Error(err) } errStr := "" diff --git a/codegen/interpreter.go b/codegen/interpreter.go index a3268d9..18cc5f8 100644 --- a/codegen/interpreter.go +++ b/codegen/interpreter.go @@ -21,7 +21,7 @@ func NewInterpreter(p *parser.Parser) *Interpreter { func (i *Interpreter) Eval(src string) (res any, err error) { n := &parser.Node{} - if n.Child, err = i.Parse(src); err != nil { + if n.Child, err = i.Parse(src, n); err != nil { return res, err } if debug { diff --git a/codegen/interpreter_test.go b/codegen/interpreter_test.go index 1d8a6b5..2563677 100644 --- a/codegen/interpreter_test.go +++ b/codegen/interpreter_test.go @@ -2,7 +2,6 @@ package codegen import ( "fmt" - "log" "testing" "github.com/gnolang/parscan/lang/golang" @@ -25,14 +24,13 @@ func TestEval(t *testing.T) { if res != test.res { t.Errorf("got %#v, want %#v", res, test.res) } - log.Println(r, e) }) } } var evalTests = []struct { name, src, res, err string -}{{ /* #00 */ +}{{ // #00 src: "1 + 2", res: "3", }, { // #01 @@ -42,6 +40,9 @@ var evalTests = []struct { src: "func f(a int) int { return a + 1 }; f(5)", res: "6", }, { // #03 + src: "func f(a int) (b int) { b = a + 1; return b }; f(5)", + res: "6", +}, { // #04 src: "func f(a int) (b int) { b = a + 1; return }; f(5)", res: "6", }} |
