moved a subset of source file to the kern package
This commit is contained in:
+8
-4
@@ -4,6 +4,10 @@
|
||||
// operator-sign.go
|
||||
package expr
|
||||
|
||||
import (
|
||||
"git.portale-stac.it/go-pkg/expr/kern"
|
||||
)
|
||||
|
||||
//-------- plus sign term
|
||||
|
||||
func newPlusSignTerm(tk *Token) (inst *term) {
|
||||
@@ -28,21 +32,21 @@ func newMinusSignTerm(tk *Token) (inst *term) {
|
||||
}
|
||||
}
|
||||
|
||||
func evalSign(ctx ExprContext, opTerm *term) (v any, err error) {
|
||||
func evalSign(ctx kern.ExprContext, opTerm *term) (v any, err error) {
|
||||
var rightValue any
|
||||
|
||||
if rightValue, err = opTerm.evalPrefix(ctx); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if IsFloat(rightValue) {
|
||||
if kern.IsFloat(rightValue) {
|
||||
if opTerm.tk.Sym == SymChangeSign {
|
||||
f, _ := rightValue.(float64)
|
||||
v = -f
|
||||
} else {
|
||||
v = rightValue
|
||||
}
|
||||
} else if IsInteger(rightValue) {
|
||||
} else if kern.IsInteger(rightValue) {
|
||||
if opTerm.tk.Sym == SymChangeSign {
|
||||
i, _ := rightValue.(int64)
|
||||
v = -i
|
||||
@@ -50,7 +54,7 @@ func evalSign(ctx ExprContext, opTerm *term) (v any, err error) {
|
||||
v = rightValue
|
||||
}
|
||||
} else {
|
||||
err = opTerm.errIncompatibleType(rightValue)
|
||||
err = opTerm.errIncompatiblePrefixPostfixType(rightValue)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user