From 851c793da43be9e4d3319afe440d603c85834045 Mon Sep 17 00:00:00 2001 From: Marc Vertes Date: Thu, 31 Aug 2023 17:53:54 +0200 Subject: codegen: fix interpreter re-entrance So multiple successive incremental Evals function correctly. Also improve the following: - Apply the same Eval API to vm0 and vm1 - parser: dot diagram display is now synchronous - codegen: outsource complex code generation for readability - vm1: Pop take the number of values to pop as operand --- parser/dot.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'parser') diff --git a/parser/dot.go b/parser/dot.go index aae5c5f..f486cd5 100644 --- a/parser/dot.go +++ b/parser/dot.go @@ -20,8 +20,11 @@ func (*Parser) Adot(nodes []*Node, c string) { func (n *Node) Dot(c, s string) { dw, cmd := dotWriter(c) n.astDot(dw, s) - if cmd != nil { - cmd.Wait() + if cmd == nil { + return + } + if err := cmd.Wait(); err != nil { + log.Fatal(err) } } -- cgit v1.2.3