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

Method balancedTree

parser/helper.go:309–326  ·  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

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

Callers 1

toExprMethod · 0.95

Calls 1

NewCallMethod · 0.65

Tested by

no test coverage detected