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

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