From f40a1c23467eef36f53635e525f8b25f591e8a45 Mon Sep 17 00:00:00 2001 From: Marc Vertes Date: Sat, 29 Nov 2025 19:46:34 +0100 Subject: chore: shorter name for packages, simpilfy vm values --- interp/dump_test.go | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 interp/dump_test.go (limited to 'interp/dump_test.go') diff --git a/interp/dump_test.go b/interp/dump_test.go new file mode 100644 index 0000000..fbaa778 --- /dev/null +++ b/interp/dump_test.go @@ -0,0 +1,49 @@ +package interp_test + +import ( + "testing" + + "github.com/mvertes/parscan/interp" + "github.com/mvertes/parscan/lang/golang" +) + +func TestDump(t *testing.T) { + initProgram := "var a int = 2+1; a" + intp := interp.NewInterpreter(golang.GoSpec) + r, e := intp.Eval(initProgram) + t.Log(r, e) + if e != nil { + t.Fatal(e) + } + + r, e = intp.Eval("a = 100") + t.Log(r, e) + if e != nil { + t.Fatal(e) + } + + d := intp.Dump() + t.Log(d) + + intp = interp.NewInterpreter(golang.GoSpec) + r, e = intp.Eval(initProgram) + t.Log(r, e) + if e != nil { + t.Fatal(e) + } + + e = intp.ApplyDump(d) + if e != nil { + t.Fatal(e) + } + + r, e = intp.Eval("a = a + 1;a") + t.Log(r, e) + if e != nil { + t.Fatal(e) + } + + if r.Interface() != int(101) { + t.Fatalf("unexpected result: %v", r) + } +} -- cgit v1.2.3