walker: leave node event

This commit is contained in:
vadim 2017-12-28 13:36:27 +02:00
parent 79d3bb1674
commit 722fa00fa3
154 changed files with 691 additions and 398 deletions

View File

@ -10,13 +10,13 @@ type dumper struct {
indent string indent string
} }
func (d dumper) Visit(n node.Node) bool { func (d dumper) EnterNode(n node.Node) bool {
fmt.Printf("%v[%v]:\n", d.indent, n.Name()) fmt.Printf("%v[%v]:\n", d.indent, n.Name())
return true return true
} }
func (d dumper) Children(key string) node.Visitor { func (d dumper) GetChildrenVisitor(key string) node.Visitor {
fmt.Printf("%v%v:\n", d.indent+". ", key) fmt.Printf("%v%v:\n", d.indent+". ", key)
return dumper{d.indent + ". . "} return dumper{d.indent + ". . "}
} }
@ -24,3 +24,7 @@ func (d dumper) Children(key string) node.Visitor {
func (d dumper) Scalar(key string, value interface{}) { func (d dumper) Scalar(key string, value interface{}) {
fmt.Printf("%v%v: %v\n", d.indent+". ", key, value) fmt.Printf("%v%v: %v\n", d.indent+". ", key, value)
} }
func (d dumper) LeaveNode(n node.Node) {
// do nothing
}

View File

@ -19,12 +19,14 @@ func NewArgument(expression Node, variadic bool) Node {
} }
func (n Argument) Walk(v Visitor) { func (n Argument) Walk(v Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -26,14 +26,16 @@ func NewArray(opentToken token.Token, closeToken token.Token, items []node.Node)
} }
func (n Array) Walk(v node.Visitor) { func (n Array) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.items != nil { if n.items != nil {
vv := v.Children("items") vv := v.GetChildrenVisitor("items")
for _, nn := range n.items { for _, nn := range n.items {
nn.Walk(vv) nn.Walk(vv)
} }
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewArrayDimFetch(variable node.Node, dim node.Node) node.Node {
} }
func (n ArrayDimFetch) Walk(v node.Visitor) { func (n ArrayDimFetch) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
if n.dim != nil { if n.dim != nil {
vv := v.Children("dim") vv := v.GetChildrenVisitor("dim")
n.dim.Walk(vv) n.dim.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -25,17 +25,19 @@ func NewArrayItem(key node.Node, val node.Node, byRef bool) node.Node {
} }
func (n ArrayItem) Walk(v node.Visitor) { func (n ArrayItem) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.key != nil { if n.key != nil {
vv := v.Children("key") vv := v.GetChildrenVisitor("key")
n.key.Walk(vv) n.key.Walk(vv)
} }
if n.val != nil { if n.val != nil {
vv := v.Children("val") vv := v.GetChildrenVisitor("val")
n.val.Walk(vv) n.val.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewAssign(variable node.Node, expression node.Node) node.Node {
} }
func (n Assign) Walk(v node.Visitor) { func (n Assign) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
if n.expression != nil { if n.expression != nil {
vv := v.Children("expression") vv := v.GetChildrenVisitor("expression")
n.expression.Walk(vv) n.expression.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewAssignRef(variable node.Node, expression node.Node) node.Node {
} }
func (n AssignRef) Walk(v node.Visitor) { func (n AssignRef) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
if n.expression != nil { if n.expression != nil {
vv := v.Children("expression") vv := v.GetChildrenVisitor("expression")
n.expression.Walk(vv) n.expression.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewBitwiseAnd(variable node.Node, expression node.Node) node.Node {
} }
func (n BitwiseAnd) Walk(v node.Visitor) { func (n BitwiseAnd) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
if n.expression != nil { if n.expression != nil {
vv := v.Children("expression") vv := v.GetChildrenVisitor("expression")
n.expression.Walk(vv) n.expression.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewBitwiseOr(variable node.Node, expression node.Node) node.Node {
} }
func (n BitwiseOr) Walk(v node.Visitor) { func (n BitwiseOr) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
if n.expression != nil { if n.expression != nil {
vv := v.Children("expression") vv := v.GetChildrenVisitor("expression")
n.expression.Walk(vv) n.expression.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func (n BitwiseXor) Name() string {
} }
func (n BitwiseXor) Walk(v node.Visitor) { func (n BitwiseXor) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
if n.expression != nil { if n.expression != nil {
vv := v.Children("expression") vv := v.GetChildrenVisitor("expression")
n.expression.Walk(vv) n.expression.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewConcat(variable node.Node, expression node.Node) node.Node {
} }
func (n Concat) Walk(v node.Visitor) { func (n Concat) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
if n.expression != nil { if n.expression != nil {
vv := v.Children("expression") vv := v.GetChildrenVisitor("expression")
n.expression.Walk(vv) n.expression.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewDiv(variable node.Node, expression node.Node) node.Node {
} }
func (n Div) Walk(v node.Visitor) { func (n Div) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
if n.expression != nil { if n.expression != nil {
vv := v.Children("expression") vv := v.GetChildrenVisitor("expression")
n.expression.Walk(vv) n.expression.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewMinus(variable node.Node, expression node.Node) node.Node {
} }
func (n Minus) Walk(v node.Visitor) { func (n Minus) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
if n.expression != nil { if n.expression != nil {
vv := v.Children("expression") vv := v.GetChildrenVisitor("expression")
n.expression.Walk(vv) n.expression.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewMod(variable node.Node, expression node.Node) node.Node {
} }
func (n Mod) Walk(v node.Visitor) { func (n Mod) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
if n.expression != nil { if n.expression != nil {
vv := v.Children("expression") vv := v.GetChildrenVisitor("expression")
n.expression.Walk(vv) n.expression.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewMul(variable node.Node, expression node.Node) node.Node {
} }
func (n Mul) Walk(v node.Visitor) { func (n Mul) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
if n.expression != nil { if n.expression != nil {
vv := v.Children("expression") vv := v.GetChildrenVisitor("expression")
n.expression.Walk(vv) n.expression.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewPlus(variable node.Node, expression node.Node) node.Node {
} }
func (n Plus) Walk(v node.Visitor) { func (n Plus) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
if n.expression != nil { if n.expression != nil {
vv := v.Children("expression") vv := v.GetChildrenVisitor("expression")
n.expression.Walk(vv) n.expression.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewPow(variable node.Node, expression node.Node) node.Node {
} }
func (n Pow) Walk(v node.Visitor) { func (n Pow) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
if n.expression != nil { if n.expression != nil {
vv := v.Children("expression") vv := v.GetChildrenVisitor("expression")
n.expression.Walk(vv) n.expression.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewShiftLeft(variable node.Node, expression node.Node) node.Node {
} }
func (n ShiftLeft) Walk(v node.Visitor) { func (n ShiftLeft) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
if n.expression != nil { if n.expression != nil {
vv := v.Children("expression") vv := v.GetChildrenVisitor("expression")
n.expression.Walk(vv) n.expression.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewShiftRight(variable node.Node, expression node.Node) node.Node {
} }
func (n ShiftRight) Walk(v node.Visitor) { func (n ShiftRight) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
if n.expression != nil { if n.expression != nil {
vv := v.Children("expression") vv := v.GetChildrenVisitor("expression")
n.expression.Walk(vv) n.expression.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewBitwiseAnd(variable node.Node, expression node.Node) node.Node {
} }
func (n BitwiseAnd) Walk(v node.Visitor) { func (n BitwiseAnd) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func (n BitwiseOr) Name() string {
} }
func (n BitwiseOr) Walk(v node.Visitor) { func (n BitwiseOr) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func (n BitwiseXor) Name() string {
} }
func (n BitwiseXor) Walk(v node.Visitor) { func (n BitwiseXor) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewBooleanAnd(variable node.Node, expression node.Node) node.Node {
} }
func (n BooleanAnd) Walk(v node.Visitor) { func (n BooleanAnd) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewBooleanOr(variable node.Node, expression node.Node) node.Node {
} }
func (n BooleanOr) Walk(v node.Visitor) { func (n BooleanOr) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewCoalesce(variable node.Node, expression node.Node) node.Node {
} }
func (n Coalesce) Walk(v node.Visitor) { func (n Coalesce) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewConcat(variable node.Node, expression node.Node) node.Node {
} }
func (n Concat) Walk(v node.Visitor) { func (n Concat) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewDiv(variable node.Node, expression node.Node) node.Node {
} }
func (n Div) Walk(v node.Visitor) { func (n Div) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewEqual(variable node.Node, expression node.Node) node.Node {
} }
func (n Equal) Walk(v node.Visitor) { func (n Equal) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewGreater(variable node.Node, expression node.Node) node.Node {
} }
func (n Greater) Walk(v node.Visitor) { func (n Greater) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewGreaterOrEqual(variable node.Node, expression node.Node) node.Node {
} }
func (n GreaterOrEqual) Walk(v node.Visitor) { func (n GreaterOrEqual) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewIdentical(variable node.Node, expression node.Node) node.Node {
} }
func (n Identical) Walk(v node.Visitor) { func (n Identical) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewLogicalAnd(variable node.Node, expression node.Node) node.Node {
} }
func (n LogicalAnd) Walk(v node.Visitor) { func (n LogicalAnd) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewLogicalOr(variable node.Node, expression node.Node) node.Node {
} }
func (n LogicalOr) Walk(v node.Visitor) { func (n LogicalOr) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewLogicalXor(variable node.Node, expression node.Node) node.Node {
} }
func (n LogicalXor) Walk(v node.Visitor) { func (n LogicalXor) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewMinus(variable node.Node, expression node.Node) node.Node {
} }
func (n Minus) Walk(v node.Visitor) { func (n Minus) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewMod(variable node.Node, expression node.Node) node.Node {
} }
func (n Mod) Walk(v node.Visitor) { func (n Mod) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewMul(variable node.Node, expression node.Node) node.Node {
} }
func (n Mul) Walk(v node.Visitor) { func (n Mul) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewNotEqual(variable node.Node, expression node.Node) node.Node {
} }
func (n NotEqual) Walk(v node.Visitor) { func (n NotEqual) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewNotIdentical(variable node.Node, expression node.Node) node.Node {
} }
func (n NotIdentical) Walk(v node.Visitor) { func (n NotIdentical) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewPlus(variable node.Node, expression node.Node) node.Node {
} }
func (n Plus) Walk(v node.Visitor) { func (n Plus) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewPow(variable node.Node, expression node.Node) node.Node {
} }
func (n Pow) Walk(v node.Visitor) { func (n Pow) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewShiftLeft(variable node.Node, expression node.Node) node.Node {
} }
func (n ShiftLeft) Walk(v node.Visitor) { func (n ShiftLeft) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewShiftRight(variable node.Node, expression node.Node) node.Node {
} }
func (n ShiftRight) Walk(v node.Visitor) { func (n ShiftRight) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewSmaller(variable node.Node, expression node.Node) node.Node {
} }
func (n Smaller) Walk(v node.Visitor) { func (n Smaller) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewSmallerOrEqual(variable node.Node, expression node.Node) node.Node {
} }
func (n SmallerOrEqual) Walk(v node.Visitor) { func (n SmallerOrEqual) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewSpaceship(variable node.Node, expression node.Node) node.Node {
} }
func (n Spaceship) Walk(v node.Visitor) { func (n Spaceship) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.left != nil { if n.left != nil {
vv := v.Children("left") vv := v.GetChildrenVisitor("left")
n.left.Walk(vv) n.left.Walk(vv)
} }
if n.right != nil { if n.right != nil {
vv := v.Children("right") vv := v.GetChildrenVisitor("right")
n.right.Walk(vv) n.right.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -21,12 +21,14 @@ func NewBitwiseNot(expression node.Node) node.Node {
} }
func (n BitwiseNot) Walk(v node.Visitor) { func (n BitwiseNot) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -21,12 +21,14 @@ func NewBooleanNot(expression node.Node) node.Node {
} }
func (n BooleanNot) Walk(v node.Visitor) { func (n BooleanNot) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -22,12 +22,14 @@ func NewCastArray(expr node.Node) node.Node {
} }
func (n CastArray) Walk(v node.Visitor) { func (n CastArray) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -22,12 +22,14 @@ func NewCastBool(expr node.Node) node.Node {
} }
func (n CastBool) Walk(v node.Visitor) { func (n CastBool) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -22,12 +22,14 @@ func NewCastDouble(expr node.Node) node.Node {
} }
func (n CastDouble) Walk(v node.Visitor) { func (n CastDouble) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -22,12 +22,14 @@ func NewCastInt(expr node.Node) node.Node {
} }
func (n CastInt) Walk(v node.Visitor) { func (n CastInt) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -22,12 +22,14 @@ func NewCastObject(expr node.Node) node.Node {
} }
func (n CastObject) Walk(v node.Visitor) { func (n CastObject) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -22,12 +22,14 @@ func NewCastString(expr node.Node) node.Node {
} }
func (n CastString) Walk(v node.Visitor) { func (n CastString) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -22,12 +22,14 @@ func NewCastUnset(expr node.Node) node.Node {
} }
func (n CastUnset) Walk(v node.Visitor) { func (n CastUnset) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -25,14 +25,16 @@ func NewClassConstFetch(class node.Node, constant token.Token) node.Node {
} }
func (n ClassConstFetch) Walk(v node.Visitor) { func (n ClassConstFetch) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
v.Scalar("constant", n.constant.Value) v.Scalar("constant", n.constant.Value)
if n.class != nil { if n.class != nil {
vv := v.Children("class") vv := v.GetChildrenVisitor("class")
n.class.Walk(vv) n.class.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -21,12 +21,14 @@ func NewClone(expression node.Node) node.Node {
} }
func (n Clone) Walk(v node.Visitor) { func (n Clone) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -31,7 +31,7 @@ func NewClosure(params []node.Node, uses []node.Node, returnType node.Node, stmt
} }
func (n Closure) Walk(v node.Visitor) { func (n Closure) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
@ -39,28 +39,30 @@ func (n Closure) Walk(v node.Visitor) {
v.Scalar("isReturnRef", n.isReturnRef) v.Scalar("isReturnRef", n.isReturnRef)
if n.params != nil { if n.params != nil {
vv := v.Children("params") vv := v.GetChildrenVisitor("params")
for _, nn := range n.params { for _, nn := range n.params {
nn.Walk(vv) nn.Walk(vv)
} }
} }
if n.uses != nil { if n.uses != nil {
vv := v.Children("uses") vv := v.GetChildrenVisitor("uses")
for _, nn := range n.uses { for _, nn := range n.uses {
nn.Walk(vv) nn.Walk(vv)
} }
} }
if n.returnType != nil { if n.returnType != nil {
vv := v.Children("returnType") vv := v.GetChildrenVisitor("returnType")
n.returnType.Walk(vv) n.returnType.Walk(vv)
} }
if n.stmts != nil { if n.stmts != nil {
vv := v.Children("stmts") vv := v.GetChildrenVisitor("stmts")
for _, nn := range n.stmts { for _, nn := range n.stmts {
nn.Walk(vv) nn.Walk(vv)
} }
} }
v.LeaveNode(n)
} }

View File

@ -23,14 +23,16 @@ func NewClusureUse(variable node.Node, byRef bool) node.Node {
} }
func (n ClusureUse) Walk(v node.Visitor) { func (n ClusureUse) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
v.Scalar("byRef", n.byRef) v.Scalar("byRef", n.byRef)
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -21,12 +21,14 @@ func NewConstFetch(constant node.Node) node.Node {
} }
func (n ConstFetch) Walk(v node.Visitor) { func (n ConstFetch) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.constant != nil { if n.constant != nil {
vv := v.Children("constant") vv := v.GetChildrenVisitor("constant")
n.constant.Walk(vv) n.constant.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -21,12 +21,14 @@ func NewEmpty(expression node.Node) node.Node {
} }
func (n Empty) Walk(v node.Visitor) { func (n Empty) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -21,12 +21,14 @@ func NewErrorSuppress(expression node.Node) node.Node {
} }
func (n ErrorSuppress) Walk(v node.Visitor) { func (n ErrorSuppress) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -21,12 +21,14 @@ func NewEval(expression node.Node) node.Node {
} }
func (n Eval) Walk(v node.Visitor) { func (n Eval) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,12 +23,14 @@ func NewExit(expr node.Node, isDie bool) node.Node {
} }
func (n Exit) Walk(v node.Visitor) { func (n Exit) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,19 +23,21 @@ func NewFunctionCall(function node.Node, arguments []node.Node) node.Node {
} }
func (n FunctionCall) Walk(v node.Visitor) { func (n FunctionCall) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.function != nil { if n.function != nil {
vv := v.Children("function") vv := v.GetChildrenVisitor("function")
n.function.Walk(vv) n.function.Walk(vv)
} }
if n.arguments != nil { if n.arguments != nil {
vv := v.Children("arguments") vv := v.GetChildrenVisitor("arguments")
for _, nn := range n.arguments { for _, nn := range n.arguments {
nn.Walk(vv) nn.Walk(vv)
} }
} }
v.LeaveNode(n)
} }

View File

@ -21,12 +21,14 @@ func NewInclude(expression node.Node) node.Node {
} }
func (n Include) Walk(v node.Visitor) { func (n Include) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -21,12 +21,14 @@ func NewIncludeOnce(expression node.Node) node.Node {
} }
func (n IncludeOnce) Walk(v node.Visitor) { func (n IncludeOnce) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewInstanceOf(expr node.Node, class node.Node) node.Node {
} }
func (n InstanceOf) Walk(v node.Visitor) { func (n InstanceOf) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
if n.class != nil { if n.class != nil {
vv := v.Children("class") vv := v.GetChildrenVisitor("class")
n.class.Walk(vv) n.class.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -21,14 +21,16 @@ func NewIsset(variables []node.Node) node.Node {
} }
func (n Isset) Walk(v node.Visitor) { func (n Isset) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variables != nil { if n.variables != nil {
vv := v.Children("variables") vv := v.GetChildrenVisitor("variables")
for _, nn := range n.variables { for _, nn := range n.variables {
nn.Walk(vv) nn.Walk(vv)
} }
} }
v.LeaveNode(n)
} }

View File

@ -21,14 +21,16 @@ func NewList(items []node.Node) node.Node {
} }
func (n List) Walk(v node.Visitor) { func (n List) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.items != nil { if n.items != nil {
vv := v.Children("items") vv := v.GetChildrenVisitor("items")
for _, nn := range n.items { for _, nn := range n.items {
nn.Walk(vv) nn.Walk(vv)
} }
} }
v.LeaveNode(n)
} }

View File

@ -25,24 +25,26 @@ func NewMethodCall(variable node.Node, method node.Node, arguments []node.Node)
} }
func (n MethodCall) Walk(v node.Visitor) { func (n MethodCall) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
if n.method != nil { if n.method != nil {
vv := v.Children("method") vv := v.GetChildrenVisitor("method")
n.method.Walk(vv) n.method.Walk(vv)
} }
if n.arguments != nil { if n.arguments != nil {
vv := v.Children("arguments") vv := v.GetChildrenVisitor("arguments")
for _, nn := range n.arguments { for _, nn := range n.arguments {
nn.Walk(vv) nn.Walk(vv)
} }
} }
v.LeaveNode(n)
} }

View File

@ -23,19 +23,21 @@ func NewNew(class node.Node, arguments []node.Node) node.Node {
} }
func (n New) Walk(v node.Visitor) { func (n New) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.class != nil { if n.class != nil {
vv := v.Children("class") vv := v.GetChildrenVisitor("class")
n.class.Walk(vv) n.class.Walk(vv)
} }
if n.arguments != nil { if n.arguments != nil {
vv := v.Children("arguments") vv := v.GetChildrenVisitor("arguments")
for _, nn := range n.arguments { for _, nn := range n.arguments {
nn.Walk(vv) nn.Walk(vv)
} }
} }
v.LeaveNode(n)
} }

View File

@ -21,12 +21,14 @@ func NewPostDec(variableession node.Node) node.Node {
} }
func (n PostDec) Walk(v node.Visitor) { func (n PostDec) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -21,12 +21,14 @@ func NewPostInc(variableession node.Node) node.Node {
} }
func (n PostInc) Walk(v node.Visitor) { func (n PostInc) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -21,12 +21,14 @@ func NewPreDec(variableession node.Node) node.Node {
} }
func (n PreDec) Walk(v node.Visitor) { func (n PreDec) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -21,12 +21,14 @@ func NewPreInc(variableession node.Node) node.Node {
} }
func (n PreInc) Walk(v node.Visitor) { func (n PreInc) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -21,12 +21,14 @@ func NewPrint(expression node.Node) node.Node {
} }
func (n Print) Walk(v node.Visitor) { func (n Print) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewPropertyFetch(variable node.Node, property node.Node) node.Node {
} }
func (n PropertyFetch) Walk(v node.Visitor) { func (n PropertyFetch) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
if n.property != nil { if n.property != nil {
vv := v.Children("property") vv := v.GetChildrenVisitor("property")
n.property.Walk(vv) n.property.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -21,12 +21,14 @@ func NewRequire(expression node.Node) node.Node {
} }
func (n Require) Walk(v node.Visitor) { func (n Require) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -21,12 +21,14 @@ func NewRequireOnce(expression node.Node) node.Node {
} }
func (n RequireOnce) Walk(v node.Visitor) { func (n RequireOnce) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -21,14 +21,16 @@ func NewShellExec(parts []node.Node) node.Node {
} }
func (n ShellExec) Walk(v node.Visitor) { func (n ShellExec) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.parts != nil { if n.parts != nil {
vv := v.Children("parts") vv := v.GetChildrenVisitor("parts")
for _, nn := range n.parts { for _, nn := range n.parts {
nn.Walk(vv) nn.Walk(vv)
} }
} }
v.LeaveNode(n)
} }

View File

@ -26,14 +26,16 @@ func NewShortArray(opentToken token.Token, closeToken token.Token, items []node.
} }
func (n ShortArray) Walk(v node.Visitor) { func (n ShortArray) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.items != nil { if n.items != nil {
vv := v.Children("items") vv := v.GetChildrenVisitor("items")
for _, nn := range n.items { for _, nn := range n.items {
nn.Walk(vv) nn.Walk(vv)
} }
} }
v.LeaveNode(n)
} }

View File

@ -21,14 +21,16 @@ func NewShortList(items []node.Node) node.Node {
} }
func (n ShortList) Walk(v node.Visitor) { func (n ShortList) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.items != nil { if n.items != nil {
vv := v.Children("items") vv := v.GetChildrenVisitor("items")
for _, nn := range n.items { for _, nn := range n.items {
nn.Walk(vv) nn.Walk(vv)
} }
} }
v.LeaveNode(n)
} }

View File

@ -25,24 +25,26 @@ func NewStaticCall(class node.Node, call node.Node, arguments []node.Node) node.
} }
func (n StaticCall) Walk(v node.Visitor) { func (n StaticCall) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.class != nil { if n.class != nil {
vv := v.Children("class") vv := v.GetChildrenVisitor("class")
n.class.Walk(vv) n.class.Walk(vv)
} }
if n.call != nil { if n.call != nil {
vv := v.Children("call") vv := v.GetChildrenVisitor("call")
n.call.Walk(vv) n.call.Walk(vv)
} }
if n.arguments != nil { if n.arguments != nil {
vv := v.Children("arguments") vv := v.GetChildrenVisitor("arguments")
for _, nn := range n.arguments { for _, nn := range n.arguments {
nn.Walk(vv) nn.Walk(vv)
} }
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewStaticPropertyFetch(class node.Node, property node.Node) node.Node {
} }
func (n StaticPropertyFetch) Walk(v node.Visitor) { func (n StaticPropertyFetch) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.class != nil { if n.class != nil {
vv := v.Children("class") vv := v.GetChildrenVisitor("class")
n.class.Walk(vv) n.class.Walk(vv)
} }
if n.property != nil { if n.property != nil {
vv := v.Children("property") vv := v.GetChildrenVisitor("property")
n.property.Walk(vv) n.property.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -25,22 +25,24 @@ func NewTernary(condition node.Node, ifTrue node.Node, ifFalse node.Node) node.N
} }
func (n Ternary) Walk(v node.Visitor) { func (n Ternary) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.condition != nil { if n.condition != nil {
vv := v.Children("condition") vv := v.GetChildrenVisitor("condition")
n.condition.Walk(vv) n.condition.Walk(vv)
} }
if n.ifTrue != nil { if n.ifTrue != nil {
vv := v.Children("ifTrue") vv := v.GetChildrenVisitor("ifTrue")
n.ifTrue.Walk(vv) n.ifTrue.Walk(vv)
} }
if n.ifFalse != nil { if n.ifFalse != nil {
vv := v.Children("ifFalse") vv := v.GetChildrenVisitor("ifFalse")
n.ifFalse.Walk(vv) n.ifFalse.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -21,12 +21,14 @@ func NewUnaryMinus(expression node.Node) node.Node {
} }
func (n UnaryMinus) Walk(v node.Visitor) { func (n UnaryMinus) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -21,12 +21,14 @@ func NewUnaryPlus(expression node.Node) node.Node {
} }
func (n UnaryPlus) Walk(v node.Visitor) { func (n UnaryPlus) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -21,12 +21,14 @@ func NewVariable(varName node.Node) node.Node {
} }
func (n Variable) Walk(v node.Visitor) { func (n Variable) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.varName != nil { if n.varName != nil {
vv := v.Children("varName") vv := v.GetChildrenVisitor("varName")
n.varName.Walk(vv) n.varName.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -23,17 +23,19 @@ func NewYield(key node.Node, value node.Node) node.Node {
} }
func (n Yield) Walk(v node.Visitor) { func (n Yield) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.key != nil { if n.key != nil {
vv := v.Children("key") vv := v.GetChildrenVisitor("key")
n.key.Walk(vv) n.key.Walk(vv)
} }
if n.value != nil { if n.value != nil {
vv := v.Children("value") vv := v.GetChildrenVisitor("value")
n.value.Walk(vv) n.value.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -21,12 +21,14 @@ func NewYieldFrom(expression node.Node) node.Node {
} }
func (n YieldFrom) Walk(v node.Visitor) { func (n YieldFrom) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -21,9 +21,11 @@ func NewIdentifier(token token.Token) Node {
} }
func (n Identifier) Walk(v Visitor) { func (n Identifier) Walk(v Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
v.Scalar("token", n.token.Value) v.Scalar("token", n.token.Value)
v.LeaveNode(n)
} }

View File

@ -21,12 +21,12 @@ func NewName(parts []node.Node) node.Node {
} }
func (n NameNode) Walk(v node.Visitor) { func (n NameNode) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.parts != nil { if n.parts != nil {
vv := v.Children("parts") vv := v.GetChildrenVisitor("parts")
for _, nn := range n.parts { for _, nn := range n.parts {
nn.Walk(vv) nn.Walk(vv)
} }

View File

@ -22,7 +22,7 @@ func NewNamePart(token token.Token) node.Node {
} }
func (n NamePart) Walk(v node.Visitor) { func (n NamePart) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }

View File

@ -17,12 +17,14 @@ func NewNullable(expression Node) Node {
} }
func (n Nullable) Walk(v Visitor) { func (n Nullable) Walk(v Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.expr != nil { if n.expr != nil {
vv := v.Children("expr") vv := v.GetChildrenVisitor("expr")
n.expr.Walk(vv) n.expr.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -25,7 +25,7 @@ func NewParameter(variableType Node, variable Node, defaultValue Node, byRef boo
} }
func (n Parameter) Walk(v Visitor) { func (n Parameter) Walk(v Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
@ -33,17 +33,19 @@ func (n Parameter) Walk(v Visitor) {
v.Scalar("variadic", n.variadic) v.Scalar("variadic", n.variadic)
if n.variableType != nil { if n.variableType != nil {
vv := v.Children("variableType") vv := v.GetChildrenVisitor("variableType")
n.variableType.Walk(vv) n.variableType.Walk(vv)
} }
if n.variable != nil { if n.variable != nil {
vv := v.Children("variable") vv := v.GetChildrenVisitor("variable")
n.variable.Walk(vv) n.variable.Walk(vv)
} }
if n.defaultValue != nil { if n.defaultValue != nil {
vv := v.Children("defaultValue") vv := v.GetChildrenVisitor("defaultValue")
n.defaultValue.Walk(vv) n.defaultValue.Walk(vv)
} }
v.LeaveNode(n)
} }

View File

@ -22,7 +22,7 @@ func NewDnumber(token token.Token) node.Node {
} }
func (n Dnumber) Walk(v node.Visitor) { func (n Dnumber) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }

View File

@ -26,12 +26,12 @@ func NewEncapsed(startToken token.Token, parts []node.Node, endToken token.Token
} }
func (n Encapsed) Walk(v node.Visitor) { func (n Encapsed) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }
if n.parts != nil { if n.parts != nil {
vv := v.Children("parts") vv := v.GetChildrenVisitor("parts")
for _, nn := range n.parts { for _, nn := range n.parts {
nn.Walk(vv) nn.Walk(vv)
} }

View File

@ -22,7 +22,7 @@ func NewEncapsedStringPart(t token.Token) node.Node {
} }
func (n EncapsedStringPart) Walk(v node.Visitor) { func (n EncapsedStringPart) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }

View File

@ -22,7 +22,7 @@ func NewLnumber(token token.Token) node.Node {
} }
func (n Lnumber) Walk(v node.Visitor) { func (n Lnumber) Walk(v node.Visitor) {
if v.Visit(n) == false { if v.EnterNode(n) == false {
return return
} }

Some files were not shown because too many files have changed in this diff Show More