From 706ca65800dfab293a0210b56602e1e9f8076fcc Mon Sep 17 00:00:00 2001 From: Marc Vertes Date: Fri, 25 Aug 2023 09:40:52 +0200 Subject: gint: simplify --- vm0/vm.go | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'vm0/vm.go') diff --git a/vm0/vm.go b/vm0/vm.go index 3e589ed..8d0b49e 100644 --- a/vm0/vm.go +++ b/vm0/vm.go @@ -2,11 +2,14 @@ package vm0 import ( "fmt" + "os" "strings" "github.com/gnolang/parscan/parser" ) +const debug = true + type Interp struct { *parser.Parser stack []any // stack memory space @@ -20,14 +23,16 @@ func New(p *parser.Parser) (i *Interp) { return i } -func (i *Interp) Eval(src string) (r []any, err error) { - n, err := i.Parse(src) - if err != nil { - return nil, err +func (i *Interp) Eval(src string) (err error) { + n := &parser.Node{} + if n.Child, err = i.Parse(src); err != nil { + return + } + if debug { + n.Dot(os.Getenv("DOT"), "") } - for _, nod := range n { - r, err = i.Run(nod, "") - if err != nil { + for _, nod := range n.Child { + if _, err = i.Run(nod, ""); err != nil { break } } -- cgit v1.2.3