@@ -10,11 +10,11 @@ import (
1010
1111 "go.xrstf.de/rudi/pkg/coalescing"
1212 "go.xrstf.de/rudi/pkg/deepcopy"
13- "go.xrstf.de/rudi/pkg/eval"
14- "go.xrstf.de/rudi/pkg/eval/functions"
15- "go.xrstf.de/rudi/pkg/eval/types"
1613 "go.xrstf.de/rudi/pkg/lang/ast"
17- "go.xrstf.de/rudi/pkg/pathexpr"
14+ genericpathexpr "go.xrstf.de/rudi/pkg/pathexpr"
15+ "go.xrstf.de/rudi/pkg/runtime/functions"
16+ "go.xrstf.de/rudi/pkg/runtime/pathexpr"
17+ "go.xrstf.de/rudi/pkg/runtime/types"
1818)
1919
2020var (
@@ -45,7 +45,7 @@ func keepContextCanceled(err error) error {
4545
4646func ifFunction (ctx types.Context , test bool , yes ast.Expression ) (any , error ) {
4747 if test {
48- _ , result , err := eval .EvalExpression (ctx , yes )
48+ _ , result , err := ctx . Runtime () .EvalExpression (ctx , yes )
4949 return result , err
5050 }
5151
@@ -54,11 +54,11 @@ func ifFunction(ctx types.Context, test bool, yes ast.Expression) (any, error) {
5454
5555func ifElseFunction (ctx types.Context , test bool , yes , no ast.Expression ) (any , error ) {
5656 if test {
57- _ , result , err := eval .EvalExpression (ctx , yes )
57+ _ , result , err := ctx . Runtime () .EvalExpression (ctx , yes )
5858 return result , err
5959 }
6060
61- _ , result , err := eval .EvalExpression (ctx , no )
61+ _ , result , err := ctx . Runtime () .EvalExpression (ctx , no )
6262 return result , err
6363}
6464
@@ -73,7 +73,7 @@ func DoFunction(ctx types.Context, args ...ast.Expression) (any, error) {
7373 )
7474
7575 for _ , arg := range args {
76- tupleCtx , result , err = eval .EvalExpression (tupleCtx , arg )
76+ tupleCtx , result , err = ctx . Runtime () .EvalExpression (tupleCtx , arg )
7777 if err != nil {
7878 return nil , err
7979 }
@@ -130,18 +130,18 @@ func hasFunction(ctx types.Context, arg ast.Expression) (any, error) {
130130 }
131131
132132 // pre-evaluate the path
133- evaluatedPath , err := eval . EvalPathExpression (ctx , pathExpr )
133+ evaluatedPath , err := pathexpr . Eval (ctx , pathExpr )
134134 if err != nil {
135135 return nil , fmt .Errorf ("invalid path expression: %w" , err )
136136 }
137137
138138 // evaluate the base value
139- _ , value , err := eval .EvalExpression (ctx , expr )
139+ _ , value , err := ctx . Runtime () .EvalExpression (ctx , expr )
140140 if err != nil {
141141 return nil , err
142142 }
143143
144- _ , err = eval . TraverseEvaluatedPathExpression (value , * evaluatedPath )
144+ _ , err = pathexpr . Traverse (value , * evaluatedPath )
145145 if err != nil {
146146 return false , keepContextCanceled (err )
147147 }
@@ -161,7 +161,7 @@ func defaultFunction(ctx types.Context, value any, fallback ast.Expression) (any
161161 return value , nil
162162 }
163163
164- _ , value , err = eval .EvalExpression (ctx , fallback )
164+ _ , value , err = ctx . Runtime () .EvalExpression (ctx , fallback )
165165 if err != nil {
166166 return nil , fmt .Errorf ("argument #1: %w" , err )
167167 }
@@ -170,7 +170,7 @@ func defaultFunction(ctx types.Context, value any, fallback ast.Expression) (any
170170}
171171
172172func tryFunction (ctx types.Context , test ast.Expression ) (any , error ) {
173- _ , result , err := eval .EvalExpression (ctx , test )
173+ _ , result , err := ctx . Runtime () .EvalExpression (ctx , test )
174174 if err != nil {
175175 return nil , keepContextCanceled (err )
176176 }
@@ -179,9 +179,9 @@ func tryFunction(ctx types.Context, test ast.Expression) (any, error) {
179179}
180180
181181func tryWithFallbackFunction (ctx types.Context , test ast.Expression , fallback ast.Expression ) (any , error ) {
182- _ , result , err := eval .EvalExpression (ctx , test )
182+ _ , result , err := ctx . Runtime () .EvalExpression (ctx , test )
183183 if err != nil {
184- _ , result , err = eval .EvalExpression (ctx , fallback )
184+ _ , result , err = ctx . Runtime () .EvalExpression (ctx , fallback )
185185 if err != nil {
186186 return nil , fmt .Errorf ("argument #1: %w" , err )
187187 }
@@ -206,7 +206,7 @@ func setFunction(ctx types.Context, target, value ast.Expression) (any, error) {
206206 }
207207
208208 // discard any context changes within the newValue expression
209- _ , newValue , err := eval .EvalExpression (ctx , value )
209+ _ , newValue , err := ctx . Runtime () .EvalExpression (ctx , value )
210210 if err != nil {
211211 return nil , fmt .Errorf ("argument #1: %w" , err )
212212 }
@@ -236,7 +236,7 @@ func deleteFunction(ctx types.Context, expr ast.Expression) (any, error) {
236236 }
237237
238238 // pre-evaluate the path
239- pathExpr , err := eval . EvalPathExpression (ctx , symbol .PathExpression )
239+ pathExpr , err := pathexpr . Eval (ctx , symbol .PathExpression )
240240 if err != nil {
241241 return nil , fmt .Errorf ("argument #0: invalid path expression: %w" , err )
242242 }
@@ -261,7 +261,7 @@ func deleteFunction(ctx types.Context, expr ast.Expression) (any, error) {
261261 }
262262
263263 // delete the desired path in the value
264- updatedValue , err := pathexpr .Delete (currentValue , pathexpr .FromEvaluatedPath (* pathExpr ))
264+ updatedValue , err := genericpathexpr .Delete (currentValue , genericpathexpr .FromEvaluatedPath (* pathExpr ))
265265 if err != nil {
266266 return nil , fmt .Errorf ("cannot delete %s in %T: %w" , pathExpr , currentValue , err )
267267 }
@@ -285,7 +285,7 @@ func deleteBangHandler(ctx types.Context, originalArgs []ast.Expression, value a
285285 // if the symbol has a path to traverse, do so
286286 if sym .PathExpression != nil {
287287 // pre-evaluate the path expression
288- pathExpr , err := eval . EvalPathExpression (ctx , sym .PathExpression )
288+ pathExpr , err := pathexpr . Eval (ctx , sym .PathExpression )
289289 if err != nil {
290290 return ctx , nil , fmt .Errorf ("argument #0: invalid path expression: %w" , err )
291291 }
@@ -303,7 +303,7 @@ func deleteBangHandler(ctx types.Context, originalArgs []ast.Expression, value a
303303 }
304304
305305 // apply the path expression
306- updatedValue , err = pathexpr .Delete (currentValue , pathexpr .FromEvaluatedPath (* pathExpr ))
306+ updatedValue , err = genericpathexpr .Delete (currentValue , genericpathexpr .FromEvaluatedPath (* pathExpr ))
307307 if err != nil {
308308 return ctx , nil , fmt .Errorf ("cannot set value in %T at %s: %w" , currentValue , pathExpr , err )
309309 }
0 commit comments