From 5bf35f8c1c18eafb2e423ae3b77868bcccc505ff Mon Sep 17 00:00:00 2001 From: jaby Date: Thu, 9 Dec 2021 02:40:11 +0100 Subject: This closes #1088 (#1089) Support check string equality with the string value of a defined name --- calc.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'calc.go') 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 } -- cgit v1.2.1