type NavigableExpr …
func NavigateAST(ast *AST) NavigableExpr { … }
func NavigateExpr(ast *AST, expr Expr) NavigableExpr { … }
type ExprMatcher …
func ConstantValueMatcher() ExprMatcher { … }
func KindMatcher(kind ExprKind) ExprMatcher { … }
func FunctionMatcher(funcName string) ExprMatcher { … }
func AllMatcher() ExprMatcher { … }
func MatchDescendants(expr NavigableExpr, matcher ExprMatcher) []NavigableExpr { … }
func MatchSubset(exprs []NavigableExpr, matcher ExprMatcher) []NavigableExpr { … }
type Visitor …
type baseVisitor …
func (v *baseVisitor) VisitExpr(e Expr) { … }
func (v *baseVisitor) VisitEntryExpr(e EntryExpr) { … }
func NewExprVisitor(v func(Expr)) Visitor { … }
func PostOrderVisit(expr Expr, visitor Visitor) { … }
func PreOrderVisit(expr Expr, visitor Visitor) { … }
type visitOrder …
const preOrder …
const postOrder …
func visit(expr Expr, visitor Visitor, order visitOrder, depth, maxDepth int) { … }
func matchIsConstantValue(e NavigableExpr) bool { … }
func newNavigableExpr(ast *AST, parent NavigableExpr, expr Expr, depth int) NavigableExpr { … }
type navigableExprImpl …
func (nav *navigableExprImpl) Parent() (NavigableExpr, bool) { … }
func (nav *navigableExprImpl) ID() int64 { … }
func (nav *navigableExprImpl) Kind() ExprKind { … }
func (nav *navigableExprImpl) Type() *types.Type { … }
func (nav *navigableExprImpl) Children() []NavigableExpr { … }
func (nav *navigableExprImpl) Depth() int { … }
func (nav *navigableExprImpl) AsCall() CallExpr { … }
func (nav *navigableExprImpl) AsComprehension() ComprehensionExpr { … }
func (nav *navigableExprImpl) AsIdent() string { … }
func (nav *navigableExprImpl) AsList() ListExpr { … }
func (nav *navigableExprImpl) AsLiteral() ref.Val { … }
func (nav *navigableExprImpl) AsMap() MapExpr { … }
func (nav *navigableExprImpl) AsSelect() SelectExpr { … }
func (nav *navigableExprImpl) AsStruct() StructExpr { … }
func (nav *navigableExprImpl) createChild(e Expr) NavigableExpr { … }
func (nav *navigableExprImpl) isExpr() { … }
type navigableCallImpl …
func (call navigableCallImpl) FunctionName() string { … }
func (call navigableCallImpl) IsMemberFunction() bool { … }
func (call navigableCallImpl) Target() Expr { … }
func (call navigableCallImpl) Args() []Expr { … }
type navigableComprehensionImpl …
func (comp navigableComprehensionImpl) IterRange() Expr { … }
func (comp navigableComprehensionImpl) IterVar() string { … }
func (comp navigableComprehensionImpl) AccuVar() string { … }
func (comp navigableComprehensionImpl) AccuInit() Expr { … }
func (comp navigableComprehensionImpl) LoopCondition() Expr { … }
func (comp navigableComprehensionImpl) LoopStep() Expr { … }
func (comp navigableComprehensionImpl) Result() Expr { … }
type navigableListImpl …
func (l navigableListImpl) Elements() []Expr { … }
func (l navigableListImpl) IsOptional(index int32) bool { … }
func (l navigableListImpl) OptionalIndices() []int32 { … }
func (l navigableListImpl) Size() int { … }
type navigableMapImpl …
func (m navigableMapImpl) Entries() []EntryExpr { … }
func (m navigableMapImpl) Size() int { … }
type navigableEntryImpl …
func (e navigableEntryImpl) Kind() EntryExprKind { … }
func (e navigableEntryImpl) Key() Expr { … }
func (e navigableEntryImpl) Value() Expr { … }
func (e navigableEntryImpl) IsOptional() bool { … }
func (e navigableEntryImpl) renumberIDs(IDGenerator) { … }
func (e navigableEntryImpl) isEntryExpr() { … }
type navigableSelectImpl …
func (sel navigableSelectImpl) FieldName() string { … }
func (sel navigableSelectImpl) IsTestOnly() bool { … }
func (sel navigableSelectImpl) Operand() Expr { … }
type navigableStructImpl …
func (s navigableStructImpl) TypeName() string { … }
func (s navigableStructImpl) Fields() []EntryExpr { … }
type navigableFieldImpl …
func (f navigableFieldImpl) Kind() EntryExprKind { … }
func (f navigableFieldImpl) Name() string { … }
func (f navigableFieldImpl) Value() Expr { … }
func (f navigableFieldImpl) IsOptional() bool { … }
func (f navigableFieldImpl) renumberIDs(IDGenerator) { … }
func (f navigableFieldImpl) isEntryExpr() { … }
func getChildFactory(expr Expr) childFactory { … }
type childFactory …
func noopFactory(*navigableExprImpl) []NavigableExpr { … }
func selectFactory(nav *navigableExprImpl) []NavigableExpr { … }
func callArgFactory(nav *navigableExprImpl) []NavigableExpr { … }
func listElemFactory(nav *navigableExprImpl) []NavigableExpr { … }
func structEntryFactory(nav *navigableExprImpl) []NavigableExpr { … }
func mapEntryFactory(nav *navigableExprImpl) []NavigableExpr { … }
func comprehensionFactory(nav *navigableExprImpl) []NavigableExpr { … }