package executer import ( "log/slog" "git.maximhutz.com/max/lambda/internal/config" "git.maximhutz.com/max/lambda/pkg/emitter" "git.maximhutz.com/max/lambda/pkg/lambda" ) type Executor struct { Config *config.Config Expression *lambda.Expression emitter.Emitter } func New(config *config.Config, expression *lambda.Expression) *Executor { return &Executor{Config: config, Expression: expression} } func (e Executor) Run() { e.Emit("start") for lambda.ReduceOnce(e.Expression) { e.Emit("step") if e.Config.Verbose { slog.Info("reduction", "tree", lambda.Stringify(*e.Expression)) } } e.Emit("end") }