(a *ast.AST, plannerOptions []interpreter.PlannerOption)
| 355 | } |
| 356 | |
| 357 | func (p *prog) initInterpretable(a *ast.AST, plannerOptions []interpreter.PlannerOption) (*prog, error) { |
| 358 | // When the AST has been exprAST it contains metadata that can be used to speed up program execution. |
| 359 | interpretable, err := p.interpreter.NewInterpretable(a, plannerOptions...) |
| 360 | if err != nil { |
| 361 | return nil, err |
| 362 | } |
| 363 | p.interpretable = interpretable |
| 364 | if oi, ok := interpretable.(*interpreter.ObservableInterpretable); ok { |
| 365 | p.observable = oi |
| 366 | } |
| 367 | return p, nil |
| 368 | } |
| 369 | |
| 370 | // Eval implements the Program interface method. |
| 371 | func (p *prog) Eval(input any) (out ref.Val, det *EvalDetails, err error) { |
no test coverage detected