Skip to content

Commit 459e315

Browse files
committed
add comment for hasOpenBracket, rename sop to stackTopOp
1 parent 57b0d1f commit 459e315

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

modules/templates/eval/eval.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ func toOp(v any) (operator, error) {
148148
}
149149

150150
func (op operator) hasOpenBracket() bool {
151-
return strings.HasSuffix(string(op), "(")
151+
return strings.HasSuffix(string(op), "(") // it's used to support functions like "sum("
152152
}
153153

154154
func (op operator) isComma() bool {
@@ -227,28 +227,28 @@ func (e *Eval) Exec(tokens ...any) (ret Num, err error) {
227227
case op.hasOpenBracket():
228228
e.stackOp.push(op)
229229
case op.isCloseBracket(), op.isComma():
230-
var sop operator
230+
var stackTopOp operator
231231
for {
232-
sop = e.stackOp.peek()
233-
if sop.hasOpenBracket() || sop.isComma() {
232+
stackTopOp = e.stackOp.peek()
233+
if stackTopOp.hasOpenBracket() || stackTopOp.isComma() {
234234
break
235235
}
236236
e.applyOp()
237237
}
238238
if op.isCloseBracket() {
239239
nums := []Num{e.stackNum.pop()}
240240
for !e.stackOp.peek().hasOpenBracket() {
241-
sop = e.stackOp.pop()
242-
if !sop.isComma() {
241+
stackTopOp = e.stackOp.pop()
242+
if !stackTopOp.isComma() {
243243
return Num{}, ExprError{"bracket doesn't match", tokens, nil}
244244
}
245245
nums = append(nums, e.stackNum.pop())
246246
}
247247
for i, j := 0, len(nums)-1; i < j; i, j = i+1, j-1 {
248248
nums[i], nums[j] = nums[j], nums[i] // reverse nums slice, to get the right order for arguments
249249
}
250-
sop = e.stackOp.pop()
251-
fn := string(sop[:len(sop)-1])
250+
stackTopOp = e.stackOp.pop()
251+
fn := string(stackTopOp[:len(stackTopOp)-1])
252252
if fn == "" {
253253
if len(nums) != 1 {
254254
return Num{}, ExprError{"too many values in one bracket", tokens, nil}
@@ -264,8 +264,8 @@ func (e *Eval) Exec(tokens ...any) (ret Num, err error) {
264264
}
265265
default:
266266
for len(e.stackOp.elems) > 0 && len(e.stackNum.elems) > 0 {
267-
sop := e.stackOp.peek()
268-
if sop.isComma() || precedence(sop, op) < 0 {
267+
stackTopOp := e.stackOp.peek()
268+
if stackTopOp.isComma() || precedence(stackTopOp, op) < 0 {
269269
break
270270
}
271271
e.applyOp()

0 commit comments

Comments
 (0)