self param replaced as opTerm
This commit is contained in:
+5
-5
@@ -28,29 +28,29 @@ func newMinusSignTerm(tk *Token) (inst *term) {
|
||||
}
|
||||
}
|
||||
|
||||
func evalSign(ctx ExprContext, self *term) (v any, err error) {
|
||||
func evalSign(ctx ExprContext, opTerm *term) (v any, err error) {
|
||||
var rightValue any
|
||||
|
||||
if rightValue, err = self.evalPrefix(ctx); err != nil {
|
||||
if rightValue, err = opTerm.evalPrefix(ctx); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if IsFloat(rightValue) {
|
||||
if self.tk.Sym == SymChangeSign {
|
||||
if opTerm.tk.Sym == SymChangeSign {
|
||||
f, _ := rightValue.(float64)
|
||||
v = -f
|
||||
} else {
|
||||
v = rightValue
|
||||
}
|
||||
} else if IsInteger(rightValue) {
|
||||
if self.tk.Sym == SymChangeSign {
|
||||
if opTerm.tk.Sym == SymChangeSign {
|
||||
i, _ := rightValue.(int64)
|
||||
v = -i
|
||||
} else {
|
||||
v = rightValue
|
||||
}
|
||||
} else {
|
||||
err = self.errIncompatibleType(rightValue)
|
||||
err = opTerm.errIncompatibleType(rightValue)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user