Eval parses, compiles and runs given input.
(input string, env any)
| 267 | |
| 268 | // Eval parses, compiles and runs given input. |
| 269 | func Eval(input string, env any) (any, error) { |
| 270 | if _, ok := env.(Option); ok { |
| 271 | return nil, fmt.Errorf("misused expr.Eval: second argument (env) should be passed without expr.Env") |
| 272 | } |
| 273 | |
| 274 | tree, err := parser.Parse(input) |
| 275 | if err != nil { |
| 276 | return nil, err |
| 277 | } |
| 278 | |
| 279 | program, err := compiler.Compile(tree, nil) |
| 280 | if err != nil { |
| 281 | return nil, err |
| 282 | } |
| 283 | |
| 284 | output, err := Run(program, env) |
| 285 | if err != nil { |
| 286 | return nil, err |
| 287 | } |
| 288 | |
| 289 | return output, nil |
| 290 | } |
searching dependent graphs…