MCPcopy
hub / github.com/expr-lang/expr / Walk

Function Walk

ast/visitor.go:9–79  ·  view source on GitHub ↗
(node *Node, v Visitor)

Source from the content-addressed store, hash-verified

7}
8
9func Walk(node *Node, v Visitor) {
10 if *node == nil {
11 return
12 }
13 switch n := (*node).(type) {
14 case *NilNode:
15 case *IdentifierNode:
16 case *IntegerNode:
17 case *FloatNode:
18 case *BoolNode:
19 case *StringNode:
20 case *BytesNode:
21 case *ConstantNode:
22 case *UnaryNode:
23 Walk(&n.Node, v)
24 case *BinaryNode:
25 Walk(&n.Left, v)
26 Walk(&n.Right, v)
27 case *ChainNode:
28 Walk(&n.Node, v)
29 case *MemberNode:
30 Walk(&n.Node, v)
31 Walk(&n.Property, v)
32 case *SliceNode:
33 Walk(&n.Node, v)
34 if n.From != nil {
35 Walk(&n.From, v)
36 }
37 if n.To != nil {
38 Walk(&n.To, v)
39 }
40 case *CallNode:
41 Walk(&n.Callee, v)
42 for i := range n.Arguments {
43 Walk(&n.Arguments[i], v)
44 }
45 case *BuiltinNode:
46 for i := range n.Arguments {
47 Walk(&n.Arguments[i], v)
48 }
49 case *PredicateNode:
50 Walk(&n.Node, v)
51 case *PointerNode:
52 case *VariableDeclaratorNode:
53 Walk(&n.Value, v)
54 Walk(&n.Expr, v)
55 case *SequenceNode:
56 for i := range n.Nodes {
57 Walk(&n.Nodes[i], v)
58 }
59 case *ConditionalNode:
60 Walk(&n.Cond, v)
61 Walk(&n.Exp1, v)
62 Walk(&n.Exp2, v)
63 case *ArrayNode:
64 for i := range n.Nodes {
65 Walk(&n.Nodes[i], v)
66 }

Callers 6

invalidateTreesFunction · 0.92
runVisitorsMethod · 0.92
TestWalkFunction · 0.92
TestWalk_patchFunction · 0.92
FindFunction · 0.85
OptimizeFunction · 0.85

Calls 2

SprintfMethod · 0.80
VisitMethod · 0.65

Tested by 3

invalidateTreesFunction · 0.74
TestWalkFunction · 0.74
TestWalk_patchFunction · 0.74

Used in the wild real call sites across dependent graphs

searching dependent graphs…