summaryrefslogtreecommitdiff
path: root/parser
diff options
context:
space:
mode:
authorMarc Vertes <mvertes@free.fr>2023-08-31 17:53:54 +0200
committerMarc Vertes <mvertes@free.fr>2023-08-31 17:53:54 +0200
commit851c793da43be9e4d3319afe440d603c85834045 (patch)
treefd4b3d3812f5743213b5849858c459c8196dbf7f /parser
parent0f4bfe6e70263fbeb580014b62632f403b29b414 (diff)
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
Diffstat (limited to 'parser')
-rw-r--r--parser/dot.go7
1 files changed, 5 insertions, 2 deletions
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)
}
}