diff --git a/func-import.go b/func-import.go index 54204b6..c9cdb9c 100644 --- a/func-import.go +++ b/func-import.go @@ -35,7 +35,7 @@ func importGeneral(ctx ExprContext, name string, args []any) (result any, err er } func checkStringParamExpected(funcName string, paramValue any, paramPos int) (err error) { - if !(isString(paramValue) /*|| isList(paramValue)*/) { + if !(IsString(paramValue) /*|| isList(paramValue)*/) { err = fmt.Errorf("%s(): param nr %d has wrong type %T, string expected", funcName, paramPos+1, paramValue) } return diff --git a/func-math.go b/func-math.go index f05721b..47dd55e 100644 --- a/func-math.go +++ b/func-math.go @@ -10,7 +10,7 @@ import ( ) func checkNumberParamExpected(funcName string, paramValue any, paramPos, level, subPos int) (err error) { - if !(isNumber(paramValue) || isFraction(paramValue)) /*|| isList(paramValue)*/ { + if !(IsNumber(paramValue) || isFraction(paramValue)) /*|| isList(paramValue)*/ { err = fmt.Errorf("%s(): param nr %d (%d in %d) has wrong type %T, number expected", funcName, paramPos+1, subPos+1, level, paramValue) } @@ -45,7 +45,7 @@ func doAdd(ctx ExprContext, name string, it Iterator, count, level int) (result count++ if !sumAsFloat { - if isFloat(v) { + if IsFloat(v) { sumAsFloat = true if sumAsFract { floatSum = fractSum.toFloat() @@ -120,7 +120,7 @@ func doMul(ctx ExprContext, name string, it Iterator, count, level int) (result count++ if !mulAsFloat { - if isFloat(v) { + if IsFloat(v) { mulAsFloat = true if mulAsFract { floatProd = fractProd.toFloat() diff --git a/operator-builtin.go b/operator-builtin.go index 4c2d5b1..187a9b2 100644 --- a/operator-builtin.go +++ b/operator-builtin.go @@ -26,7 +26,7 @@ func evalBuiltin(ctx ExprContext, self *term) (v any, err error) { } count := 0 - if isString(childValue) { + if IsString(childValue) { module, _ := childValue.(string) count, err = ImportInContextByGlobPattern(ctx, module) } else { diff --git a/operator-fact.go b/operator-fact.go index 27584b6..3f27823 100644 --- a/operator-fact.go +++ b/operator-fact.go @@ -25,7 +25,7 @@ func evalFact(ctx ExprContext, self *term) (v any, err error) { return } - if isInteger(leftValue) { + if IsInteger(leftValue) { if i, _ := leftValue.(int64); i >= 0 { f := int64(1) for k := int64(1); k <= i; k++ { diff --git a/operator-include.go b/operator-include.go index 3db3485..906b643 100644 --- a/operator-include.go +++ b/operator-include.go @@ -24,7 +24,7 @@ func evalInclude(ctx ExprContext, self *term) (v any, err error) { } count := 0 - if isList(childValue) { + if IsList(childValue) { list, _ := childValue.([]any) for i, filePathSpec := range list { if filePath, ok := filePathSpec.(string); ok { @@ -39,7 +39,7 @@ func evalInclude(ctx ExprContext, self *term) (v any, err error) { break } } - } else if isString(childValue) { + } else if IsString(childValue) { filePath, _ := childValue.(string) v, err = EvalFile(ctx, filePath) } else { diff --git a/operator-insert.go b/operator-insert.go index dfe3836..bddf097 100644 --- a/operator-insert.go +++ b/operator-insert.go @@ -33,7 +33,7 @@ func evalInsert(ctx ExprContext, self *term) (v any, err error) { return } - if isList(rightValue) { + if IsList(rightValue) { list, _ := rightValue.(*ListType) newList := append(ListType{leftValue}, *list...) v = &newList @@ -50,7 +50,7 @@ func evalAppend(ctx ExprContext, self *term) (v any, err error) { return } - if isList(leftValue) { + if IsList(leftValue) { list, _ := leftValue.(*ListType) newList := append(*list, rightValue) v = &newList diff --git a/operator-length.go b/operator-length.go index d37d2b3..04c6aad 100644 --- a/operator-length.go +++ b/operator-length.go @@ -23,10 +23,10 @@ func evalLength(ctx ExprContext, self *term) (v any, err error) { return } - if isList(childValue) { + if IsList(childValue) { list, _ := childValue.([]any) v = int64(len(list)) - } else if isString(childValue) { + } else if IsString(childValue) { s, _ := childValue.(string) v = int64(len(s)) } else if it, ok := childValue.(Iterator); ok { diff --git a/operator-post-inc.go b/operator-post-inc.go index 94f87f5..9cf553c 100644 --- a/operator-post-inc.go +++ b/operator-post-inc.go @@ -25,7 +25,7 @@ func evalPostInc(ctx ExprContext, self *term) (v any, err error) { if it, ok := childValue.(Iterator); ok { v, err = it.Next() - } else if isInteger(childValue) && self.children[0].symbol() == SymIdentifier { + } else if IsInteger(childValue) && self.children[0].symbol() == SymIdentifier { v = childValue i, _ := childValue.(int64) ctx.SetVar(self.children[0].source(), i+1) diff --git a/operator-prod.go b/operator-prod.go index 950795a..b4deef4 100644 --- a/operator-prod.go +++ b/operator-prod.go @@ -30,12 +30,12 @@ func evalMultiply(ctx ExprContext, self *term) (v any, err error) { return } - if isString(leftValue) && isInteger(rightValue) { + if IsString(leftValue) && IsInteger(rightValue) { s, _ := leftValue.(string) n, _ := rightValue.(int64) v = strings.Repeat(s, int(n)) } else if isNumOrFract(leftValue) && isNumOrFract(rightValue) { - if isFloat(leftValue) || isFloat(rightValue) { + if IsFloat(leftValue) || IsFloat(rightValue) { v = numAsFloat(leftValue) * numAsFloat(rightValue) } else if isFraction(leftValue) || isFraction(rightValue) { v, err = mulAnyFract(leftValue, rightValue) @@ -72,7 +72,7 @@ func evalDivide(ctx ExprContext, self *term) (v any, err error) { } if isNumOrFract(leftValue) && isNumOrFract(rightValue) { - if isFloat(leftValue) || isFloat(rightValue) { + if IsFloat(leftValue) || IsFloat(rightValue) { d := numAsFloat(rightValue) if d == 0.0 { err = errors.New("division by zero") @@ -148,7 +148,7 @@ func evalReminder(ctx ExprContext, self *term) (v any, err error) { return } - if isInteger(leftValue) && isInteger(rightValue) { + if IsInteger(leftValue) && IsInteger(rightValue) { rightInt, _ := rightValue.(int64) if rightInt == 0 { err = errors.New("division by zero") diff --git a/operator-rel.go b/operator-rel.go index 761df89..1ffef42 100644 --- a/operator-rel.go +++ b/operator-rel.go @@ -25,15 +25,15 @@ func evalEqual(ctx ExprContext, self *term) (v any, err error) { return } - if isNumber(leftValue) && isNumber(rightValue) { - if isInteger(leftValue) && isInteger(rightValue) { + if IsNumber(leftValue) && IsNumber(rightValue) { + if IsInteger(leftValue) && IsInteger(rightValue) { li, _ := leftValue.(int64) ri, _ := rightValue.(int64) v = li == ri } else { v = numAsFloat(leftValue) == numAsFloat(rightValue) } - } else if isString(leftValue) && isString(rightValue) { + } else if IsString(leftValue) && IsString(rightValue) { ls, _ := leftValue.(string) rs, _ := rightValue.(string) v = ls == rs @@ -111,15 +111,15 @@ func evalLess(ctx ExprContext, self *term) (v any, err error) { return } - if isNumber(leftValue) && isNumber(rightValue) { - if isInteger(leftValue) && isInteger(rightValue) { + if IsNumber(leftValue) && IsNumber(rightValue) { + if IsInteger(leftValue) && IsInteger(rightValue) { li, _ := leftValue.(int64) ri, _ := rightValue.(int64) v = li < ri } else { v = numAsFloat(leftValue) < numAsFloat(rightValue) } - } else if isString(leftValue) && isString(rightValue) { + } else if IsString(leftValue) && IsString(rightValue) { ls, _ := leftValue.(string) rs, _ := rightValue.(string) v = ls < rs @@ -148,15 +148,15 @@ func evalLessEqual(ctx ExprContext, self *term) (v any, err error) { return } - if isNumber(leftValue) && isNumber(rightValue) { - if isInteger(leftValue) && isInteger(rightValue) { + if IsNumber(leftValue) && IsNumber(rightValue) { + if IsInteger(leftValue) && IsInteger(rightValue) { li, _ := leftValue.(int64) ri, _ := rightValue.(int64) v = li <= ri } else { v = numAsFloat(leftValue) <= numAsFloat(rightValue) } - } else if isString(leftValue) && isString(rightValue) { + } else if IsString(leftValue) && IsString(rightValue) { ls, _ := leftValue.(string) rs, _ := rightValue.(string) v = ls <= rs diff --git a/operator-sign.go b/operator-sign.go index d6a2ab1..768025b 100644 --- a/operator-sign.go +++ b/operator-sign.go @@ -35,14 +35,14 @@ func evalSign(ctx ExprContext, self *term) (v any, err error) { return } - if isFloat(rightValue) { + if IsFloat(rightValue) { if self.tk.Sym == SymChangeSign { f, _ := rightValue.(float64) v = -f } else { v = rightValue } - } else if isInteger(rightValue) { + } else if IsInteger(rightValue) { if self.tk.Sym == SymChangeSign { i, _ := rightValue.(int64) v = -i diff --git a/operator-sum.go b/operator-sum.go index 843a413..1c816e9 100644 --- a/operator-sum.go +++ b/operator-sum.go @@ -28,17 +28,17 @@ func evalPlus(ctx ExprContext, self *term) (v any, err error) { return } - if (isString(leftValue) && isNumberString(rightValue)) || (isString(rightValue) && isNumberString(leftValue)) { + if (IsString(leftValue) && isNumberString(rightValue)) || (IsString(rightValue) && isNumberString(leftValue)) { v = fmt.Sprintf("%v%v", leftValue, rightValue) - } else if isNumber(leftValue) && isNumber(rightValue) { - if isFloat(leftValue) || isFloat(rightValue) { + } else if IsNumber(leftValue) && IsNumber(rightValue) { + if IsFloat(leftValue) || IsFloat(rightValue) { v = numAsFloat(leftValue) + numAsFloat(rightValue) } else { leftInt, _ := leftValue.(int64) rightInt, _ := rightValue.(int64) v = leftInt + rightInt } - } else if isList(leftValue) || isList(rightValue) { + } else if IsList(leftValue) || IsList(rightValue) { var leftList, rightList *ListType var ok bool if leftList, ok = leftValue.(*ListType); !ok { @@ -56,7 +56,7 @@ func evalPlus(ctx ExprContext, self *term) (v any, err error) { } v = &sumList } else if isFraction(leftValue) || isFraction(rightValue) { - if isFloat(leftValue) || isFloat(rightValue) { + if IsFloat(leftValue) || IsFloat(rightValue) { v = numAsFloat(leftValue) + numAsFloat(rightValue) } else { v, err = sumAnyFract(leftValue, rightValue) @@ -87,7 +87,7 @@ func evalMinus(ctx ExprContext, self *term) (v any, err error) { } if isNumOrFract(leftValue) && isNumOrFract(rightValue) { - if isFloat(leftValue) || isFloat(rightValue) { + if IsFloat(leftValue) || IsFloat(rightValue) { v = numAsFloat(leftValue) - numAsFloat(rightValue) } else if isFraction(leftValue) || isFraction(rightValue) { v, err = subAnyFract(leftValue, rightValue) @@ -96,7 +96,7 @@ func evalMinus(ctx ExprContext, self *term) (v any, err error) { rightInt, _ := rightValue.(int64) v = leftInt - rightInt } - } else if isList(leftValue) && isList(rightValue) { + } else if IsList(leftValue) && IsList(rightValue) { leftList, _ := leftValue.(*ListType) rightList, _ := rightValue.(*ListType) diffList := make(ListType, 0, len(*leftList)-len(*rightList)) diff --git a/utils.go b/utils.go index a0f6851..56ca6e3 100644 --- a/utils.go +++ b/utils.go @@ -9,41 +9,41 @@ import ( "reflect" ) -func isString(v any) (ok bool) { +func IsString(v any) (ok bool) { _, ok = v.(string) return ok } -func isInteger(v any) (ok bool) { +func IsInteger(v any) (ok bool) { _, ok = v.(int64) return ok } -func isFloat(v any) (ok bool) { +func IsFloat(v any) (ok bool) { _, ok = v.(float64) return ok } -func isList(v any) (ok bool) { +func IsList(v any) (ok bool) { _, ok = v.(*ListType) return ok } -func isDict(v any) (ok bool) { +func IsDict(v any) (ok bool) { _, ok = v.(map[any]any) return ok } -func isNumber(v any) (ok bool) { - return isFloat(v) || isInteger(v) +func IsNumber(v any) (ok bool) { + return IsFloat(v) || IsInteger(v) } func isNumOrFract(v any) (ok bool) { - return isFloat(v) || isInteger(v) || isFraction(v) + return IsFloat(v) || IsInteger(v) || isFraction(v) } func isNumberString(v any) (ok bool) { - return isString(v) || isNumber(v) + return IsString(v) || IsNumber(v) } func isFunctor(v any) (ok bool) {