package operators

import "github.com/google/cel-go/common/operators"

Package operators defines the internal function names of operators.

All operators in the expression language are modelled as function calls.

Index

Constants

const (
	// Symbolic operators.
	Conditional   = "_?_:_"
	LogicalAnd    = "_&&_"
	LogicalOr     = "_||_"
	LogicalNot    = "!_"
	Equals        = "_==_"
	NotEquals     = "_!=_"
	Less          = "_<_"
	LessEquals    = "_<=_"
	Greater       = "_>_"
	GreaterEquals = "_>=_"
	Add           = "_+_"
	Subtract      = "_-_"
	Multiply      = "_*_"
	Divide        = "_/_"
	Modulo        = "_%_"
	Negate        = "-_"
	Index         = "_[_]"
	OptIndex      = "_[?_]"
	OptSelect     = "_?._"

	// Macros, must have a valid identifier.
	Has       = "has"
	All       = "all"
	Exists    = "exists"
	ExistsOne = "exists_one"
	Map       = "map"
	Filter    = "filter"

	// Named operators, must not have be valid identifiers.
	NotStrictlyFalse = "@not_strictly_false"
	In               = "@in"

	// Deprecated: named operators with valid identifiers.
	OldNotStrictlyFalse = "__not_strictly_false__"
	OldIn               = "_in_"
)

String "names" for CEL operators.

Functions

func Arity

func Arity(symbol string) int

Arity returns the number of argument the operator takes -1 is returned if an undefined symbol is provided

func Find

func Find(text string) (string, bool)

Find the internal function name for an operator, if the input text is one.

func FindReverse

func FindReverse(symbol string) (string, bool)

FindReverse returns the unmangled, text representation of the operator.

func FindReverseBinaryOperator

func FindReverseBinaryOperator(symbol string) (string, bool)

FindReverseBinaryOperator returns the unmangled, text representation of a binary operator.

If the symbol does refer to an operator, but the operator does not have a display name the result is false.

func Precedence

func Precedence(symbol string) int

Precedence returns the operator precedence, where the higher the number indicates higher precedence operations.

Source Files

operators.go

Version
v0.25.0 (latest)
Published
Apr 22, 2025
Platform
linux/amd64
Last checked
1 hour ago

Tools for package owners.