diff options
Diffstat (limited to 'parser/interpreter.go')
| -rw-r--r-- | parser/interpreter.go | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/parser/interpreter.go b/parser/interpreter.go index d820416..e6ac95c 100644 --- a/parser/interpreter.go +++ b/parser/interpreter.go @@ -9,15 +9,18 @@ import ( const debug = true +// Interpreter represents the state of an interpreter. type Interpreter struct { *Compiler *vm.Machine } +// NewInterpreter returns a new interpreter state. func NewInterpreter(s *scanner.Scanner) *Interpreter { return &Interpreter{NewCompiler(s), &vm.Machine{}} } +// Eval interprets a src program and return the last produced value if any, or an error. func (i *Interpreter) Eval(src string) (res reflect.Value, err error) { codeOffset := len(i.Code) dataOffset := 0 |
