(a *ast.AST, plannerOptions []interpreter.PlannerOption)
| 292 | } |
| 293 | |
| 294 | func (p *prog) initInterpretable(a *ast.AST, plannerOptions []interpreter.PlannerOption) (*prog, error) { |
| 295 | // When the AST has been exprAST it contains metadata that can be used to speed up program execution. |
| 296 | interpretable, err := p.interpreter.NewInterpretable(a, plannerOptions...) |
| 297 | if err != nil { |
| 298 | return nil, err |
| 299 | } |
| 300 | p.interpretable = interpretable |
| 301 | if oi, ok := interpretable.(*interpreter.ObservableInterpretable); ok { |
| 302 | p.observable = oi |
| 303 | } |
| 304 | return p, nil |
| 305 | } |
| 306 | |
| 307 | // Eval implements the Program interface method. |
| 308 | func (p *prog) Eval(input any) (out ref.Val, det *EvalDetails, err error) { |
no test coverage detected