diff --git a/ucl/inst.go b/ucl/inst.go index 7493338..65f0c90 100644 --- a/ucl/inst.go +++ b/ucl/inst.go @@ -73,6 +73,9 @@ func (inst *Inst) Out() io.Writer { func (inst *Inst) Eval(ctx context.Context, expr string) (any, error) { res, err := inst.eval(ctx, expr) if err != nil { + if errors.Is(err, ErrHalt) { + return nil, nil + } return nil, err } diff --git a/ucl/objs.go b/ucl/objs.go index 47bd7cb..bfa3081 100644 --- a/ucl/objs.go +++ b/ucl/objs.go @@ -465,3 +465,5 @@ type errReturn struct { func (e errReturn) Error() string { return "return" } + +var ErrHalt = errors.New("halt")