(a *ast.AST, plannerOptions []interpreter.PlannerOption)
| 338 | } |
| 339 | |
| 340 | func (p *prog) initInterpretable(a *ast.AST, plannerOptions []interpreter.PlannerOption) (*prog, error) { |
| 341 | // When the AST has been exprAST it contains metadata that can be used to speed up program execution. |
| 342 | interpretable, err := p.interpreter.NewInterpretable(a, plannerOptions...) |
| 343 | if err != nil { |
| 344 | return nil, err |
| 345 | } |
| 346 | p.interpretable = interpretable |
| 347 | if oi, ok := interpretable.(*interpreter.ObservableInterpretable); ok { |
| 348 | p.observable = oi |
| 349 | } |
| 350 | return p, nil |
| 351 | } |
| 352 | |
| 353 | // Eval implements the Program interface method. |
| 354 | func (p *prog) Eval(input any) (out ref.Val, det *EvalDetails, err error) { |
no test coverage detected