Documentation ¶
Overview ¶
Package common defines types and utilities common to expression parsing, checking, and interpretation
Index ¶
Constants ¶
const ( // SelectAndIdentCost is the cost of an operation that accesses an identifier or performs a select. SelectAndIdentCost = 1 // ConstCost is the cost of an operation that accesses a constant. ConstCost = 0 // ListCreateBaseCost is the base cost of any operation that creates a new list. ListCreateBaseCost = 10 // MapCreateBaseCost is the base cost of any operation that creates a new map. MapCreateBaseCost = 30 // StructCreateBaseCost is the base cost of any operation that creates a new struct. StructCreateBaseCost = 40 // StringTraversalCostFactor is multiplied to a length of a string when computing the cost of traversing the entire // string once. StringTraversalCostFactor = 0.1 // RegexStringLengthCostFactor is multiplied ot the length of a regex string pattern when computing the cost of // applying the regex to a string of unit cost. RegexStringLengthCostFactor = 0.25 )
Variables ¶
var ( // NoLocation is a particular illegal location. NoLocation = &SourceLocation{-1, -1} )
Functions ¶
This section is empty.
Types ¶
type Error ¶
Error type which references an expression id, a location within source, and a message.
func NewError ¶ added in v0.17.3
NewError creates an error associated with an expression id with the given message at the given location.
func (*Error) ToDisplayString ¶
ToDisplayString decorates the error message with the source location.
type Errors ¶
type Errors struct {
// contains filtered or unexported fields
}
Errors type which contains a list of errors observed during parsing.
func (*Errors) Append ¶ added in v0.17.3
Append creates a new Errors object with the current and input errors.
func (*Errors) ReportError ¶
ReportError records an error at a source location.
func (*Errors) ReportErrorAtID ¶ added in v0.17.3
ReportErrorAtID records an error at a source location and expression id.
func (*Errors) ToDisplayString ¶
ToDisplayString returns the error set to a newline delimited string.
type Location ¶
type Location interface { Line() int // 1-based line number within source. Column() int // 0-based column number within source. }
Location interface to represent a location within Source.
type Source ¶
type Source interface { // Content returns the source content represented as a string. // Examples contents are the single file contents, textbox field, // or url parameter. Content() string // Description gives a brief description of the source. // Example descriptions are a file name or ui element. Description() string // LineOffsets gives the character offsets at which lines occur. // The zero-th entry should refer to the break between the first // and second line, or EOF if there is only one line of source. LineOffsets() []int32 // LocationOffset translates a Location to an offset. // Given the line and column of the Location returns the // Location's character offset in the Source, and a bool // indicating whether the Location was found. LocationOffset(location Location) (int32, bool) // OffsetLocation translates a character offset to a Location, or // false if the conversion was not feasible. OffsetLocation(offset int32) (Location, bool) // NewLocation takes an input line and column and produces a Location. // The default behavior is to treat the line and column as absolute, // but concrete derivations may use this method to convert a relative // line and column position into an absolute location. NewLocation(line, col int) Location // Snippet returns a line of content and whether the line was found. Snippet(line int) (string, bool) }
Source interface for filter source contents.
func NewInfoSource ¶
func NewInfoSource(info *exprpb.SourceInfo) Source
NewInfoSource creates a new Source from a SourceInfo.
func NewStringSource ¶
NewStringSource creates a new Source from the given contents and description.
func NewTextSource ¶
NewTextSource creates a new Source from the input text string.
type SourceLocation ¶
type SourceLocation struct {
// contains filtered or unexported fields
}
SourceLocation helper type to manually construct a location.
func (*SourceLocation) Column ¶
func (l *SourceLocation) Column() int
Column returns the 0-based column number of the location.
func (*SourceLocation) Line ¶
func (l *SourceLocation) Line() int
Line returns the 1-based line of the location.
Directories ¶
Path | Synopsis |
---|---|
Package ast declares data structures useful for parsed and checked abstract syntax trees
|
Package ast declares data structures useful for parsed and checked abstract syntax trees |
Package containers defines types and functions for resolving qualified names within a namespace or type provided to CEL.
|
Package containers defines types and functions for resolving qualified names within a namespace or type provided to CEL. |
Package debug provides tools to print a parsed expression graph and adorn each expression element with additional metadata.
|
Package debug provides tools to print a parsed expression graph and adorn each expression element with additional metadata. |
Package decls contains function and variable declaration structs and helper methods.
|
Package decls contains function and variable declaration structs and helper methods. |
Package functions defines the standard builtin functions supported by the interpreter
|
Package functions defines the standard builtin functions supported by the interpreter |
Package operators defines the internal function names of operators.
|
Package operators defines the internal function names of operators. |
Package overloads defines the internal overload identifiers for function and operator overloads.
|
Package overloads defines the internal overload identifiers for function and operator overloads. |
Package runes provides interfaces and utilities for working with runes.
|
Package runes provides interfaces and utilities for working with runes. |
Package stdlib contains all of the standard library function declarations and definitions for CEL.
|
Package stdlib contains all of the standard library function declarations and definitions for CEL. |
Package types contains the types, traits, and utilities common to all components of expression handling.
|
Package types contains the types, traits, and utilities common to all components of expression handling. |
pb
Package pb reflects over protocol buffer descriptors to generate objects that simplify type, enum, and field lookup.
|
Package pb reflects over protocol buffer descriptors to generate objects that simplify type, enum, and field lookup. |
ref
Package ref contains the reference interfaces used throughout the types components.
|
Package ref contains the reference interfaces used throughout the types components. |
traits
Package traits defines interfaces that a type may implement to participate in operator overloads and function dispatch.
|
Package traits defines interfaces that a type may implement to participate in operator overloads and function dispatch. |