refactored data-types to reduce plugin sizes
This commit is contained in:
+3
-17
@@ -7,6 +7,7 @@ package expr
|
||||
import (
|
||||
"git.portale-stac.it/go-pkg/expr/kern"
|
||||
"git.portale-stac.it/go-pkg/expr/scan"
|
||||
"git.portale-stac.it/go-pkg/expr/types/dict"
|
||||
"git.portale-stac.it/go-pkg/expr/util"
|
||||
)
|
||||
|
||||
@@ -46,22 +47,7 @@ func evalDot(ctx kern.ExprContext, opTerm *scan.Term) (v any, err error) {
|
||||
} else {
|
||||
err = indexTerm.Tk.ErrorExpectedGot("identifier")
|
||||
}
|
||||
case *kern.DictType:
|
||||
// var ok bool
|
||||
// s := opTerm.Children[1].Symbol()
|
||||
// if s == scan.SymVariable || s == scan.SymString {
|
||||
// src := opTerm.Children[1].Source()
|
||||
// if len(src) > 1 && src[0] == '"' && src[len(src)-1] == '"' {
|
||||
// src = src[1 : len(src)-1]
|
||||
// }
|
||||
// if v, ok = unboxedValue.GetItem(src); !ok {
|
||||
// err = opTerm.Errorf("key %q not found", src)
|
||||
// }
|
||||
// } else if rightValue, err = opTerm.Children[1].Compute(ctx); err == nil {
|
||||
// if v, ok = unboxedValue.GetItem(rightValue); !ok {
|
||||
// err = opTerm.Errorf("key %q not found", rightValue)
|
||||
// }
|
||||
// }
|
||||
case *dict.DictType:
|
||||
v, err = dotGetDictItemValue(ctx, unboxedValue, opTerm.Children[1])
|
||||
default:
|
||||
if rightValue, err = opTerm.Children[1].Compute(ctx); err == nil {
|
||||
@@ -71,7 +57,7 @@ func evalDot(ctx kern.ExprContext, opTerm *scan.Term) (v any, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func dotGetDictItemValue(ctx kern.ExprContext, d *kern.DictType, rightTerm *scan.Term) (v any, err error) {
|
||||
func dotGetDictItemValue(ctx kern.ExprContext, d *dict.DictType, rightTerm *scan.Term) (v any, err error) {
|
||||
var ok bool
|
||||
var rightValue any
|
||||
s := rightTerm.Symbol()
|
||||
|
||||
Reference in New Issue
Block a user