Skip to content

Commit f41d4e2

Browse files
committed
feat: reset vm counter on new interpreter
1 parent 357531d commit f41d4e2

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

interpreter.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,23 @@ import (
1414
//go:embed bootstrap.pl
1515
var bootstrap string
1616

17-
// Interpreter is a Prolog interpreter. The zero value is a valid interpreter without any predicates/operators defined.
17+
// Interpreter is a Prolog interpreter.
1818
type Interpreter struct {
1919
engine.VM
2020
loaded map[string]struct{}
2121
}
2222

23+
// NewEmpty creates a new Prolog interpreter without any predicates/operators defined.
24+
func NewEmpty() *Interpreter {
25+
var i Interpreter
26+
i.ResetVariableCounter()
27+
return &i
28+
}
29+
2330
// New creates a new Prolog interpreter with predefined predicates/operators.
2431
func New(in io.Reader, out io.Writer) *Interpreter {
2532
var i Interpreter
33+
i.ResetVariableCounter()
2634
i.FS = defaultFS{}
2735
i.SetUserInput(engine.NewInputTextStream(in))
2836
i.SetUserOutput(engine.NewOutputTextStream(out))

0 commit comments

Comments
 (0)