summaryrefslogtreecommitdiff
path: root/calc.go
diff options
context:
space:
mode:
authorjaby <peter.de.velder@ilias-solutions.com>2021-12-09 02:40:11 +0100
committerGitHub <noreply@github.com>2021-12-09 09:40:11 +0800
commit5bf35f8c1c18eafb2e423ae3b77868bcccc505ff (patch)
tree5ba0b7f7cbd10e2bc66082226d198d4e0c2b4c7b /calc.go
parent44a13aa402b0189b119635d2f0a26961795c6bda (diff)
This closes #1088 (#1089)
Support check string equality with the string value of a defined name
Diffstat (limited to 'calc.go')
-rw-r--r--calc.go8
1 files changed, 6 insertions, 2 deletions
diff --git a/calc.go b/calc.go
index da32f97..e9ac0c8 100644
--- a/calc.go
+++ b/calc.go
@@ -736,6 +736,10 @@ func (f *File) evalInfixExp(sheet, cell string, tokens []efp.Token) (efp.Token,
// current token is args or range, skip next token, order required: parse reference first
if token.TSubType == efp.TokenSubTypeRange {
if !opftStack.Empty() {
+ refTo := f.getDefinedNameRefTo(token.TValue, sheet)
+ if refTo != "" {
+ token.TValue = refTo
+ }
// parse reference: must reference at here
result, err := f.parseReference(sheet, token.TValue)
if err != nil {
@@ -871,13 +875,13 @@ func calcPow(rOpd, lOpd efp.Token, opdStack *Stack) error {
// calcEq evaluate equal arithmetic operations.
func calcEq(rOpd, lOpd efp.Token, opdStack *Stack) error {
- opdStack.Push(efp.Token{TValue: strings.ToUpper(strconv.FormatBool(rOpd == lOpd)), TType: efp.TokenTypeOperand, TSubType: efp.TokenSubTypeNumber})
+ opdStack.Push(efp.Token{TValue: strings.ToUpper(strconv.FormatBool(rOpd.TValue == lOpd.TValue)), TType: efp.TokenTypeOperand, TSubType: efp.TokenSubTypeNumber})
return nil
}
// calcNEq evaluate not equal arithmetic operations.
func calcNEq(rOpd, lOpd efp.Token, opdStack *Stack) error {
- opdStack.Push(efp.Token{TValue: strings.ToUpper(strconv.FormatBool(rOpd != lOpd)), TType: efp.TokenTypeOperand, TSubType: efp.TokenSubTypeNumber})
+ opdStack.Push(efp.Token{TValue: strings.ToUpper(strconv.FormatBool(rOpd.TValue != lOpd.TValue)), TType: efp.TokenTypeOperand, TSubType: efp.TokenSubTypeNumber})
return nil
}