MCPcopy Create free account
hub / github.com/cel-expr/cel-go / balancedTree

Method balancedTree

parser/helper.go:305–322  ·  view source on GitHub ↗

balancedTree recursively balances the terms provided to a commutative operator.

(lo, hi int)

Source from the content-addressed store, hash-verified

303
304// balancedTree recursively balances the terms provided to a commutative operator.
305func (l *logicManager) balancedTree(lo, hi int) ast.Expr {
306 mid := (lo + hi + 1) / 2
307
308 var left ast.Expr
309 if mid == lo {
310 left = l.terms[mid]
311 } else {
312 left = l.balancedTree(lo, mid-1)
313 }
314
315 var right ast.Expr
316 if mid == hi {
317 right = l.terms[mid+1]
318 } else {
319 right = l.balancedTree(mid+1, hi)
320 }
321 return l.exprFactory.NewCall(l.ops[mid], l.function, left, right)
322}
323
324type exprHelper struct {
325 *parserHelper

Callers 1

toExprMethod · 0.95

Calls 1

NewCallMethod · 0.65

Tested by

no test coverage detected