From b1e776ee33ec78b7f6c2a0de8109009963dea521 Mon Sep 17 00:00:00 2001 From: xuri Date: Sat, 8 Oct 2022 22:08:06 +0800 Subject: Support to set summary columns to appear to the right of detail in an outline - Simplify calculation engine code - Update documentation for the functions - Update dependencies module --- calc.go | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) (limited to 'calc.go') diff --git a/calc.go b/calc.go index b19dba7..5d55992 100644 --- a/calc.go +++ b/calc.go @@ -1132,7 +1132,7 @@ func calcLe(rOpd, lOpd formulaArg, opdStack *Stack) error { return nil } -// calcG evaluate greater than or equal arithmetic operations. +// calcG evaluate greater than arithmetic operations. func calcG(rOpd, lOpd formulaArg, opdStack *Stack) error { if rOpd.Type == ArgNumber && lOpd.Type == ArgNumber { opdStack.Push(newBoolFormulaArg(lOpd.Number > rOpd.Number)) @@ -1287,28 +1287,28 @@ func calculate(opdStack *Stack, opt efp.Token) error { func (f *File) parseOperatorPrefixToken(optStack, opdStack *Stack, token efp.Token) (err error) { if optStack.Len() == 0 { optStack.Push(token) - } else { - tokenPriority := getPriority(token) - topOpt := optStack.Peek().(efp.Token) - topOptPriority := getPriority(topOpt) - if tokenPriority > topOptPriority { - optStack.Push(token) - } else { - for tokenPriority <= topOptPriority { - optStack.Pop() - if err = calculate(opdStack, topOpt); err != nil { - return - } - if optStack.Len() > 0 { - topOpt = optStack.Peek().(efp.Token) - topOptPriority = getPriority(topOpt) - continue - } - break - } - optStack.Push(token) + return + } + tokenPriority := getPriority(token) + topOpt := optStack.Peek().(efp.Token) + topOptPriority := getPriority(topOpt) + if tokenPriority > topOptPriority { + optStack.Push(token) + return + } + for tokenPriority <= topOptPriority { + optStack.Pop() + if err = calculate(opdStack, topOpt); err != nil { + return + } + if optStack.Len() > 0 { + topOpt = optStack.Peek().(efp.Token) + topOptPriority = getPriority(topOpt) + continue } + break } + optStack.Push(token) return } -- cgit v1.2.1