From 0676cad34d42b4bde398b40f9d94b8ba1f9e4752 Mon Sep 17 00:00:00 2001 From: David Ashby Date: Sat, 20 Feb 2021 19:22:36 -0500 Subject: [PATCH] move int parsing to after word check --- eval.go | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/eval.go b/eval.go index f13c90f..3542758 100644 --- a/eval.go +++ b/eval.go @@ -46,17 +46,10 @@ func (c *Context) Eval(line string) error { ifcheck, _ := c.IfStack.Pick(0) if len(c.IfStack.values) == 0 || (len(c.IfStack.values) > 0 && ifcheck == 1) || w.BranchCheck { - int, err := strconv.Atoi(sword) - if err == nil { - // it was a number! put it on the stack. - c.Stack.Push(int) - word = []byte{} - continue - } - // run word c.RStack.Push(i) - if err = c.Exec(w); err != nil { + err := c.Exec(w) + if err != nil { return err } i, err = c.RStack.Pop() @@ -88,7 +81,13 @@ func (c *Context) Exec(w Word) error { return err } } else { - return fmt.Errorf("unable to parse word %s", w.Name) + it, err := strconv.Atoi(w.Name) + if err == nil { + // it was a number! put it on the stack. + c.Stack.Push(it) + } else { + return fmt.Errorf("unable to parse word %s", w.Name) + } } return nil }