summaryrefslogtreecommitdiff
path: root/codegen
diff options
context:
space:
mode:
Diffstat (limited to 'codegen')
-rw-r--r--codegen/compiler.go1
-rw-r--r--codegen/compiler_test.go2
-rw-r--r--codegen/interpreter.go2
-rw-r--r--codegen/interpreter_test.go7
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",
}}