From 649ae829220d6ddd8758d24c3bc2ea7d43e788d6 Mon Sep 17 00:00:00 2001 From: Antonio Navarro Perez Date: Wed, 20 Mar 2024 11:15:48 +0100 Subject: feat: Add simple Dump creation and recovery. Memory Dump functionality that can restore the previous VM state. It dumps *global* variables, the only ones defining the program state. The dump depends on the program itself, and on the index system, which right now is defined by the variable order. Signed-off-by: Antonio Navarro Perez --- parser/interpreter.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'parser/interpreter.go') diff --git a/parser/interpreter.go b/parser/interpreter.go index 3ecbc46..d820416 100644 --- a/parser/interpreter.go +++ b/parser/interpreter.go @@ -1,6 +1,8 @@ package parser import ( + "reflect" + "github.com/mvertes/parscan/scanner" "github.com/mvertes/parscan/vm" ) @@ -16,7 +18,7 @@ func NewInterpreter(s *scanner.Scanner) *Interpreter { return &Interpreter{NewCompiler(s), &vm.Machine{}} } -func (i *Interpreter) Eval(src string) (res any, err error) { +func (i *Interpreter) Eval(src string) (res reflect.Value, err error) { codeOffset := len(i.Code) dataOffset := 0 if codeOffset > 0 { -- cgit v1.2.3