diff --git a/comment/comment.go b/comment/comment.go index a75f53b..f9d7de1 100644 --- a/comment/comment.go +++ b/comment/comment.go @@ -1,5 +1,13 @@ package comment +import "github.com/z7zmey/php-parser/node" + type Comment interface { String() string } + +type Comments map[node.Node][]Comment + +func (c Comments) AddComments(node node.Node, comments []Comment) { + c[node] = append(c[node], comments...) +} diff --git a/dumper.go b/dumper.go index 83d51ef..3e252dc 100644 --- a/dumper.go +++ b/dumper.go @@ -4,11 +4,13 @@ import ( "fmt" "reflect" + "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type dumper struct { - indent string + indent string + comments comment.Comments } func (d dumper) EnterNode(n node.Node) bool { @@ -22,7 +24,7 @@ func (d dumper) EnterNode(n node.Node) bool { } fmt.Println() - if c := n.Comments(); c != nil && len(c) > 0 { + if c := d.comments[n]; len(c) > 0 { fmt.Printf("%vcomments:\n", d.indent+" ") for _, cc := range c { fmt.Printf("%v%q\n", d.indent+" ", cc) @@ -34,7 +36,7 @@ func (d dumper) EnterNode(n node.Node) bool { func (d dumper) GetChildrenVisitor(key string) node.Visitor { fmt.Printf("%v%q:\n", d.indent+" ", key) - return dumper{d.indent + " "} + return dumper{d.indent + " ", d.comments} } func (d dumper) LeaveNode(n node.Node) { diff --git a/main.go b/main.go index 959f6e6..0dd9cf5 100644 --- a/main.go +++ b/main.go @@ -19,9 +19,9 @@ func main() { fmt.Printf("==> %s\n", real) src, _ := os.Open(string(real)) - rootnode := parser.Parse(src, real) + rootnode, comments := parser.Parse(src, real) - rootnode.Walk(dumper{" | "}) + rootnode.Walk(dumper{" | ", comments}) } } diff --git a/node/argument.go b/node/argument.go index cc8447a..8b4f252 100644 --- a/node/argument.go +++ b/node/argument.go @@ -1,17 +1,13 @@ package node -import "github.com/z7zmey/php-parser/comment" - type Argument struct { position *Position - comments []comment.Comment Variadic bool Expr Node } func NewArgument(Expression Node, Variadic bool) *Argument { return &Argument{ - nil, nil, Variadic, Expression, @@ -33,15 +29,6 @@ func (n *Argument) SetPosition(p *Position) Node { return n } -func (n *Argument) Comments() []comment.Comment { - return n.comments -} - -func (n *Argument) SetComments(c []comment.Comment) Node { - n.comments = c - return n -} - func (n *Argument) Walk(v Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/array.go b/node/expr/array.go index b279cf2..64e1bd6 100644 --- a/node/expr/array.go +++ b/node/expr/array.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Array struct { position *node.Position - comments []comment.Comment Items []node.Node } func NewArray(Items []node.Node) *Array { return &Array{ - nil, nil, Items, } @@ -32,15 +29,6 @@ func (n *Array) SetPosition(p *node.Position) node.Node { return n } -func (n *Array) Comments() []comment.Comment { - return n.comments -} - -func (n *Array) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Array) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/array_dim_fetch.go b/node/expr/array_dim_fetch.go index 5b70177..4d9596f 100644 --- a/node/expr/array_dim_fetch.go +++ b/node/expr/array_dim_fetch.go @@ -1,20 +1,17 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type ArrayDimFetch struct { position *node.Position - comments []comment.Comment Variable node.Node Dim node.Node } func NewArrayDimFetch(Variable node.Node, Dim node.Node) *ArrayDimFetch { return &ArrayDimFetch{ - nil, nil, Variable, Dim, @@ -34,15 +31,6 @@ func (n *ArrayDimFetch) SetPosition(p *node.Position) node.Node { return n } -func (n *ArrayDimFetch) Comments() []comment.Comment { - return n.comments -} - -func (n *ArrayDimFetch) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *ArrayDimFetch) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/array_item.go b/node/expr/array_item.go index f18fcb3..37a2303 100644 --- a/node/expr/array_item.go +++ b/node/expr/array_item.go @@ -1,13 +1,11 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type ArrayItem struct { position *node.Position - comments []comment.Comment ByRef bool Key node.Node Val node.Node @@ -15,7 +13,6 @@ type ArrayItem struct { func NewArrayItem(Key node.Node, Val node.Node, ByRef bool) *ArrayItem { return &ArrayItem{ - nil, nil, ByRef, Key, @@ -38,15 +35,6 @@ func (n *ArrayItem) SetPosition(p *node.Position) node.Node { return n } -func (n *ArrayItem) Comments() []comment.Comment { - return n.comments -} - -func (n *ArrayItem) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *ArrayItem) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/assign_op/assign.go b/node/expr/assign_op/assign.go index 5ba95f0..66935c8 100644 --- a/node/expr/assign_op/assign.go +++ b/node/expr/assign_op/assign.go @@ -1,7 +1,6 @@ package assign_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type Assign struct { func NewAssign(Variable node.Node, Expression node.Node) *Assign { return &Assign{ AssignOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *Assign) SetPosition(p *node.Position) node.Node { return n } -func (n *Assign) Comments() []comment.Comment { - return n.comments -} - -func (n *Assign) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Assign) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/assign_op/assign_op.go b/node/expr/assign_op/assign_op.go index 49a886d..41d1e0e 100644 --- a/node/expr/assign_op/assign_op.go +++ b/node/expr/assign_op/assign_op.go @@ -1,13 +1,11 @@ package assign_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type AssignOp struct { position *node.Position - comments []comment.Comment Variable node.Node Expression node.Node } diff --git a/node/expr/assign_op/assign_ref.go b/node/expr/assign_op/assign_ref.go index daa4de5..38f1d79 100644 --- a/node/expr/assign_op/assign_ref.go +++ b/node/expr/assign_op/assign_ref.go @@ -1,7 +1,6 @@ package assign_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type AssignRef struct { func NewAssignRef(Variable node.Node, Expression node.Node) *AssignRef { return &AssignRef{ AssignOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *AssignRef) SetPosition(p *node.Position) node.Node { return n } -func (n *AssignRef) Comments() []comment.Comment { - return n.comments -} - -func (n *AssignRef) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *AssignRef) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/assign_op/bitwise_and.go b/node/expr/assign_op/bitwise_and.go index 7b64441..086b184 100644 --- a/node/expr/assign_op/bitwise_and.go +++ b/node/expr/assign_op/bitwise_and.go @@ -1,7 +1,6 @@ package assign_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type BitwiseAnd struct { func NewBitwiseAnd(Variable node.Node, Expression node.Node) *BitwiseAnd { return &BitwiseAnd{ AssignOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *BitwiseAnd) SetPosition(p *node.Position) node.Node { return n } -func (n *BitwiseAnd) Comments() []comment.Comment { - return n.comments -} - -func (n *BitwiseAnd) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *BitwiseAnd) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/assign_op/bitwise_or.go b/node/expr/assign_op/bitwise_or.go index e2f0b35..7caa012 100644 --- a/node/expr/assign_op/bitwise_or.go +++ b/node/expr/assign_op/bitwise_or.go @@ -1,7 +1,6 @@ package assign_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type BitwiseOr struct { func NewBitwiseOr(Variable node.Node, Expression node.Node) *BitwiseOr { return &BitwiseOr{ AssignOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *BitwiseOr) SetPosition(p *node.Position) node.Node { return n } -func (n *BitwiseOr) Comments() []comment.Comment { - return n.comments -} - -func (n *BitwiseOr) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *BitwiseOr) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/assign_op/bitwise_xor.go b/node/expr/assign_op/bitwise_xor.go index a49eceb..43a26e4 100644 --- a/node/expr/assign_op/bitwise_xor.go +++ b/node/expr/assign_op/bitwise_xor.go @@ -1,7 +1,6 @@ package assign_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type BitwiseXor struct { func NewBitwiseXor(Variable node.Node, Expression node.Node) *BitwiseXor { return &BitwiseXor{ AssignOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *BitwiseXor) SetPosition(p *node.Position) node.Node { return n } -func (n *BitwiseXor) Comments() []comment.Comment { - return n.comments -} - -func (n *BitwiseXor) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *BitwiseXor) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/assign_op/concat.go b/node/expr/assign_op/concat.go index 1c74b30..04751bc 100644 --- a/node/expr/assign_op/concat.go +++ b/node/expr/assign_op/concat.go @@ -1,7 +1,6 @@ package assign_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type Concat struct { func NewConcat(Variable node.Node, Expression node.Node) *Concat { return &Concat{ AssignOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *Concat) SetPosition(p *node.Position) node.Node { return n } -func (n *Concat) Comments() []comment.Comment { - return n.comments -} - -func (n *Concat) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Concat) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/assign_op/div.go b/node/expr/assign_op/div.go index 899dab7..27b488b 100644 --- a/node/expr/assign_op/div.go +++ b/node/expr/assign_op/div.go @@ -1,7 +1,6 @@ package assign_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type Div struct { func NewDiv(Variable node.Node, Expression node.Node) *Div { return &Div{ AssignOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *Div) SetPosition(p *node.Position) node.Node { return n } -func (n *Div) Comments() []comment.Comment { - return n.comments -} - -func (n *Div) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Div) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/assign_op/minus.go b/node/expr/assign_op/minus.go index d4d3480..f6299a5 100644 --- a/node/expr/assign_op/minus.go +++ b/node/expr/assign_op/minus.go @@ -1,7 +1,6 @@ package assign_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type Minus struct { func NewMinus(Variable node.Node, Expression node.Node) *Minus { return &Minus{ AssignOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *Minus) SetPosition(p *node.Position) node.Node { return n } -func (n *Minus) Comments() []comment.Comment { - return n.comments -} - -func (n *Minus) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Minus) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/assign_op/mod.go b/node/expr/assign_op/mod.go index c925ba3..e941936 100644 --- a/node/expr/assign_op/mod.go +++ b/node/expr/assign_op/mod.go @@ -1,7 +1,6 @@ package assign_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type Mod struct { func NewMod(Variable node.Node, Expression node.Node) *Mod { return &Mod{ AssignOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *Mod) SetPosition(p *node.Position) node.Node { return n } -func (n *Mod) Comments() []comment.Comment { - return n.comments -} - -func (n *Mod) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Mod) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/assign_op/mul.go b/node/expr/assign_op/mul.go index a6fa487..8eb7ce5 100644 --- a/node/expr/assign_op/mul.go +++ b/node/expr/assign_op/mul.go @@ -1,7 +1,6 @@ package assign_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type Mul struct { func NewMul(Variable node.Node, Expression node.Node) *Mul { return &Mul{ AssignOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *Mul) SetPosition(p *node.Position) node.Node { return n } -func (n *Mul) Comments() []comment.Comment { - return n.comments -} - -func (n *Mul) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Mul) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/assign_op/plus.go b/node/expr/assign_op/plus.go index 51f3c15..e89ca13 100644 --- a/node/expr/assign_op/plus.go +++ b/node/expr/assign_op/plus.go @@ -1,7 +1,6 @@ package assign_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type Plus struct { func NewPlus(Variable node.Node, Expression node.Node) *Plus { return &Plus{ AssignOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *Plus) SetPosition(p *node.Position) node.Node { return n } -func (n *Plus) Comments() []comment.Comment { - return n.comments -} - -func (n *Plus) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Plus) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/assign_op/pow.go b/node/expr/assign_op/pow.go index fd0a84a..ae5ba41 100644 --- a/node/expr/assign_op/pow.go +++ b/node/expr/assign_op/pow.go @@ -1,7 +1,6 @@ package assign_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type Pow struct { func NewPow(Variable node.Node, Expression node.Node) *Pow { return &Pow{ AssignOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *Pow) SetPosition(p *node.Position) node.Node { return n } -func (n *Pow) Comments() []comment.Comment { - return n.comments -} - -func (n *Pow) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Pow) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/assign_op/shift_left.go b/node/expr/assign_op/shift_left.go index 4a85a0a..6f04f84 100644 --- a/node/expr/assign_op/shift_left.go +++ b/node/expr/assign_op/shift_left.go @@ -1,7 +1,6 @@ package assign_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type ShiftLeft struct { func NewShiftLeft(Variable node.Node, Expression node.Node) *ShiftLeft { return &ShiftLeft{ AssignOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *ShiftLeft) SetPosition(p *node.Position) node.Node { return n } -func (n *ShiftLeft) Comments() []comment.Comment { - return n.comments -} - -func (n *ShiftLeft) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *ShiftLeft) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/assign_op/shift_right.go b/node/expr/assign_op/shift_right.go index c3d686e..ef81336 100644 --- a/node/expr/assign_op/shift_right.go +++ b/node/expr/assign_op/shift_right.go @@ -1,7 +1,6 @@ package assign_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type ShiftRight struct { func NewShiftRight(Variable node.Node, Expression node.Node) *ShiftRight { return &ShiftRight{ AssignOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *ShiftRight) SetPosition(p *node.Position) node.Node { return n } -func (n *ShiftRight) Comments() []comment.Comment { - return n.comments -} - -func (n *ShiftRight) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *ShiftRight) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/binary_op.go b/node/expr/binary_op/binary_op.go index c40e918..2c43a28 100644 --- a/node/expr/binary_op/binary_op.go +++ b/node/expr/binary_op/binary_op.go @@ -1,13 +1,11 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type BinaryOp struct { position *node.Position - comments []comment.Comment Left node.Node Right node.Node } diff --git a/node/expr/binary_op/bitwise_and.go b/node/expr/binary_op/bitwise_and.go index a13d6c8..156b685 100644 --- a/node/expr/binary_op/bitwise_and.go +++ b/node/expr/binary_op/bitwise_and.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type BitwiseAnd struct { func NewBitwiseAnd(Variable node.Node, Expression node.Node) *BitwiseAnd { return &BitwiseAnd{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *BitwiseAnd) SetPosition(p *node.Position) node.Node { return n } -func (n *BitwiseAnd) Comments() []comment.Comment { - return n.comments -} - -func (n *BitwiseAnd) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *BitwiseAnd) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/bitwise_or.go b/node/expr/binary_op/bitwise_or.go index 886d094..2a4d21b 100644 --- a/node/expr/binary_op/bitwise_or.go +++ b/node/expr/binary_op/bitwise_or.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type BitwiseOr struct { func NewBitwiseOr(Variable node.Node, Expression node.Node) *BitwiseOr { return &BitwiseOr{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *BitwiseOr) SetPosition(p *node.Position) node.Node { return n } -func (n *BitwiseOr) Comments() []comment.Comment { - return n.comments -} - -func (n *BitwiseOr) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *BitwiseOr) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/bitwise_xor.go b/node/expr/binary_op/bitwise_xor.go index 511ebd2..6b4fac0 100644 --- a/node/expr/binary_op/bitwise_xor.go +++ b/node/expr/binary_op/bitwise_xor.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type BitwiseXor struct { func NewBitwiseXor(Variable node.Node, Expression node.Node) *BitwiseXor { return &BitwiseXor{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *BitwiseXor) SetPosition(p *node.Position) node.Node { return n } -func (n *BitwiseXor) Comments() []comment.Comment { - return n.comments -} - -func (n *BitwiseXor) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *BitwiseXor) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/boolean_and.go b/node/expr/binary_op/boolean_and.go index e563847..a479edf 100644 --- a/node/expr/binary_op/boolean_and.go +++ b/node/expr/binary_op/boolean_and.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type BooleanAnd struct { func NewBooleanAnd(Variable node.Node, Expression node.Node) *BooleanAnd { return &BooleanAnd{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *BooleanAnd) SetPosition(p *node.Position) node.Node { return n } -func (n *BooleanAnd) Comments() []comment.Comment { - return n.comments -} - -func (n *BooleanAnd) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *BooleanAnd) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/boolean_or.go b/node/expr/binary_op/boolean_or.go index 6d620b2..2b8d967 100644 --- a/node/expr/binary_op/boolean_or.go +++ b/node/expr/binary_op/boolean_or.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type BooleanOr struct { func NewBooleanOr(Variable node.Node, Expression node.Node) *BooleanOr { return &BooleanOr{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *BooleanOr) SetPosition(p *node.Position) node.Node { return n } -func (n *BooleanOr) Comments() []comment.Comment { - return n.comments -} - -func (n *BooleanOr) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *BooleanOr) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/coalesce.go b/node/expr/binary_op/coalesce.go index a133ee2..63b4e91 100644 --- a/node/expr/binary_op/coalesce.go +++ b/node/expr/binary_op/coalesce.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type Coalesce struct { func NewCoalesce(Variable node.Node, Expression node.Node) *Coalesce { return &Coalesce{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *Coalesce) SetPosition(p *node.Position) node.Node { return n } -func (n *Coalesce) Comments() []comment.Comment { - return n.comments -} - -func (n *Coalesce) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Coalesce) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/concat.go b/node/expr/binary_op/concat.go index ec876ec..aa77def 100644 --- a/node/expr/binary_op/concat.go +++ b/node/expr/binary_op/concat.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type Concat struct { func NewConcat(Variable node.Node, Expression node.Node) *Concat { return &Concat{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *Concat) SetPosition(p *node.Position) node.Node { return n } -func (n *Concat) Comments() []comment.Comment { - return n.comments -} - -func (n *Concat) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Concat) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/div.go b/node/expr/binary_op/div.go index 07280e4..5cd5ec8 100644 --- a/node/expr/binary_op/div.go +++ b/node/expr/binary_op/div.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type Div struct { func NewDiv(Variable node.Node, Expression node.Node) *Div { return &Div{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *Div) SetPosition(p *node.Position) node.Node { return n } -func (n *Div) Comments() []comment.Comment { - return n.comments -} - -func (n *Div) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Div) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/equal.go b/node/expr/binary_op/equal.go index 8e3e979..ba604f3 100644 --- a/node/expr/binary_op/equal.go +++ b/node/expr/binary_op/equal.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type Equal struct { func NewEqual(Variable node.Node, Expression node.Node) *Equal { return &Equal{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *Equal) SetPosition(p *node.Position) node.Node { return n } -func (n *Equal) Comments() []comment.Comment { - return n.comments -} - -func (n *Equal) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Equal) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/greater.go b/node/expr/binary_op/greater.go index 99190ad..c02855c 100644 --- a/node/expr/binary_op/greater.go +++ b/node/expr/binary_op/greater.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type Greater struct { func NewGreater(Variable node.Node, Expression node.Node) *Greater { return &Greater{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *Greater) SetPosition(p *node.Position) node.Node { return n } -func (n *Greater) Comments() []comment.Comment { - return n.comments -} - -func (n *Greater) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Greater) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/greater_or_equal.go b/node/expr/binary_op/greater_or_equal.go index 3057185..089b262 100644 --- a/node/expr/binary_op/greater_or_equal.go +++ b/node/expr/binary_op/greater_or_equal.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type GreaterOrEqual struct { func NewGreaterOrEqual(Variable node.Node, Expression node.Node) *GreaterOrEqual { return &GreaterOrEqual{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *GreaterOrEqual) SetPosition(p *node.Position) node.Node { return n } -func (n *GreaterOrEqual) Comments() []comment.Comment { - return n.comments -} - -func (n *GreaterOrEqual) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *GreaterOrEqual) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/identical.go b/node/expr/binary_op/identical.go index f589c18..6bf47b8 100644 --- a/node/expr/binary_op/identical.go +++ b/node/expr/binary_op/identical.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type Identical struct { func NewIdentical(Variable node.Node, Expression node.Node) *Identical { return &Identical{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *Identical) SetPosition(p *node.Position) node.Node { return n } -func (n *Identical) Comments() []comment.Comment { - return n.comments -} - -func (n *Identical) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Identical) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/logical_and.go b/node/expr/binary_op/logical_and.go index 0a1e715..b220603 100644 --- a/node/expr/binary_op/logical_and.go +++ b/node/expr/binary_op/logical_and.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type LogicalAnd struct { func NewLogicalAnd(Variable node.Node, Expression node.Node) *LogicalAnd { return &LogicalAnd{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *LogicalAnd) SetPosition(p *node.Position) node.Node { return n } -func (n *LogicalAnd) Comments() []comment.Comment { - return n.comments -} - -func (n *LogicalAnd) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *LogicalAnd) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/logical_or.go b/node/expr/binary_op/logical_or.go index c2ade04..3f42bf2 100644 --- a/node/expr/binary_op/logical_or.go +++ b/node/expr/binary_op/logical_or.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type LogicalOr struct { func NewLogicalOr(Variable node.Node, Expression node.Node) *LogicalOr { return &LogicalOr{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *LogicalOr) SetPosition(p *node.Position) node.Node { return n } -func (n *LogicalOr) Comments() []comment.Comment { - return n.comments -} - -func (n *LogicalOr) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *LogicalOr) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/logical_xor.go b/node/expr/binary_op/logical_xor.go index e67215f..b9f0629 100644 --- a/node/expr/binary_op/logical_xor.go +++ b/node/expr/binary_op/logical_xor.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type LogicalXor struct { func NewLogicalXor(Variable node.Node, Expression node.Node) *LogicalXor { return &LogicalXor{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *LogicalXor) SetPosition(p *node.Position) node.Node { return n } -func (n *LogicalXor) Comments() []comment.Comment { - return n.comments -} - -func (n *LogicalXor) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *LogicalXor) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/minus.go b/node/expr/binary_op/minus.go index e772efe..e1960d0 100644 --- a/node/expr/binary_op/minus.go +++ b/node/expr/binary_op/minus.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type Minus struct { func NewMinus(Variable node.Node, Expression node.Node) *Minus { return &Minus{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *Minus) SetPosition(p *node.Position) node.Node { return n } -func (n *Minus) Comments() []comment.Comment { - return n.comments -} - -func (n *Minus) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Minus) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/mod.go b/node/expr/binary_op/mod.go index f90f878..acf1cd4 100644 --- a/node/expr/binary_op/mod.go +++ b/node/expr/binary_op/mod.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type Mod struct { func NewMod(Variable node.Node, Expression node.Node) *Mod { return &Mod{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *Mod) SetPosition(p *node.Position) node.Node { return n } -func (n *Mod) Comments() []comment.Comment { - return n.comments -} - -func (n *Mod) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Mod) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/mul.go b/node/expr/binary_op/mul.go index 39eb9dc..d11d543 100644 --- a/node/expr/binary_op/mul.go +++ b/node/expr/binary_op/mul.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type Mul struct { func NewMul(Variable node.Node, Expression node.Node) *Mul { return &Mul{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *Mul) SetPosition(p *node.Position) node.Node { return n } -func (n *Mul) Comments() []comment.Comment { - return n.comments -} - -func (n *Mul) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Mul) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/not_equal.go b/node/expr/binary_op/not_equal.go index 81e51e3..cc10a08 100644 --- a/node/expr/binary_op/not_equal.go +++ b/node/expr/binary_op/not_equal.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type NotEqual struct { func NewNotEqual(Variable node.Node, Expression node.Node) *NotEqual { return &NotEqual{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *NotEqual) SetPosition(p *node.Position) node.Node { return n } -func (n *NotEqual) Comments() []comment.Comment { - return n.comments -} - -func (n *NotEqual) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *NotEqual) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/not_identical.go b/node/expr/binary_op/not_identical.go index 0810ffe..298bdc7 100644 --- a/node/expr/binary_op/not_identical.go +++ b/node/expr/binary_op/not_identical.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type NotIdentical struct { func NewNotIdentical(Variable node.Node, Expression node.Node) *NotIdentical { return &NotIdentical{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *NotIdentical) SetPosition(p *node.Position) node.Node { return n } -func (n *NotIdentical) Comments() []comment.Comment { - return n.comments -} - -func (n *NotIdentical) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *NotIdentical) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/plus.go b/node/expr/binary_op/plus.go index d4d1ff1..95ae14b 100644 --- a/node/expr/binary_op/plus.go +++ b/node/expr/binary_op/plus.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type Plus struct { func NewPlus(Variable node.Node, Expression node.Node) *Plus { return &Plus{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *Plus) SetPosition(p *node.Position) node.Node { return n } -func (n *Plus) Comments() []comment.Comment { - return n.comments -} - -func (n *Plus) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Plus) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/pow.go b/node/expr/binary_op/pow.go index 3437fbf..ff64562 100644 --- a/node/expr/binary_op/pow.go +++ b/node/expr/binary_op/pow.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type Pow struct { func NewPow(Variable node.Node, Expression node.Node) *Pow { return &Pow{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *Pow) SetPosition(p *node.Position) node.Node { return n } -func (n *Pow) Comments() []comment.Comment { - return n.comments -} - -func (n *Pow) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Pow) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/shift_left.go b/node/expr/binary_op/shift_left.go index 4c2a7d2..9197c10 100644 --- a/node/expr/binary_op/shift_left.go +++ b/node/expr/binary_op/shift_left.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type ShiftLeft struct { func NewShiftLeft(Variable node.Node, Expression node.Node) *ShiftLeft { return &ShiftLeft{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *ShiftLeft) SetPosition(p *node.Position) node.Node { return n } -func (n *ShiftLeft) Comments() []comment.Comment { - return n.comments -} - -func (n *ShiftLeft) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *ShiftLeft) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/shift_right.go b/node/expr/binary_op/shift_right.go index 28809c2..0521f5b 100644 --- a/node/expr/binary_op/shift_right.go +++ b/node/expr/binary_op/shift_right.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type ShiftRight struct { func NewShiftRight(Variable node.Node, Expression node.Node) *ShiftRight { return &ShiftRight{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *ShiftRight) SetPosition(p *node.Position) node.Node { return n } -func (n *ShiftRight) Comments() []comment.Comment { - return n.comments -} - -func (n *ShiftRight) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *ShiftRight) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/smaller.go b/node/expr/binary_op/smaller.go index 071303f..5fbe51d 100644 --- a/node/expr/binary_op/smaller.go +++ b/node/expr/binary_op/smaller.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type Smaller struct { func NewSmaller(Variable node.Node, Expression node.Node) *Smaller { return &Smaller{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *Smaller) SetPosition(p *node.Position) node.Node { return n } -func (n *Smaller) Comments() []comment.Comment { - return n.comments -} - -func (n *Smaller) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Smaller) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/smaller_or_equal.go b/node/expr/binary_op/smaller_or_equal.go index 60568bf..a4da4b8 100644 --- a/node/expr/binary_op/smaller_or_equal.go +++ b/node/expr/binary_op/smaller_or_equal.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type SmallerOrEqual struct { func NewSmallerOrEqual(Variable node.Node, Expression node.Node) *SmallerOrEqual { return &SmallerOrEqual{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *SmallerOrEqual) SetPosition(p *node.Position) node.Node { return n } -func (n *SmallerOrEqual) Comments() []comment.Comment { - return n.comments -} - -func (n *SmallerOrEqual) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *SmallerOrEqual) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/binary_op/spaceship.go b/node/expr/binary_op/spaceship.go index 5461ba7..86fa150 100644 --- a/node/expr/binary_op/spaceship.go +++ b/node/expr/binary_op/spaceship.go @@ -1,7 +1,6 @@ package binary_op import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type Spaceship struct { func NewSpaceship(Variable node.Node, Expression node.Node) *Spaceship { return &Spaceship{ BinaryOp{ - nil, nil, Variable, Expression, @@ -33,15 +31,6 @@ func (n *Spaceship) SetPosition(p *node.Position) node.Node { return n } -func (n *Spaceship) Comments() []comment.Comment { - return n.comments -} - -func (n *Spaceship) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Spaceship) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/bitwise_not.go b/node/expr/bitwise_not.go index 246c8a9..24c20e1 100644 --- a/node/expr/bitwise_not.go +++ b/node/expr/bitwise_not.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type BitwiseNot struct { position *node.Position - comments []comment.Comment Expr node.Node } func NewBitwiseNot(Expression node.Node) *BitwiseNot { return &BitwiseNot{ - nil, nil, Expression, } @@ -32,15 +29,6 @@ func (n *BitwiseNot) SetPosition(p *node.Position) node.Node { return n } -func (n *BitwiseNot) Comments() []comment.Comment { - return n.comments -} - -func (n *BitwiseNot) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *BitwiseNot) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/boolean_not.go b/node/expr/boolean_not.go index 88a6cf3..753a4c3 100644 --- a/node/expr/boolean_not.go +++ b/node/expr/boolean_not.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type BooleanNot struct { position *node.Position - comments []comment.Comment Expr node.Node } func NewBooleanNot(Expression node.Node) *BooleanNot { return &BooleanNot{ - nil, nil, Expression, } @@ -32,15 +29,6 @@ func (n *BooleanNot) SetPosition(p *node.Position) node.Node { return n } -func (n *BooleanNot) Comments() []comment.Comment { - return n.comments -} - -func (n *BooleanNot) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *BooleanNot) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/cast/cast.go b/node/expr/cast/cast.go index a9e21ee..f632f15 100644 --- a/node/expr/cast/cast.go +++ b/node/expr/cast/cast.go @@ -1,12 +1,10 @@ package cast import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Cast struct { position *node.Position - comments []comment.Comment Expr node.Node } diff --git a/node/expr/cast/cast_array.go b/node/expr/cast/cast_array.go index f9fdfcd..448d74f 100644 --- a/node/expr/cast/cast_array.go +++ b/node/expr/cast/cast_array.go @@ -1,7 +1,6 @@ package cast import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type CastArray struct { func NewCastArray(Expr node.Node) *CastArray { return &CastArray{ Cast{ - nil, nil, Expr, }, @@ -32,15 +30,6 @@ func (n *CastArray) SetPosition(p *node.Position) node.Node { return n } -func (n *CastArray) Comments() []comment.Comment { - return n.comments -} - -func (n *CastArray) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *CastArray) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/cast/cast_bool.go b/node/expr/cast/cast_bool.go index 7d4cb53..3b93a5a 100644 --- a/node/expr/cast/cast_bool.go +++ b/node/expr/cast/cast_bool.go @@ -1,7 +1,6 @@ package cast import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type CastBool struct { func NewCastBool(Expr node.Node) *CastBool { return &CastBool{ Cast{ - nil, nil, Expr, }, @@ -32,15 +30,6 @@ func (n *CastBool) SetPosition(p *node.Position) node.Node { return n } -func (n *CastBool) Comments() []comment.Comment { - return n.comments -} - -func (n *CastBool) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *CastBool) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/cast/cast_double.go b/node/expr/cast/cast_double.go index 963cf6b..911c0f9 100644 --- a/node/expr/cast/cast_double.go +++ b/node/expr/cast/cast_double.go @@ -1,7 +1,6 @@ package cast import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type CastDouble struct { func NewCastDouble(Expr node.Node) *CastDouble { return &CastDouble{ Cast{ - nil, nil, Expr, }, @@ -32,15 +30,6 @@ func (n *CastDouble) SetPosition(p *node.Position) node.Node { return n } -func (n *CastDouble) Comments() []comment.Comment { - return n.comments -} - -func (n *CastDouble) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *CastDouble) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/cast/cast_int.go b/node/expr/cast/cast_int.go index 8bf0b89..3c72211 100644 --- a/node/expr/cast/cast_int.go +++ b/node/expr/cast/cast_int.go @@ -1,7 +1,6 @@ package cast import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type CastInt struct { func NewCastInt(Expr node.Node) *CastInt { return &CastInt{ Cast{ - nil, nil, Expr, }, @@ -32,15 +30,6 @@ func (n *CastInt) SetPosition(p *node.Position) node.Node { return n } -func (n *CastInt) Comments() []comment.Comment { - return n.comments -} - -func (n *CastInt) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *CastInt) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/cast/cast_object.go b/node/expr/cast/cast_object.go index 9814aa1..262067e 100644 --- a/node/expr/cast/cast_object.go +++ b/node/expr/cast/cast_object.go @@ -1,7 +1,6 @@ package cast import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type CastObject struct { func NewCastObject(Expr node.Node) *CastObject { return &CastObject{ Cast{ - nil, nil, Expr, }, @@ -32,15 +30,6 @@ func (n *CastObject) SetPosition(p *node.Position) node.Node { return n } -func (n *CastObject) Comments() []comment.Comment { - return n.comments -} - -func (n *CastObject) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *CastObject) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/cast/cast_string.go b/node/expr/cast/cast_string.go index 250f081..f5528eb 100644 --- a/node/expr/cast/cast_string.go +++ b/node/expr/cast/cast_string.go @@ -1,7 +1,6 @@ package cast import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type CastString struct { func NewCastString(Expr node.Node) *CastString { return &CastString{ Cast{ - nil, nil, Expr, }, @@ -32,15 +30,6 @@ func (n *CastString) SetPosition(p *node.Position) node.Node { return n } -func (n *CastString) Comments() []comment.Comment { - return n.comments -} - -func (n *CastString) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *CastString) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/cast/cast_unset.go b/node/expr/cast/cast_unset.go index 64281dc..a8d31cf 100644 --- a/node/expr/cast/cast_unset.go +++ b/node/expr/cast/cast_unset.go @@ -1,7 +1,6 @@ package cast import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) @@ -12,7 +11,6 @@ type CastUnset struct { func NewCastUnset(Expr node.Node) *CastUnset { return &CastUnset{ Cast{ - nil, nil, Expr, }, @@ -32,15 +30,6 @@ func (n *CastUnset) SetPosition(p *node.Position) node.Node { return n } -func (n *CastUnset) Comments() []comment.Comment { - return n.comments -} - -func (n *CastUnset) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *CastUnset) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/class_const_fetch.go b/node/expr/class_const_fetch.go index 22bd140..cd9333a 100644 --- a/node/expr/class_const_fetch.go +++ b/node/expr/class_const_fetch.go @@ -1,20 +1,17 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type ClassConstFetch struct { position *node.Position - comments []comment.Comment Class node.Node ConstantName node.Node } func NewClassConstFetch(Class node.Node, ConstantName node.Node) *ClassConstFetch { return &ClassConstFetch{ - nil, nil, Class, ConstantName, @@ -34,15 +31,6 @@ func (n *ClassConstFetch) SetPosition(p *node.Position) node.Node { return n } -func (n *ClassConstFetch) Comments() []comment.Comment { - return n.comments -} - -func (n *ClassConstFetch) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *ClassConstFetch) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/clone.go b/node/expr/clone.go index c207d8d..cc0d765 100644 --- a/node/expr/clone.go +++ b/node/expr/clone.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Clone struct { position *node.Position - comments []comment.Comment Expr node.Node } func NewClone(Expression node.Node) *Clone { return &Clone{ - nil, nil, Expression, } @@ -32,15 +29,6 @@ func (n *Clone) SetPosition(p *node.Position) node.Node { return n } -func (n *Clone) Comments() []comment.Comment { - return n.comments -} - -func (n *Clone) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Clone) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/closure.go b/node/expr/closure.go index db7e917..c23248f 100644 --- a/node/expr/closure.go +++ b/node/expr/closure.go @@ -1,13 +1,11 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Closure struct { position *node.Position - comments []comment.Comment ReturnsRef bool Static bool PhpDocComment string @@ -19,7 +17,6 @@ type Closure struct { func NewClosure(Params []node.Node, Uses []node.Node, ReturnType node.Node, Stmts []node.Node, Static bool, ReturnsRef bool, PhpDocComment string) *Closure { return &Closure{ - nil, nil, ReturnsRef, Static, @@ -48,15 +45,6 @@ func (n *Closure) SetPosition(p *node.Position) node.Node { return n } -func (n *Closure) Comments() []comment.Comment { - return n.comments -} - -func (n *Closure) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Closure) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/closure_use.go b/node/expr/closure_use.go index 136da66..efc5ae6 100644 --- a/node/expr/closure_use.go +++ b/node/expr/closure_use.go @@ -1,20 +1,17 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type ClusureUse struct { position *node.Position - comments []comment.Comment ByRef bool Variable node.Node } func NewClusureUse(Variable node.Node, ByRef bool) *ClusureUse { return &ClusureUse{ - nil, nil, ByRef, Variable, @@ -36,15 +33,6 @@ func (n *ClusureUse) SetPosition(p *node.Position) node.Node { return n } -func (n *ClusureUse) Comments() []comment.Comment { - return n.comments -} - -func (n *ClusureUse) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *ClusureUse) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/const_fetch.go b/node/expr/const_fetch.go index 8e837bd..3a228a4 100644 --- a/node/expr/const_fetch.go +++ b/node/expr/const_fetch.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type ConstFetch struct { position *node.Position - comments []comment.Comment Constant node.Node } func NewConstFetch(Constant node.Node) *ConstFetch { return &ConstFetch{ - nil, nil, Constant, } @@ -32,15 +29,6 @@ func (n *ConstFetch) SetPosition(p *node.Position) node.Node { return n } -func (n *ConstFetch) Comments() []comment.Comment { - return n.comments -} - -func (n *ConstFetch) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *ConstFetch) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/empty.go b/node/expr/empty.go index ae82089..ca3d67d 100644 --- a/node/expr/empty.go +++ b/node/expr/empty.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Empty struct { position *node.Position - comments []comment.Comment Expr node.Node } func NewEmpty(Expression node.Node) *Empty { return &Empty{ - nil, nil, Expression, } @@ -32,15 +29,6 @@ func (n *Empty) SetPosition(p *node.Position) node.Node { return n } -func (n *Empty) Comments() []comment.Comment { - return n.comments -} - -func (n *Empty) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Empty) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/error_suppress.go b/node/expr/error_suppress.go index d2c9f08..bb8c2e7 100644 --- a/node/expr/error_suppress.go +++ b/node/expr/error_suppress.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type ErrorSuppress struct { position *node.Position - comments []comment.Comment Expr node.Node } func NewErrorSuppress(Expression node.Node) *ErrorSuppress { return &ErrorSuppress{ - nil, nil, Expression, } @@ -32,15 +29,6 @@ func (n *ErrorSuppress) SetPosition(p *node.Position) node.Node { return n } -func (n *ErrorSuppress) Comments() []comment.Comment { - return n.comments -} - -func (n *ErrorSuppress) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *ErrorSuppress) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/eval.go b/node/expr/eval.go index 2c382fa..2df8944 100644 --- a/node/expr/eval.go +++ b/node/expr/eval.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Eval struct { position *node.Position - comments []comment.Comment Expr node.Node } func NewEval(Expression node.Node) *Eval { return &Eval{ - nil, nil, Expression, } @@ -32,15 +29,6 @@ func (n *Eval) SetPosition(p *node.Position) node.Node { return n } -func (n *Eval) Comments() []comment.Comment { - return n.comments -} - -func (n *Eval) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Eval) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/exit.go b/node/expr/exit.go index dd989d8..7474457 100644 --- a/node/expr/exit.go +++ b/node/expr/exit.go @@ -1,20 +1,17 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Exit struct { position *node.Position - comments []comment.Comment Expr node.Node IsDie bool } func NewExit(Expr node.Node, IsDie bool) *Exit { return &Exit{ - nil, nil, Expr, IsDie, @@ -36,15 +33,6 @@ func (n *Exit) SetPosition(p *node.Position) node.Node { return n } -func (n *Exit) Comments() []comment.Comment { - return n.comments -} - -func (n *Exit) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Exit) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/function_call.go b/node/expr/function_call.go index a15e079..04cc581 100644 --- a/node/expr/function_call.go +++ b/node/expr/function_call.go @@ -1,20 +1,17 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type FunctionCall struct { position *node.Position - comments []comment.Comment Function node.Node Arguments []node.Node } func NewFunctionCall(Function node.Node, Arguments []node.Node) *FunctionCall { return &FunctionCall{ - nil, nil, Function, Arguments, @@ -34,15 +31,6 @@ func (n *FunctionCall) SetPosition(p *node.Position) node.Node { return n } -func (n *FunctionCall) Comments() []comment.Comment { - return n.comments -} - -func (n *FunctionCall) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *FunctionCall) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/include.go b/node/expr/include.go index c8b0849..69f0ead 100644 --- a/node/expr/include.go +++ b/node/expr/include.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Include struct { position *node.Position - comments []comment.Comment Expr node.Node } func NewInclude(Expression node.Node) *Include { return &Include{ - nil, nil, Expression, } @@ -32,15 +29,6 @@ func (n *Include) SetPosition(p *node.Position) node.Node { return n } -func (n *Include) Comments() []comment.Comment { - return n.comments -} - -func (n *Include) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Include) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/include_once.go b/node/expr/include_once.go index 605e6d0..e5de640 100644 --- a/node/expr/include_once.go +++ b/node/expr/include_once.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type IncludeOnce struct { position *node.Position - comments []comment.Comment Expr node.Node } func NewIncludeOnce(Expression node.Node) *IncludeOnce { return &IncludeOnce{ - nil, nil, Expression, } @@ -32,15 +29,6 @@ func (n *IncludeOnce) SetPosition(p *node.Position) node.Node { return n } -func (n *IncludeOnce) Comments() []comment.Comment { - return n.comments -} - -func (n *IncludeOnce) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *IncludeOnce) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/instance_of.go b/node/expr/instance_of.go index 839fe74..3754d99 100644 --- a/node/expr/instance_of.go +++ b/node/expr/instance_of.go @@ -1,20 +1,17 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type InstanceOf struct { position *node.Position - comments []comment.Comment Expr node.Node Class node.Node } func NewInstanceOf(Expr node.Node, Class node.Node) *InstanceOf { return &InstanceOf{ - nil, nil, Expr, Class, @@ -34,15 +31,6 @@ func (n *InstanceOf) SetPosition(p *node.Position) node.Node { return n } -func (n *InstanceOf) Comments() []comment.Comment { - return n.comments -} - -func (n *InstanceOf) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *InstanceOf) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/isset.go b/node/expr/isset.go index e585248..dd5d0c7 100644 --- a/node/expr/isset.go +++ b/node/expr/isset.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Isset struct { position *node.Position - comments []comment.Comment Variables []node.Node } func NewIsset(Variables []node.Node) *Isset { return &Isset{ - nil, nil, Variables, } @@ -32,15 +29,6 @@ func (n *Isset) SetPosition(p *node.Position) node.Node { return n } -func (n *Isset) Comments() []comment.Comment { - return n.comments -} - -func (n *Isset) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Isset) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/list.go b/node/expr/list.go index 4bea79f..7900875 100644 --- a/node/expr/list.go +++ b/node/expr/list.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type List struct { position *node.Position - comments []comment.Comment Items []node.Node } func NewList(Items []node.Node) *List { return &List{ - nil, nil, Items, } @@ -32,15 +29,6 @@ func (n *List) SetPosition(p *node.Position) node.Node { return n } -func (n *List) Comments() []comment.Comment { - return n.comments -} - -func (n *List) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *List) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/method_call.go b/node/expr/method_call.go index bd25bb0..599d69c 100644 --- a/node/expr/method_call.go +++ b/node/expr/method_call.go @@ -1,13 +1,11 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type MethodCall struct { position *node.Position - comments []comment.Comment Variable node.Node Method node.Node Arguments []node.Node @@ -15,7 +13,6 @@ type MethodCall struct { func NewMethodCall(Variable node.Node, Method node.Node, Arguments []node.Node) *MethodCall { return &MethodCall{ - nil, nil, Variable, Method, @@ -36,15 +33,6 @@ func (n *MethodCall) SetPosition(p *node.Position) node.Node { return n } -func (n *MethodCall) Comments() []comment.Comment { - return n.comments -} - -func (n *MethodCall) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *MethodCall) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/new.go b/node/expr/new.go index d09f45b..2d3d0d4 100644 --- a/node/expr/new.go +++ b/node/expr/new.go @@ -1,20 +1,17 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type New struct { position *node.Position - comments []comment.Comment Class node.Node Arguments []node.Node } func NewNew(Class node.Node, Arguments []node.Node) *New { return &New{ - nil, nil, Class, Arguments, @@ -34,15 +31,6 @@ func (n *New) SetPosition(p *node.Position) node.Node { return n } -func (n *New) Comments() []comment.Comment { - return n.comments -} - -func (n *New) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *New) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/post_dec.go b/node/expr/post_dec.go index 5d12904..b412a20 100644 --- a/node/expr/post_dec.go +++ b/node/expr/post_dec.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type PostDec struct { position *node.Position - comments []comment.Comment Variable node.Node } func NewPostDec(Variable node.Node) *PostDec { return &PostDec{ - nil, nil, Variable, } @@ -32,15 +29,6 @@ func (n *PostDec) SetPosition(p *node.Position) node.Node { return n } -func (n *PostDec) Comments() []comment.Comment { - return n.comments -} - -func (n *PostDec) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *PostDec) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/post_inc.go b/node/expr/post_inc.go index de61e85..5f65ad6 100644 --- a/node/expr/post_inc.go +++ b/node/expr/post_inc.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type PostInc struct { position *node.Position - comments []comment.Comment Variable node.Node } func NewPostInc(Variable node.Node) *PostInc { return &PostInc{ - nil, nil, Variable, } @@ -32,15 +29,6 @@ func (n *PostInc) SetPosition(p *node.Position) node.Node { return n } -func (n *PostInc) Comments() []comment.Comment { - return n.comments -} - -func (n *PostInc) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *PostInc) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/pre_dec.go b/node/expr/pre_dec.go index e66b5fe..de6f859 100644 --- a/node/expr/pre_dec.go +++ b/node/expr/pre_dec.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type PreDec struct { position *node.Position - comments []comment.Comment Variable node.Node } func NewPreDec(Variable node.Node) *PreDec { return &PreDec{ - nil, nil, Variable, } @@ -32,15 +29,6 @@ func (n *PreDec) SetPosition(p *node.Position) node.Node { return n } -func (n *PreDec) Comments() []comment.Comment { - return n.comments -} - -func (n *PreDec) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *PreDec) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/pre_inc.go b/node/expr/pre_inc.go index 8575f5e..d919f7a 100644 --- a/node/expr/pre_inc.go +++ b/node/expr/pre_inc.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type PreInc struct { position *node.Position - comments []comment.Comment Variable node.Node } func NewPreInc(Variable node.Node) *PreInc { return &PreInc{ - nil, nil, Variable, } @@ -32,15 +29,6 @@ func (n *PreInc) SetPosition(p *node.Position) node.Node { return n } -func (n *PreInc) Comments() []comment.Comment { - return n.comments -} - -func (n *PreInc) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *PreInc) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/print.go b/node/expr/print.go index e479636..4a46095 100644 --- a/node/expr/print.go +++ b/node/expr/print.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Print struct { position *node.Position - comments []comment.Comment Expr node.Node } func NewPrint(Expression node.Node) *Print { return &Print{ - nil, nil, Expression, } @@ -32,15 +29,6 @@ func (n *Print) SetPosition(p *node.Position) node.Node { return n } -func (n *Print) Comments() []comment.Comment { - return n.comments -} - -func (n *Print) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Print) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/property_fetch.go b/node/expr/property_fetch.go index 6077947..9aafe3d 100644 --- a/node/expr/property_fetch.go +++ b/node/expr/property_fetch.go @@ -1,20 +1,17 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type PropertyFetch struct { position *node.Position - comments []comment.Comment Variable node.Node Property node.Node } func NewPropertyFetch(Variable node.Node, Property node.Node) *PropertyFetch { return &PropertyFetch{ - nil, nil, Variable, Property, @@ -34,15 +31,6 @@ func (n *PropertyFetch) SetPosition(p *node.Position) node.Node { return n } -func (n *PropertyFetch) Comments() []comment.Comment { - return n.comments -} - -func (n *PropertyFetch) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *PropertyFetch) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/require.go b/node/expr/require.go index 931c3af..43c7199 100644 --- a/node/expr/require.go +++ b/node/expr/require.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Require struct { position *node.Position - comments []comment.Comment Expr node.Node } func NewRequire(Expression node.Node) *Require { return &Require{ - nil, nil, Expression, } @@ -32,15 +29,6 @@ func (n *Require) SetPosition(p *node.Position) node.Node { return n } -func (n *Require) Comments() []comment.Comment { - return n.comments -} - -func (n *Require) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Require) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/require_once.go b/node/expr/require_once.go index 383ffa6..c60965d 100644 --- a/node/expr/require_once.go +++ b/node/expr/require_once.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type RequireOnce struct { position *node.Position - comments []comment.Comment Expr node.Node } func NewRequireOnce(Expression node.Node) *RequireOnce { return &RequireOnce{ - nil, nil, Expression, } @@ -32,15 +29,6 @@ func (n *RequireOnce) SetPosition(p *node.Position) node.Node { return n } -func (n *RequireOnce) Comments() []comment.Comment { - return n.comments -} - -func (n *RequireOnce) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *RequireOnce) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/shell_exec.go b/node/expr/shell_exec.go index 467d7d3..36f54f1 100644 --- a/node/expr/shell_exec.go +++ b/node/expr/shell_exec.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type ShellExec struct { position *node.Position - comments []comment.Comment Parts []node.Node } func NewShellExec(Parts []node.Node) *ShellExec { return &ShellExec{ - nil, nil, Parts, } @@ -32,15 +29,6 @@ func (n *ShellExec) SetPosition(p *node.Position) node.Node { return n } -func (n *ShellExec) Comments() []comment.Comment { - return n.comments -} - -func (n *ShellExec) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *ShellExec) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/short_array.go b/node/expr/short_array.go index 3e3c312..81714e9 100644 --- a/node/expr/short_array.go +++ b/node/expr/short_array.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type ShortArray struct { position *node.Position - comments []comment.Comment Items []node.Node } func NewShortArray(Items []node.Node) *ShortArray { return &ShortArray{ - nil, nil, Items, } @@ -32,15 +29,6 @@ func (n *ShortArray) SetPosition(p *node.Position) node.Node { return n } -func (n *ShortArray) Comments() []comment.Comment { - return n.comments -} - -func (n *ShortArray) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *ShortArray) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/short_list.go b/node/expr/short_list.go index 3a8598a..5948a76 100644 --- a/node/expr/short_list.go +++ b/node/expr/short_list.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type ShortList struct { position *node.Position - comments []comment.Comment Items []node.Node } func NewShortList(Items []node.Node) *ShortList { return &ShortList{ - nil, nil, Items, } @@ -32,15 +29,6 @@ func (n *ShortList) SetPosition(p *node.Position) node.Node { return n } -func (n *ShortList) Comments() []comment.Comment { - return n.comments -} - -func (n *ShortList) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *ShortList) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/static_call.go b/node/expr/static_call.go index c6a9df8..e2e909a 100644 --- a/node/expr/static_call.go +++ b/node/expr/static_call.go @@ -1,13 +1,11 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type StaticCall struct { position *node.Position - comments []comment.Comment Class node.Node Call node.Node Arguments []node.Node @@ -15,7 +13,6 @@ type StaticCall struct { func NewStaticCall(Class node.Node, Call node.Node, Arguments []node.Node) *StaticCall { return &StaticCall{ - nil, nil, Class, Call, @@ -36,15 +33,6 @@ func (n *StaticCall) SetPosition(p *node.Position) node.Node { return n } -func (n *StaticCall) Comments() []comment.Comment { - return n.comments -} - -func (n *StaticCall) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *StaticCall) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/static_property_fetch.go b/node/expr/static_property_fetch.go index 6e8a7ae..4c665f5 100644 --- a/node/expr/static_property_fetch.go +++ b/node/expr/static_property_fetch.go @@ -1,20 +1,17 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type StaticPropertyFetch struct { position *node.Position - comments []comment.Comment Class node.Node Property node.Node } func NewStaticPropertyFetch(Class node.Node, Property node.Node) *StaticPropertyFetch { return &StaticPropertyFetch{ - nil, nil, Class, Property, @@ -34,15 +31,6 @@ func (n *StaticPropertyFetch) SetPosition(p *node.Position) node.Node { return n } -func (n *StaticPropertyFetch) Comments() []comment.Comment { - return n.comments -} - -func (n *StaticPropertyFetch) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *StaticPropertyFetch) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/ternary.go b/node/expr/ternary.go index fe8a102..f059810 100644 --- a/node/expr/ternary.go +++ b/node/expr/ternary.go @@ -1,13 +1,11 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Ternary struct { position *node.Position - comments []comment.Comment Condition node.Node IfTrue node.Node IfFalse node.Node @@ -15,7 +13,6 @@ type Ternary struct { func NewTernary(Condition node.Node, IfTrue node.Node, IfFalse node.Node) *Ternary { return &Ternary{ - nil, nil, Condition, IfTrue, @@ -36,15 +33,6 @@ func (n *Ternary) SetPosition(p *node.Position) node.Node { return n } -func (n *Ternary) Comments() []comment.Comment { - return n.comments -} - -func (n *Ternary) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Ternary) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/unary_minus.go b/node/expr/unary_minus.go index d349b76..84bafdb 100644 --- a/node/expr/unary_minus.go +++ b/node/expr/unary_minus.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type UnaryMinus struct { position *node.Position - comments []comment.Comment Expr node.Node } func NewUnaryMinus(Expression node.Node) *UnaryMinus { return &UnaryMinus{ - nil, nil, Expression, } @@ -32,15 +29,6 @@ func (n *UnaryMinus) SetPosition(p *node.Position) node.Node { return n } -func (n *UnaryMinus) Comments() []comment.Comment { - return n.comments -} - -func (n *UnaryMinus) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *UnaryMinus) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/unary_plus.go b/node/expr/unary_plus.go index c56606c..bceef81 100644 --- a/node/expr/unary_plus.go +++ b/node/expr/unary_plus.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type UnaryPlus struct { position *node.Position - comments []comment.Comment Expr node.Node } func NewUnaryPlus(Expression node.Node) *UnaryPlus { return &UnaryPlus{ - nil, nil, Expression, } @@ -32,15 +29,6 @@ func (n *UnaryPlus) SetPosition(p *node.Position) node.Node { return n } -func (n *UnaryPlus) Comments() []comment.Comment { - return n.comments -} - -func (n *UnaryPlus) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *UnaryPlus) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/variable.go b/node/expr/variable.go index 6e60063..fdcb941 100644 --- a/node/expr/variable.go +++ b/node/expr/variable.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Variable struct { position *node.Position - comments []comment.Comment VarName node.Node } func NewVariable(VarName node.Node) *Variable { return &Variable{ - nil, nil, VarName, } @@ -32,15 +29,6 @@ func (n *Variable) SetPosition(p *node.Position) node.Node { return n } -func (n *Variable) Comments() []comment.Comment { - return n.comments -} - -func (n *Variable) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Variable) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/yield.go b/node/expr/yield.go index 8a7b71e..f84dbfd 100644 --- a/node/expr/yield.go +++ b/node/expr/yield.go @@ -1,20 +1,17 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Yield struct { position *node.Position - comments []comment.Comment Key node.Node Value node.Node } func NewYield(Key node.Node, Value node.Node) *Yield { return &Yield{ - nil, nil, Key, Value, @@ -34,15 +31,6 @@ func (n *Yield) SetPosition(p *node.Position) node.Node { return n } -func (n *Yield) Comments() []comment.Comment { - return n.comments -} - -func (n *Yield) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Yield) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/expr/yield_from.go b/node/expr/yield_from.go index 79ae29d..9c946bf 100644 --- a/node/expr/yield_from.go +++ b/node/expr/yield_from.go @@ -1,19 +1,16 @@ package expr import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type YieldFrom struct { position *node.Position - comments []comment.Comment Expr node.Node } func NewYieldFrom(Expression node.Node) *YieldFrom { return &YieldFrom{ - nil, nil, Expression, } @@ -32,15 +29,6 @@ func (n *YieldFrom) SetPosition(p *node.Position) node.Node { return n } -func (n *YieldFrom) Comments() []comment.Comment { - return n.comments -} - -func (n *YieldFrom) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *YieldFrom) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/identifier.go b/node/identifier.go index 1ee4483..c223dcb 100644 --- a/node/identifier.go +++ b/node/identifier.go @@ -1,16 +1,12 @@ package node -import "github.com/z7zmey/php-parser/comment" - type Identifier struct { position *Position - comments []comment.Comment Value string } func NewIdentifier(Value string) *Identifier { return &Identifier{ - nil, nil, Value, } @@ -31,15 +27,6 @@ func (n *Identifier) SetPosition(p *Position) Node { return n } -func (n *Identifier) Comments() []comment.Comment { - return n.comments -} - -func (n *Identifier) SetComments(c []comment.Comment) Node { - n.comments = c - return n -} - func (n *Identifier) Walk(v Visitor) { if v.EnterNode(n) == false { return diff --git a/node/name/fully_qualified.go b/node/name/fully_qualified.go index 1eddde1..8fb28aa 100644 --- a/node/name/fully_qualified.go +++ b/node/name/fully_qualified.go @@ -11,7 +11,6 @@ type FullyQualified struct { func NewFullyQualified(Parts []node.Node) *FullyQualified { return &FullyQualified{ Name{ - nil, nil, Parts, }, diff --git a/node/name/name.go b/node/name/name.go index 2305c4a..881ac57 100644 --- a/node/name/name.go +++ b/node/name/name.go @@ -1,19 +1,16 @@ package name import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Name struct { position *node.Position - comments []comment.Comment Parts []node.Node } func NewName(Parts []node.Node) *Name { return &Name{ - nil, nil, Parts, } @@ -32,15 +29,6 @@ func (n *Name) SetPosition(p *node.Position) node.Node { return n } -func (n *Name) Comments() []comment.Comment { - return n.comments -} - -func (n *Name) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Name) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/name/name_part.go b/node/name/name_part.go index 31f05df..172d99d 100644 --- a/node/name/name_part.go +++ b/node/name/name_part.go @@ -1,19 +1,16 @@ package name import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type NamePart struct { position *node.Position - comments []comment.Comment Value string } func NewNamePart(Value string) *NamePart { return &NamePart{ - nil, nil, Value, } @@ -34,15 +31,6 @@ func (n *NamePart) SetPosition(p *node.Position) node.Node { return n } -func (n *NamePart) Comments() []comment.Comment { - return n.comments -} - -func (n *NamePart) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *NamePart) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/name/relative.go b/node/name/relative.go index 720307d..ae1846a 100644 --- a/node/name/relative.go +++ b/node/name/relative.go @@ -11,7 +11,6 @@ type Relative struct { func NewRelative(Parts []node.Node) *Relative { return &Relative{ Name{ - nil, nil, Parts, }, diff --git a/node/node.go b/node/node.go index 9801848..3698cf2 100644 --- a/node/node.go +++ b/node/node.go @@ -1,20 +1,13 @@ package node import "fmt" -import "github.com/z7zmey/php-parser/comment" type Node interface { Positioner - Commenter Attributes() map[string]interface{} Walk(v Visitor) } -type Commenter interface { - Comments() []comment.Comment - SetComments([]comment.Comment) Node -} - type Positioner interface { Position() *Position SetPosition(p *Position) Node diff --git a/node/nullable.go b/node/nullable.go index 9865282..7cec52a 100644 --- a/node/nullable.go +++ b/node/nullable.go @@ -1,16 +1,12 @@ package node -import "github.com/z7zmey/php-parser/comment" - type Nullable struct { position *Position - comments []comment.Comment Expr Node } func NewNullable(Expression Node) *Nullable { return &Nullable{ - nil, nil, Expression, } @@ -29,15 +25,6 @@ func (n *Nullable) SetPosition(p *Position) Node { return n } -func (n *Nullable) Comments() []comment.Comment { - return n.comments -} - -func (n *Nullable) SetComments(c []comment.Comment) Node { - n.comments = c - return n -} - func (n *Nullable) Walk(v Visitor) { if v.EnterNode(n) == false { return diff --git a/node/parameter.go b/node/parameter.go index a37911c..4005753 100644 --- a/node/parameter.go +++ b/node/parameter.go @@ -1,10 +1,7 @@ package node -import "github.com/z7zmey/php-parser/comment" - type Parameter struct { position *Position - comments []comment.Comment ByRef bool Variadic bool VariableType Node @@ -14,7 +11,6 @@ type Parameter struct { func NewParameter(VariableType Node, Variable Node, DefaultValue Node, ByRef bool, Variadic bool) *Parameter { return &Parameter{ - nil, nil, ByRef, Variadic, @@ -40,15 +36,6 @@ func (n *Parameter) SetPosition(p *Position) Node { return n } -func (n *Parameter) Comments() []comment.Comment { - return n.comments -} - -func (n *Parameter) SetComments(c []comment.Comment) Node { - n.comments = c - return n -} - func (n *Parameter) Walk(v Visitor) { if v.EnterNode(n) == false { return diff --git a/node/scalar/dnumber.go b/node/scalar/dnumber.go index 0f47576..4fffe32 100644 --- a/node/scalar/dnumber.go +++ b/node/scalar/dnumber.go @@ -1,19 +1,16 @@ package scalar import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Dnumber struct { position *node.Position - comments []comment.Comment Value string } func NewDnumber(Value string) *Dnumber { return &Dnumber{ - nil, nil, Value, } @@ -34,15 +31,6 @@ func (n *Dnumber) SetPosition(p *node.Position) node.Node { return n } -func (n *Dnumber) Comments() []comment.Comment { - return n.comments -} - -func (n *Dnumber) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Dnumber) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/scalar/encapsed.go b/node/scalar/encapsed.go index eb3b86d..e63c941 100644 --- a/node/scalar/encapsed.go +++ b/node/scalar/encapsed.go @@ -1,19 +1,16 @@ package scalar import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Encapsed struct { position *node.Position - comments []comment.Comment Parts []node.Node } func NewEncapsed(Parts []node.Node) *Encapsed { return &Encapsed{ - nil, nil, Parts, } @@ -32,15 +29,6 @@ func (n *Encapsed) SetPosition(p *node.Position) node.Node { return n } -func (n *Encapsed) Comments() []comment.Comment { - return n.comments -} - -func (n *Encapsed) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Encapsed) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/scalar/encapsed_string_part.go b/node/scalar/encapsed_string_part.go index cad6f3e..7112c12 100644 --- a/node/scalar/encapsed_string_part.go +++ b/node/scalar/encapsed_string_part.go @@ -1,19 +1,16 @@ package scalar import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type EncapsedStringPart struct { position *node.Position - comments []comment.Comment Value string } func NewEncapsedStringPart(Value string) *EncapsedStringPart { return &EncapsedStringPart{ - nil, nil, Value, } @@ -34,15 +31,6 @@ func (n *EncapsedStringPart) SetPosition(p *node.Position) node.Node { return n } -func (n *EncapsedStringPart) Comments() []comment.Comment { - return n.comments -} - -func (n *EncapsedStringPart) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *EncapsedStringPart) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/scalar/lnumber.go b/node/scalar/lnumber.go index 6609fb8..70a79f8 100644 --- a/node/scalar/lnumber.go +++ b/node/scalar/lnumber.go @@ -1,19 +1,16 @@ package scalar import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Lnumber struct { position *node.Position - comments []comment.Comment Value string } func NewLnumber(Value string) *Lnumber { return &Lnumber{ - nil, nil, Value, } @@ -34,15 +31,6 @@ func (n *Lnumber) SetPosition(p *node.Position) node.Node { return n } -func (n *Lnumber) Comments() []comment.Comment { - return n.comments -} - -func (n *Lnumber) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Lnumber) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/scalar/magic_constant.go b/node/scalar/magic_constant.go index b27fbb2..8eafe9c 100644 --- a/node/scalar/magic_constant.go +++ b/node/scalar/magic_constant.go @@ -1,19 +1,16 @@ package scalar import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type MagicConstant struct { position *node.Position - comments []comment.Comment Value string } func NewMagicConstant(Value string) *MagicConstant { return &MagicConstant{ - nil, nil, Value, } @@ -34,15 +31,6 @@ func (n *MagicConstant) SetPosition(p *node.Position) node.Node { return n } -func (n *MagicConstant) Comments() []comment.Comment { - return n.comments -} - -func (n *MagicConstant) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *MagicConstant) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/scalar/string.go b/node/scalar/string.go index 21c6abe..5134231 100644 --- a/node/scalar/string.go +++ b/node/scalar/string.go @@ -1,19 +1,16 @@ package scalar import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type String struct { position *node.Position - comments []comment.Comment Value string } func NewString(Value string) *String { return &String{ - nil, nil, Value, } @@ -34,15 +31,6 @@ func (n *String) SetPosition(p *node.Position) node.Node { return n } -func (n *String) Comments() []comment.Comment { - return n.comments -} - -func (n *String) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *String) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/alt_else.go b/node/stmt/alt_else.go index e78f243..168d13f 100644 --- a/node/stmt/alt_else.go +++ b/node/stmt/alt_else.go @@ -1,19 +1,16 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type AltElse struct { position *node.Position - comments []comment.Comment Stmt node.Node } func NewAltElse(Stmt node.Node) *AltElse { return &AltElse{ - nil, nil, Stmt, } @@ -32,15 +29,6 @@ func (n *AltElse) SetPosition(p *node.Position) node.Node { return n } -func (n *AltElse) Comments() []comment.Comment { - return n.comments -} - -func (n *AltElse) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *AltElse) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/alt_else_if.go b/node/stmt/alt_else_if.go index ff47d09..51bb401 100644 --- a/node/stmt/alt_else_if.go +++ b/node/stmt/alt_else_if.go @@ -1,20 +1,17 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type AltElseIf struct { position *node.Position - comments []comment.Comment Cond node.Node Stmt node.Node } func NewAltElseIf(Cond node.Node, Stmt node.Node) *AltElseIf { return &AltElseIf{ - nil, nil, Cond, Stmt, @@ -34,15 +31,6 @@ func (n *AltElseIf) SetPosition(p *node.Position) node.Node { return n } -func (n *AltElseIf) Comments() []comment.Comment { - return n.comments -} - -func (n *AltElseIf) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *AltElseIf) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/alt_if.go b/node/stmt/alt_if.go index 1d34ebc..0222990 100644 --- a/node/stmt/alt_if.go +++ b/node/stmt/alt_if.go @@ -1,13 +1,11 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type AltIf struct { position *node.Position - comments []comment.Comment Cond node.Node Stmt node.Node ElseIf []node.Node @@ -16,7 +14,6 @@ type AltIf struct { func NewAltIf(Cond node.Node, Stmt node.Node) *AltIf { return &AltIf{ - nil, nil, Cond, Stmt, @@ -38,15 +35,6 @@ func (n *AltIf) SetPosition(p *node.Position) node.Node { return n } -func (n *AltIf) Comments() []comment.Comment { - return n.comments -} - -func (n *AltIf) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *AltIf) AddElseIf(ElseIf node.Node) node.Node { if n.ElseIf == nil { n.ElseIf = make([]node.Node, 0) diff --git a/node/stmt/break.go b/node/stmt/break.go index 5efef6d..09e2322 100644 --- a/node/stmt/break.go +++ b/node/stmt/break.go @@ -1,19 +1,16 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Break struct { position *node.Position - comments []comment.Comment Expr node.Node } func NewBreak(Expr node.Node) *Break { return &Break{ - nil, nil, Expr, } @@ -32,15 +29,6 @@ func (n *Break) SetPosition(p *node.Position) node.Node { return n } -func (n *Break) Comments() []comment.Comment { - return n.comments -} - -func (n *Break) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Break) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/case.go b/node/stmt/case.go index 73ea4d2..c2d6df3 100644 --- a/node/stmt/case.go +++ b/node/stmt/case.go @@ -1,20 +1,17 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Case struct { position *node.Position - comments []comment.Comment Cond node.Node Stmts []node.Node } func NewCase(Cond node.Node, Stmts []node.Node) *Case { return &Case{ - nil, nil, Cond, Stmts, @@ -34,15 +31,6 @@ func (n *Case) SetPosition(p *node.Position) node.Node { return n } -func (n *Case) Comments() []comment.Comment { - return n.comments -} - -func (n *Case) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Case) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/catch.go b/node/stmt/catch.go index 41ba70f..6f9caac 100644 --- a/node/stmt/catch.go +++ b/node/stmt/catch.go @@ -1,13 +1,11 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Catch struct { position *node.Position - comments []comment.Comment Types []node.Node Variable node.Node Stmts []node.Node @@ -15,7 +13,6 @@ type Catch struct { func NewCatch(Types []node.Node, Variable node.Node, Stmts []node.Node) *Catch { return &Catch{ - nil, nil, Types, Variable, @@ -36,15 +33,6 @@ func (n *Catch) SetPosition(p *node.Position) node.Node { return n } -func (n *Catch) Comments() []comment.Comment { - return n.comments -} - -func (n *Catch) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Catch) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/class.go b/node/stmt/class.go index 289f44f..5571000 100644 --- a/node/stmt/class.go +++ b/node/stmt/class.go @@ -1,13 +1,11 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Class struct { position *node.Position - comments []comment.Comment PhpDocComment string ClassName node.Node Modifiers []node.Node @@ -19,7 +17,6 @@ type Class struct { func NewClass(ClassName node.Node, Modifiers []node.Node, args []node.Node, Extends node.Node, Implements []node.Node, Stmts []node.Node, PhpDocComment string) *Class { return &Class{ - nil, nil, PhpDocComment, ClassName, @@ -46,15 +43,6 @@ func (n *Class) SetPosition(p *node.Position) node.Node { return n } -func (n *Class) Comments() []comment.Comment { - return n.comments -} - -func (n *Class) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Class) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/class_const_list.go b/node/stmt/class_const_list.go index 4a4baf0..b813efb 100644 --- a/node/stmt/class_const_list.go +++ b/node/stmt/class_const_list.go @@ -1,20 +1,17 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type ClassConstList struct { position *node.Position - comments []comment.Comment Modifiers []node.Node Consts []node.Node } func NewClassConstList(Modifiers []node.Node, Consts []node.Node) *ClassConstList { return &ClassConstList{ - nil, nil, Modifiers, Consts, @@ -34,15 +31,6 @@ func (n *ClassConstList) SetPosition(p *node.Position) node.Node { return n } -func (n *ClassConstList) Comments() []comment.Comment { - return n.comments -} - -func (n *ClassConstList) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *ClassConstList) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/class_method.go b/node/stmt/class_method.go index 214e418..d718218 100644 --- a/node/stmt/class_method.go +++ b/node/stmt/class_method.go @@ -1,13 +1,11 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type ClassMethod struct { position *node.Position - comments []comment.Comment ReturnsRef bool PhpDocComment string MethodName node.Node @@ -19,7 +17,6 @@ type ClassMethod struct { func NewClassMethod(MethodName node.Node, Modifiers []node.Node, ReturnsRef bool, Params []node.Node, ReturnType node.Node, Stmts []node.Node, PhpDocComment string) *ClassMethod { return &ClassMethod{ - nil, nil, ReturnsRef, PhpDocComment, @@ -47,15 +44,6 @@ func (n *ClassMethod) SetPosition(p *node.Position) node.Node { return n } -func (n *ClassMethod) Comments() []comment.Comment { - return n.comments -} - -func (n *ClassMethod) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *ClassMethod) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/const_list.go b/node/stmt/const_list.go index 316a569..0c9d99c 100644 --- a/node/stmt/const_list.go +++ b/node/stmt/const_list.go @@ -1,19 +1,16 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type ConstList struct { position *node.Position - comments []comment.Comment Consts []node.Node } func NewConstList(Consts []node.Node) *ConstList { return &ConstList{ - nil, nil, Consts, } @@ -32,15 +29,6 @@ func (n *ConstList) SetPosition(p *node.Position) node.Node { return n } -func (n *ConstList) Comments() []comment.Comment { - return n.comments -} - -func (n *ConstList) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *ConstList) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/constant.go b/node/stmt/constant.go index 254deb0..1615688 100644 --- a/node/stmt/constant.go +++ b/node/stmt/constant.go @@ -1,13 +1,11 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Constant struct { position *node.Position - comments []comment.Comment PhpDocComment string ConstantName node.Node Expr node.Node @@ -15,7 +13,6 @@ type Constant struct { func NewConstant(ConstantName node.Node, Expr node.Node, PhpDocComment string) *Constant { return &Constant{ - nil, nil, PhpDocComment, ConstantName, @@ -38,15 +35,6 @@ func (n *Constant) SetPosition(p *node.Position) node.Node { return n } -func (n *Constant) Comments() []comment.Comment { - return n.comments -} - -func (n *Constant) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Constant) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/continue.go b/node/stmt/continue.go index 1323018..6a1e202 100644 --- a/node/stmt/continue.go +++ b/node/stmt/continue.go @@ -1,19 +1,16 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Continue struct { position *node.Position - comments []comment.Comment Expr node.Node } func NewContinue(Expr node.Node) *Continue { return &Continue{ - nil, nil, Expr, } @@ -32,15 +29,6 @@ func (n *Continue) SetPosition(p *node.Position) node.Node { return n } -func (n *Continue) Comments() []comment.Comment { - return n.comments -} - -func (n *Continue) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Continue) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/declare.go b/node/stmt/declare.go index 4b192e7..fa1a624 100644 --- a/node/stmt/declare.go +++ b/node/stmt/declare.go @@ -1,20 +1,17 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Declare struct { position *node.Position - comments []comment.Comment Consts []node.Node Stmt node.Node } func NewDeclare(Consts []node.Node, Stmt node.Node) *Declare { return &Declare{ - nil, nil, Consts, Stmt, @@ -34,15 +31,6 @@ func (n *Declare) SetPosition(p *node.Position) node.Node { return n } -func (n *Declare) Comments() []comment.Comment { - return n.comments -} - -func (n *Declare) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Declare) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/default.go b/node/stmt/default.go index 300548c..a4b60ed 100644 --- a/node/stmt/default.go +++ b/node/stmt/default.go @@ -1,19 +1,16 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Default struct { position *node.Position - comments []comment.Comment Stmts []node.Node } func NewDefault(Stmts []node.Node) *Default { return &Default{ - nil, nil, Stmts, } @@ -32,15 +29,6 @@ func (n *Default) SetPosition(p *node.Position) node.Node { return n } -func (n *Default) Comments() []comment.Comment { - return n.comments -} - -func (n *Default) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Default) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/do.go b/node/stmt/do.go index 959b60e..fb3650a 100644 --- a/node/stmt/do.go +++ b/node/stmt/do.go @@ -1,20 +1,17 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Do struct { position *node.Position - comments []comment.Comment Stmt node.Node Cond node.Node } func NewDo(Stmt node.Node, Cond node.Node) *Do { return &Do{ - nil, nil, Stmt, Cond, @@ -34,15 +31,6 @@ func (n *Do) SetPosition(p *node.Position) node.Node { return n } -func (n *Do) Comments() []comment.Comment { - return n.comments -} - -func (n *Do) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Do) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/echo.go b/node/stmt/echo.go index 3e00e4b..9885297 100644 --- a/node/stmt/echo.go +++ b/node/stmt/echo.go @@ -1,19 +1,16 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Echo struct { position *node.Position - comments []comment.Comment Exprs []node.Node } func NewEcho(Exprs []node.Node) *Echo { return &Echo{ - nil, nil, Exprs, } @@ -32,15 +29,6 @@ func (n *Echo) SetPosition(p *node.Position) node.Node { return n } -func (n *Echo) Comments() []comment.Comment { - return n.comments -} - -func (n *Echo) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Echo) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/else.go b/node/stmt/else.go index 5bbebff..ac17354 100644 --- a/node/stmt/else.go +++ b/node/stmt/else.go @@ -1,19 +1,16 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Else struct { position *node.Position - comments []comment.Comment Stmt node.Node } func NewElse(Stmt node.Node) *Else { return &Else{ - nil, nil, Stmt, } @@ -32,15 +29,6 @@ func (n *Else) SetPosition(p *node.Position) node.Node { return n } -func (n *Else) Comments() []comment.Comment { - return n.comments -} - -func (n *Else) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Else) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/else_if.go b/node/stmt/else_if.go index b7e559b..0284fdf 100644 --- a/node/stmt/else_if.go +++ b/node/stmt/else_if.go @@ -1,20 +1,17 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type ElseIf struct { position *node.Position - comments []comment.Comment Cond node.Node Stmt node.Node } func NewElseIf(Cond node.Node, Stmt node.Node) *ElseIf { return &ElseIf{ - nil, nil, Cond, Stmt, @@ -34,15 +31,6 @@ func (n *ElseIf) SetPosition(p *node.Position) node.Node { return n } -func (n *ElseIf) Comments() []comment.Comment { - return n.comments -} - -func (n *ElseIf) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *ElseIf) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/expression.go b/node/stmt/expression.go index 8abba0a..0306180 100644 --- a/node/stmt/expression.go +++ b/node/stmt/expression.go @@ -1,19 +1,16 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Expression struct { position *node.Position - comments []comment.Comment Expr node.Node } func NewExpression(Expr node.Node) *Expression { return &Expression{ - nil, nil, Expr, } @@ -32,15 +29,6 @@ func (n *Expression) SetPosition(p *node.Position) node.Node { return n } -func (n *Expression) Comments() []comment.Comment { - return n.comments -} - -func (n *Expression) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Expression) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/finally.go b/node/stmt/finally.go index 31c1fbe..6c8dc12 100644 --- a/node/stmt/finally.go +++ b/node/stmt/finally.go @@ -1,19 +1,16 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Finally struct { position *node.Position - comments []comment.Comment Stmts []node.Node } func NewFinally(Stmts []node.Node) *Finally { return &Finally{ - nil, nil, Stmts, } @@ -32,15 +29,6 @@ func (n *Finally) SetPosition(p *node.Position) node.Node { return n } -func (n *Finally) Comments() []comment.Comment { - return n.comments -} - -func (n *Finally) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Finally) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/for.go b/node/stmt/for.go index 736b14b..101f985 100644 --- a/node/stmt/for.go +++ b/node/stmt/for.go @@ -1,13 +1,11 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type For struct { position *node.Position - comments []comment.Comment Init []node.Node Cond []node.Node Loop []node.Node @@ -16,7 +14,6 @@ type For struct { func NewFor(Init []node.Node, Cond []node.Node, Loop []node.Node, Stmt node.Node) *For { return &For{ - nil, nil, Init, Cond, @@ -38,15 +35,6 @@ func (n *For) SetPosition(p *node.Position) node.Node { return n } -func (n *For) Comments() []comment.Comment { - return n.comments -} - -func (n *For) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *For) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/foreach.go b/node/stmt/foreach.go index fe1bdf7..1fe0133 100644 --- a/node/stmt/foreach.go +++ b/node/stmt/foreach.go @@ -1,13 +1,11 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Foreach struct { position *node.Position - comments []comment.Comment ByRef bool Expr node.Node Key node.Node @@ -17,7 +15,6 @@ type Foreach struct { func NewForeach(Expr node.Node, Key node.Node, Variable node.Node, Stmt node.Node, ByRef bool) *Foreach { return &Foreach{ - nil, nil, ByRef, Expr, @@ -42,15 +39,6 @@ func (n *Foreach) SetPosition(p *node.Position) node.Node { return n } -func (n *Foreach) Comments() []comment.Comment { - return n.comments -} - -func (n *Foreach) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Foreach) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/function.go b/node/stmt/function.go index 87b8476..3969da8 100644 --- a/node/stmt/function.go +++ b/node/stmt/function.go @@ -1,13 +1,11 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Function struct { position *node.Position - comments []comment.Comment ReturnsRef bool PhpDocComment string FunctionName node.Node @@ -18,7 +16,6 @@ type Function struct { func NewFunction(FunctionName node.Node, ReturnsRef bool, Params []node.Node, ReturnType node.Node, Stmts []node.Node, PhpDocComment string) *Function { return &Function{ - nil, nil, ReturnsRef, PhpDocComment, @@ -46,15 +43,6 @@ func (n *Function) SetPosition(p *node.Position) node.Node { return n } -func (n *Function) Comments() []comment.Comment { - return n.comments -} - -func (n *Function) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Function) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/global.go b/node/stmt/global.go index 8cd38d2..035ff6e 100644 --- a/node/stmt/global.go +++ b/node/stmt/global.go @@ -1,19 +1,16 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Global struct { position *node.Position - comments []comment.Comment Vars []node.Node } func NewGlobal(Vars []node.Node) *Global { return &Global{ - nil, nil, Vars, } @@ -32,15 +29,6 @@ func (n *Global) SetPosition(p *node.Position) node.Node { return n } -func (n *Global) Comments() []comment.Comment { - return n.comments -} - -func (n *Global) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Global) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/goto.go b/node/stmt/goto.go index 83f6dba..a6cb495 100644 --- a/node/stmt/goto.go +++ b/node/stmt/goto.go @@ -1,19 +1,16 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Goto struct { position *node.Position - comments []comment.Comment Label node.Node } func NewGoto(Label node.Node) *Goto { return &Goto{ - nil, nil, Label, } @@ -32,15 +29,6 @@ func (n *Goto) SetPosition(p *node.Position) node.Node { return n } -func (n *Goto) Comments() []comment.Comment { - return n.comments -} - -func (n *Goto) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Goto) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/group_use.go b/node/stmt/group_use.go index ea12401..d0891fd 100644 --- a/node/stmt/group_use.go +++ b/node/stmt/group_use.go @@ -1,13 +1,11 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type GroupUse struct { position *node.Position - comments []comment.Comment UseType node.Node pRefix node.Node UseList []node.Node @@ -15,7 +13,6 @@ type GroupUse struct { func NewGroupUse(UseType node.Node, pRefix node.Node, UseList []node.Node) *GroupUse { return &GroupUse{ - nil, nil, UseType, pRefix, @@ -36,15 +33,6 @@ func (n *GroupUse) SetPosition(p *node.Position) node.Node { return n } -func (n *GroupUse) Comments() []comment.Comment { - return n.comments -} - -func (n *GroupUse) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *GroupUse) SetUseType(UseType node.Node) node.Node { n.UseType = UseType return n diff --git a/node/stmt/halt_compiler.go b/node/stmt/halt_compiler.go index 609b4c0..c94c168 100644 --- a/node/stmt/halt_compiler.go +++ b/node/stmt/halt_compiler.go @@ -1,19 +1,16 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type HaltCompiler struct { position *node.Position - comments []comment.Comment } func NewHaltCompiler() *HaltCompiler { return &HaltCompiler{ nil, - nil, } } @@ -30,15 +27,6 @@ func (n *HaltCompiler) SetPosition(p *node.Position) node.Node { return n } -func (n *HaltCompiler) Comments() []comment.Comment { - return n.comments -} - -func (n *HaltCompiler) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *HaltCompiler) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/if.go b/node/stmt/if.go index bbfc75d..c9c78c4 100644 --- a/node/stmt/if.go +++ b/node/stmt/if.go @@ -1,13 +1,11 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type If struct { position *node.Position - comments []comment.Comment Cond node.Node Stmt node.Node ElseIf []node.Node @@ -16,7 +14,6 @@ type If struct { func NewIf(Cond node.Node, Stmt node.Node) *If { return &If{ - nil, nil, Cond, Stmt, @@ -38,15 +35,6 @@ func (n *If) SetPosition(p *node.Position) node.Node { return n } -func (n *If) Comments() []comment.Comment { - return n.comments -} - -func (n *If) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *If) AddElseIf(ElseIf node.Node) node.Node { if n.ElseIf == nil { n.ElseIf = make([]node.Node, 0) diff --git a/node/stmt/inline_html.go b/node/stmt/inline_html.go index 27fd035..5d0bcf1 100644 --- a/node/stmt/inline_html.go +++ b/node/stmt/inline_html.go @@ -1,19 +1,16 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type InlineHtml struct { position *node.Position - comments []comment.Comment Value string } func NewInlineHtml(Value string) *InlineHtml { return &InlineHtml{ - nil, nil, Value, } @@ -34,15 +31,6 @@ func (n *InlineHtml) SetPosition(p *node.Position) node.Node { return n } -func (n *InlineHtml) Comments() []comment.Comment { - return n.comments -} - -func (n *InlineHtml) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *InlineHtml) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/interface.go b/node/stmt/interface.go index a198e18..7621fd5 100644 --- a/node/stmt/interface.go +++ b/node/stmt/interface.go @@ -1,13 +1,11 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Interface struct { position *node.Position - comments []comment.Comment PhpDocComment string InterfaceName node.Node Extends []node.Node @@ -16,7 +14,6 @@ type Interface struct { func NewInterface(InterfaceName node.Node, Extends []node.Node, Stmts []node.Node, PhpDocComment string) *Interface { return &Interface{ - nil, nil, PhpDocComment, InterfaceName, @@ -40,15 +37,6 @@ func (n *Interface) SetPosition(p *node.Position) node.Node { return n } -func (n *Interface) Comments() []comment.Comment { - return n.comments -} - -func (n *Interface) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Interface) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/label.go b/node/stmt/label.go index 64a53e6..77e64ad 100644 --- a/node/stmt/label.go +++ b/node/stmt/label.go @@ -1,19 +1,16 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Label struct { position *node.Position - comments []comment.Comment LabelName node.Node } func NewLabel(LabelName node.Node) *Label { return &Label{ - nil, nil, LabelName, } @@ -32,15 +29,6 @@ func (n *Label) SetPosition(p *node.Position) node.Node { return n } -func (n *Label) Comments() []comment.Comment { - return n.comments -} - -func (n *Label) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Label) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/namespace.go b/node/stmt/namespace.go index e4272ff..306e7ba 100644 --- a/node/stmt/namespace.go +++ b/node/stmt/namespace.go @@ -1,20 +1,17 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Namespace struct { position *node.Position - comments []comment.Comment NamespaceName node.Node Stmts []node.Node } func NewNamespace(NamespaceName node.Node, Stmts []node.Node) *Namespace { return &Namespace{ - nil, nil, NamespaceName, Stmts, @@ -34,15 +31,6 @@ func (n *Namespace) SetPosition(p *node.Position) node.Node { return n } -func (n *Namespace) Comments() []comment.Comment { - return n.comments -} - -func (n *Namespace) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Namespace) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/nop.go b/node/stmt/nop.go index bc1a63d..ef8f37a 100644 --- a/node/stmt/nop.go +++ b/node/stmt/nop.go @@ -1,19 +1,16 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Nop struct { position *node.Position - comments []comment.Comment } func NewNop() *Nop { return &Nop{ nil, - nil, } } @@ -30,15 +27,6 @@ func (n *Nop) SetPosition(p *node.Position) node.Node { return n } -func (n *Nop) Comments() []comment.Comment { - return n.comments -} - -func (n *Nop) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Nop) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/property.go b/node/stmt/property.go index 6cd6c8c..67f6fd2 100644 --- a/node/stmt/property.go +++ b/node/stmt/property.go @@ -1,13 +1,11 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Property struct { position *node.Position - comments []comment.Comment PhpDocComment string Variable node.Node Expr node.Node @@ -15,7 +13,6 @@ type Property struct { func NewProperty(Variable node.Node, Expr node.Node, PhpDocComment string) *Property { return &Property{ - nil, nil, PhpDocComment, Variable, @@ -37,15 +34,6 @@ func (n *Property) SetPosition(p *node.Position) node.Node { return n } -func (n *Property) Comments() []comment.Comment { - return n.comments -} - -func (n *Property) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Property) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/property_list.go b/node/stmt/property_list.go index 7c97701..4938cbc 100644 --- a/node/stmt/property_list.go +++ b/node/stmt/property_list.go @@ -1,20 +1,17 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type PropertyList struct { position *node.Position - comments []comment.Comment Modifiers []node.Node Properties []node.Node } func NewPropertyList(Modifiers []node.Node, Properties []node.Node) *PropertyList { return &PropertyList{ - nil, nil, Modifiers, Properties, @@ -34,15 +31,6 @@ func (n *PropertyList) SetPosition(p *node.Position) node.Node { return n } -func (n *PropertyList) Comments() []comment.Comment { - return n.comments -} - -func (n *PropertyList) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *PropertyList) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/return.go b/node/stmt/return.go index 2d004de..17ec67c 100644 --- a/node/stmt/return.go +++ b/node/stmt/return.go @@ -1,19 +1,16 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Return struct { position *node.Position - comments []comment.Comment Expr node.Node } func NewReturn(Expr node.Node) *Return { return &Return{ - nil, nil, Expr, } @@ -32,15 +29,6 @@ func (n *Return) SetPosition(p *node.Position) node.Node { return n } -func (n *Return) Comments() []comment.Comment { - return n.comments -} - -func (n *Return) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Return) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/static.go b/node/stmt/static.go index 426b162..d206248 100644 --- a/node/stmt/static.go +++ b/node/stmt/static.go @@ -1,19 +1,16 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Static struct { position *node.Position - comments []comment.Comment Vars []node.Node } func NewStatic(Vars []node.Node) *Static { return &Static{ - nil, nil, Vars, } @@ -32,15 +29,6 @@ func (n *Static) SetPosition(p *node.Position) node.Node { return n } -func (n *Static) Comments() []comment.Comment { - return n.comments -} - -func (n *Static) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Static) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/static_var.go b/node/stmt/static_var.go index 40ed2c2..6a14474 100644 --- a/node/stmt/static_var.go +++ b/node/stmt/static_var.go @@ -1,20 +1,17 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type StaticVar struct { position *node.Position - comments []comment.Comment Variable node.Node Expr node.Node } func NewStaticVar(Variable node.Node, Expr node.Node) *StaticVar { return &StaticVar{ - nil, nil, Variable, Expr, @@ -34,15 +31,6 @@ func (n *StaticVar) SetPosition(p *node.Position) node.Node { return n } -func (n *StaticVar) Comments() []comment.Comment { - return n.comments -} - -func (n *StaticVar) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *StaticVar) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/stmt_list.go b/node/stmt/stmt_list.go index 20fcd2c..4f06048 100644 --- a/node/stmt/stmt_list.go +++ b/node/stmt/stmt_list.go @@ -1,19 +1,16 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type StmtList struct { position *node.Position - comments []comment.Comment Stmts []node.Node } func NewStmtList(Stmts []node.Node) *StmtList { return &StmtList{ - nil, nil, Stmts, } @@ -32,15 +29,6 @@ func (n *StmtList) SetPosition(p *node.Position) node.Node { return n } -func (n *StmtList) Comments() []comment.Comment { - return n.comments -} - -func (n *StmtList) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *StmtList) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/switch.go b/node/stmt/switch.go index 4a062a0..cf580e0 100644 --- a/node/stmt/switch.go +++ b/node/stmt/switch.go @@ -1,14 +1,12 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" "github.com/z7zmey/php-parser/token" ) type Switch struct { position *node.Position - comments []comment.Comment token token.Token Cond node.Node cases []node.Node @@ -16,7 +14,6 @@ type Switch struct { func NewSwitch(token token.Token, Cond node.Node, cases []node.Node) *Switch { return &Switch{ - nil, nil, token, Cond, @@ -37,15 +34,6 @@ func (n *Switch) SetPosition(p *node.Position) node.Node { return n } -func (n *Switch) Comments() []comment.Comment { - return n.comments -} - -func (n *Switch) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Switch) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/throw.go b/node/stmt/throw.go index 115b0ff..8e60952 100644 --- a/node/stmt/throw.go +++ b/node/stmt/throw.go @@ -1,19 +1,16 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Throw struct { position *node.Position - comments []comment.Comment Expr node.Node } func NewThrow(Expr node.Node) *Throw { return &Throw{ - nil, nil, Expr, } @@ -32,15 +29,6 @@ func (n *Throw) SetPosition(p *node.Position) node.Node { return n } -func (n *Throw) Comments() []comment.Comment { - return n.comments -} - -func (n *Throw) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Throw) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/trait.go b/node/stmt/trait.go index 6ac83a8..a415052 100644 --- a/node/stmt/trait.go +++ b/node/stmt/trait.go @@ -1,13 +1,11 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Trait struct { position *node.Position - comments []comment.Comment PhpDocComment string TraitName node.Node Stmts []node.Node @@ -15,7 +13,6 @@ type Trait struct { func NewTrait(TraitName node.Node, Stmts []node.Node, PhpDocComment string) *Trait { return &Trait{ - nil, nil, PhpDocComment, TraitName, @@ -38,15 +35,6 @@ func (n *Trait) SetPosition(p *node.Position) node.Node { return n } -func (n *Trait) Comments() []comment.Comment { - return n.comments -} - -func (n *Trait) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Trait) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/trait_method_ref.go b/node/stmt/trait_method_ref.go index cff0d1b..c6dda1d 100644 --- a/node/stmt/trait_method_ref.go +++ b/node/stmt/trait_method_ref.go @@ -1,20 +1,17 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type TraitMethodRef struct { position *node.Position - comments []comment.Comment Trait node.Node Method node.Node } func NewTraitMethodRef(Trait node.Node, Method node.Node) *TraitMethodRef { return &TraitMethodRef{ - nil, nil, Trait, Method, @@ -34,15 +31,6 @@ func (n *TraitMethodRef) SetPosition(p *node.Position) node.Node { return n } -func (n *TraitMethodRef) Comments() []comment.Comment { - return n.comments -} - -func (n *TraitMethodRef) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *TraitMethodRef) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/trait_use.go b/node/stmt/trait_use.go index 70bfed1..f930aa9 100644 --- a/node/stmt/trait_use.go +++ b/node/stmt/trait_use.go @@ -1,20 +1,17 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type TraitUse struct { position *node.Position - comments []comment.Comment Traits []node.Node Adaptations []node.Node } func NewTraitUse(Traits []node.Node, Adaptations []node.Node) *TraitUse { return &TraitUse{ - nil, nil, Traits, Adaptations, @@ -34,15 +31,6 @@ func (n *TraitUse) SetPosition(p *node.Position) node.Node { return n } -func (n *TraitUse) Comments() []comment.Comment { - return n.comments -} - -func (n *TraitUse) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *TraitUse) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/trait_use_alias.go b/node/stmt/trait_use_alias.go index bab8bd3..5244845 100644 --- a/node/stmt/trait_use_alias.go +++ b/node/stmt/trait_use_alias.go @@ -1,13 +1,11 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type TraitUseAlias struct { position *node.Position - comments []comment.Comment Ref node.Node Modifier node.Node Alias node.Node @@ -15,7 +13,6 @@ type TraitUseAlias struct { func NewTraitUseAlias(Ref node.Node, Modifier node.Node, Alias node.Node) *TraitUseAlias { return &TraitUseAlias{ - nil, nil, Ref, Modifier, @@ -36,15 +33,6 @@ func (n *TraitUseAlias) SetPosition(p *node.Position) node.Node { return n } -func (n *TraitUseAlias) Comments() []comment.Comment { - return n.comments -} - -func (n *TraitUseAlias) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *TraitUseAlias) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/trait_use_precedence.go b/node/stmt/trait_use_precedence.go index 31d2f62..f022207 100644 --- a/node/stmt/trait_use_precedence.go +++ b/node/stmt/trait_use_precedence.go @@ -1,20 +1,17 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type TraitUsePrecedence struct { position *node.Position - comments []comment.Comment Ref node.Node Insteadof node.Node } func NewTraitUsePrecedence(Ref node.Node, Insteadof node.Node) *TraitUsePrecedence { return &TraitUsePrecedence{ - nil, nil, Ref, Insteadof, @@ -34,15 +31,6 @@ func (n *TraitUsePrecedence) SetPosition(p *node.Position) node.Node { return n } -func (n *TraitUsePrecedence) Comments() []comment.Comment { - return n.comments -} - -func (n *TraitUsePrecedence) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *TraitUsePrecedence) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/try.go b/node/stmt/try.go index 5d1de57..6e80db5 100644 --- a/node/stmt/try.go +++ b/node/stmt/try.go @@ -1,13 +1,11 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Try struct { position *node.Position - comments []comment.Comment Stmts []node.Node Catches []node.Node Finally node.Node @@ -15,7 +13,6 @@ type Try struct { func NewTry(Stmts []node.Node, Catches []node.Node, Finally node.Node) *Try { return &Try{ - nil, nil, Stmts, Catches, @@ -36,15 +33,6 @@ func (n *Try) SetPosition(p *node.Position) node.Node { return n } -func (n *Try) Comments() []comment.Comment { - return n.comments -} - -func (n *Try) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Try) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/unset.go b/node/stmt/unset.go index a654235..946f1d4 100644 --- a/node/stmt/unset.go +++ b/node/stmt/unset.go @@ -1,19 +1,16 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Unset struct { position *node.Position - comments []comment.Comment Vars []node.Node } func NewUnset(Vars []node.Node) *Unset { return &Unset{ - nil, nil, Vars, } @@ -32,15 +29,6 @@ func (n *Unset) SetPosition(p *node.Position) node.Node { return n } -func (n *Unset) Comments() []comment.Comment { - return n.comments -} - -func (n *Unset) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Unset) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/use.go b/node/stmt/use.go index ccc00f3..301f6ba 100644 --- a/node/stmt/use.go +++ b/node/stmt/use.go @@ -1,13 +1,11 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type Use struct { position *node.Position - comments []comment.Comment UseType node.Node Use node.Node Alias node.Node @@ -15,7 +13,6 @@ type Use struct { func NewUse(UseType node.Node, use node.Node, Alias node.Node) *Use { return &Use{ - nil, nil, UseType, use, @@ -36,15 +33,6 @@ func (n *Use) SetPosition(p *node.Position) node.Node { return n } -func (n *Use) Comments() []comment.Comment { - return n.comments -} - -func (n *Use) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *Use) SetUseType(UseType node.Node) node.Node { n.UseType = UseType return n diff --git a/node/stmt/use_list.go b/node/stmt/use_list.go index 078bc47..44933da 100644 --- a/node/stmt/use_list.go +++ b/node/stmt/use_list.go @@ -1,20 +1,17 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" ) type UseList struct { position *node.Position - comments []comment.Comment UseType node.Node Uses []node.Node } func NewUseList(UseType node.Node, Uses []node.Node) *UseList { return &UseList{ - nil, nil, UseType, Uses, @@ -34,15 +31,6 @@ func (n *UseList) SetPosition(p *node.Position) node.Node { return n } -func (n *UseList) Comments() []comment.Comment { - return n.comments -} - -func (n *UseList) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *UseList) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/node/stmt/while.go b/node/stmt/while.go index f28cefc..04bc4b2 100644 --- a/node/stmt/while.go +++ b/node/stmt/while.go @@ -1,14 +1,12 @@ package stmt import ( - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" "github.com/z7zmey/php-parser/token" ) type While struct { position *node.Position - comments []comment.Comment Token token.Token Cond node.Node Stmt node.Node @@ -16,7 +14,6 @@ type While struct { func NewWhile(Token token.Token, Cond node.Node, Stmt node.Node) *While { return &While{ - nil, nil, Token, Cond, @@ -37,15 +34,6 @@ func (n *While) SetPosition(p *node.Position) node.Node { return n } -func (n *While) Comments() []comment.Comment { - return n.comments -} - -func (n *While) SetComments(c []comment.Comment) node.Node { - n.comments = c - return n -} - func (n *While) Walk(v node.Visitor) { if v.EnterNode(n) == false { return diff --git a/parser/parser.go b/parser/parser.go index eff9f88..2711264 100644 --- a/parser/parser.go +++ b/parser/parser.go @@ -21,13 +21,15 @@ import ( ) var rootnode node.Node +var comments comment.Comments -func Parse(src io.Reader, fName string) node.Node { +func Parse(src io.Reader, fName string) (node.Node, comment.Comments) { yyDebug = 0 yyErrorVerbose = true rootnode = stmt.NewStmtList([]node.Node{}) //reset + comments = comment.Comments{} yyParse(newLexer(src, fName)) - return rootnode + return rootnode, comments } func ListGetFirstNodeComments(list []node.Node) []comment.Comment { @@ -37,7 +39,7 @@ func ListGetFirstNodeComments(list []node.Node) []comment.Comment { node := list[0] - return node.Comments() + return comments[node] } type foreachVariable struct { @@ -55,7 +57,7 @@ type boolWithToken struct { token *token.Token } -//line parser/parser.y:57 +//line parser/parser.y:59 type yySymType struct { yys int node node.Node @@ -379,7 +381,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line parser/parser.y:1471 +//line parser/parser.y:2327 //line yacctab:1 var yyExca = [...]int{ @@ -2088,2809 +2090,3120 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:287 + //line parser/parser.y:289 { rootnode = stmt.NewStmtList(yyDollar[1].list) rootnode.SetPosition(NewNodeListPosition(yyDollar[1].list)) } case 2: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:294 + //line parser/parser.y:296 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:294 + //line parser/parser.y:296 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:294 + //line parser/parser.y:296 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:294 + //line parser/parser.y:296 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:294 + //line parser/parser.y:296 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:294 + //line parser/parser.y:296 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:294 + //line parser/parser.y:296 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:294 + //line parser/parser.y:296 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:295 + //line parser/parser.y:297 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:295 + //line parser/parser.y:297 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:295 + //line parser/parser.y:297 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:295 + //line parser/parser.y:297 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:295 + //line parser/parser.y:297 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:295 + //line parser/parser.y:297 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:295 + //line parser/parser.y:297 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:295 + //line parser/parser.y:297 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:295 + //line parser/parser.y:297 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:295 + //line parser/parser.y:297 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:295 + //line parser/parser.y:297 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:295 + //line parser/parser.y:297 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:296 + //line parser/parser.y:298 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:296 + //line parser/parser.y:298 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:296 + //line parser/parser.y:298 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:296 + //line parser/parser.y:298 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:296 + //line parser/parser.y:298 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:296 + //line parser/parser.y:298 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:296 + //line parser/parser.y:298 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:296 + //line parser/parser.y:298 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:296 + //line parser/parser.y:298 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:296 + //line parser/parser.y:298 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:297 + //line parser/parser.y:299 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:297 + //line parser/parser.y:299 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:297 + //line parser/parser.y:299 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:297 + //line parser/parser.y:299 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:297 + //line parser/parser.y:299 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:297 + //line parser/parser.y:299 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:297 + //line parser/parser.y:299 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:297 + //line parser/parser.y:299 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:297 + //line parser/parser.y:299 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:297 + //line parser/parser.y:299 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:298 + //line parser/parser.y:300 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:298 + //line parser/parser.y:300 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:298 + //line parser/parser.y:300 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:298 + //line parser/parser.y:300 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:298 + //line parser/parser.y:300 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:298 + //line parser/parser.y:300 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:298 + //line parser/parser.y:300 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:298 + //line parser/parser.y:300 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:298 + //line parser/parser.y:300 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:298 + //line parser/parser.y:300 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:298 + //line parser/parser.y:300 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:299 + //line parser/parser.y:301 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:299 + //line parser/parser.y:301 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:299 + //line parser/parser.y:301 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:299 + //line parser/parser.y:301 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:299 + //line parser/parser.y:301 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:299 + //line parser/parser.y:301 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:299 + //line parser/parser.y:301 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:299 + //line parser/parser.y:301 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:300 + //line parser/parser.y:302 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:300 + //line parser/parser.y:302 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:300 + //line parser/parser.y:302 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:300 + //line parser/parser.y:302 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:300 + //line parser/parser.y:302 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:300 + //line parser/parser.y:302 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:300 + //line parser/parser.y:302 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:300 + //line parser/parser.y:302 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:304 + //line parser/parser.y:306 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:305 + //line parser/parser.y:307 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:305 + //line parser/parser.y:307 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:305 + //line parser/parser.y:307 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:305 + //line parser/parser.y:307 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:305 + //line parser/parser.y:307 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:305 + //line parser/parser.y:307 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:309 + //line parser/parser.y:311 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:310 + //line parser/parser.y:312 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:314 + //line parser/parser.y:316 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 79: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:315 + //line parser/parser.y:317 { yyVAL.list = []node.Node{} } case 80: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:319 + //line parser/parser.y:322 { - yyVAL.list = []node.Node{name.NewNamePart(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token))} + namePart := name.NewNamePart(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.list = []node.Node{namePart} + comments.AddComments(namePart, yyDollar[1].token.Comments()) } case 81: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:320 + //line parser/parser.y:328 { - yyVAL.list = append(yyDollar[1].list, name.NewNamePart(yyDollar[3].token.Value).SetComments(ListGetFirstNodeComments(yyDollar[1].list)).SetPosition(NewTokenPosition(yyDollar[3].token))) + namePart := name.NewNamePart(yyDollar[3].token.Value).SetPosition(NewTokenPosition(yyDollar[3].token)) + yyVAL.list = append(yyDollar[1].list, namePart) + comments.AddComments(namePart, yyDollar[3].token.Comments()) } case 82: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:324 + //line parser/parser.y:337 { - yyVAL.node = name.NewName(yyDollar[1].list).SetComments(ListGetFirstNodeComments(yyDollar[1].list)).SetPosition(NewNodeListPosition(yyDollar[1].list)) + yyVAL.node = name.NewName(yyDollar[1].list).SetPosition(NewNodeListPosition(yyDollar[1].list)) + comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) } case 83: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:325 + //line parser/parser.y:342 { - yyVAL.node = name.NewRelative(yyDollar[3].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + yyVAL.node = name.NewRelative(yyDollar[3].list).SetPosition(NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 84: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:326 + //line parser/parser.y:347 { - yyVAL.node = name.NewFullyQualified(yyDollar[2].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yyVAL.node = name.NewFullyQualified(yyDollar[2].list).SetPosition(NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 85: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:330 + //line parser/parser.y:354 { yyVAL.node = yyDollar[1].node } case 86: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:331 + //line parser/parser.y:355 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:332 + //line parser/parser.y:356 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:333 + //line parser/parser.y:357 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:334 + //line parser/parser.y:358 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:335 + //line parser/parser.y:359 { yyVAL.node = stmt.NewHaltCompiler() } case 91: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:337 + //line parser/parser.y:361 { - name := name.NewName(yyDollar[2].list).SetComments(ListGetFirstNodeComments(yyDollar[2].list)).SetPosition(NewNodeListPosition(yyDollar[2].list)) + name := name.NewName(yyDollar[2].list).SetPosition(NewNodeListPosition(yyDollar[2].list)) yyVAL.node = stmt.NewNamespace(name, nil). - SetComments(yyDollar[1].token.Comments()). SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + + comments.AddComments(name, ListGetFirstNodeComments(yyDollar[2].list)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 92: yyDollar = yyS[yypt-5 : yypt+1] - //line parser/parser.y:344 + //line parser/parser.y:370 { - name := name.NewName(yyDollar[2].list).SetComments(ListGetFirstNodeComments(yyDollar[2].list)).SetPosition(NewNodeListPosition(yyDollar[2].list)) + name := name.NewName(yyDollar[2].list).SetPosition(NewNodeListPosition(yyDollar[2].list)) yyVAL.node = stmt.NewNamespace(name, yyDollar[4].list). - SetComments(yyDollar[1].token.Comments()). SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) + + comments.AddComments(name, ListGetFirstNodeComments(yyDollar[2].list)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 93: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:350 + //line parser/parser.y:379 { - yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 94: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:351 + //line parser/parser.y:383 { yyVAL.node = yyDollar[2].node } case 95: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:352 + //line parser/parser.y:384 { yyVAL.node = yyDollar[3].node.(*stmt.GroupUse).SetUseType(yyDollar[2].node) } case 96: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:353 + //line parser/parser.y:386 { - yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 97: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:354 + //line parser/parser.y:390 { yyVAL.node = stmt.NewUseList(yyDollar[2].node, yyDollar[3].list) } case 98: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:355 + //line parser/parser.y:392 { - yyVAL.node = stmt.NewConstList(yyDollar[2].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node = stmt.NewConstList(yyDollar[2].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 99: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:359 + //line parser/parser.y:400 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 100: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:360 + //line parser/parser.y:405 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 101: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:365 + //line parser/parser.y:413 { - name := name.NewName(yyDollar[1].list).SetComments(ListGetFirstNodeComments(yyDollar[1].list)).SetPosition(NewNodeListPosition(yyDollar[1].list)) + name := name.NewName(yyDollar[1].list).SetPosition(NewNodeListPosition(yyDollar[1].list)) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list). - SetComments(ListGetFirstNodeComments(yyDollar[1].list)). SetPosition(NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token)) + + comments.AddComments(name, ListGetFirstNodeComments(yyDollar[1].list)) + comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) } case 102: yyDollar = yyS[yypt-7 : yypt+1] - //line parser/parser.y:372 + //line parser/parser.y:422 { - name := name.NewName(yyDollar[2].list).SetComments(ListGetFirstNodeComments(yyDollar[2].list)).SetPosition(NewNodeListPosition(yyDollar[2].list)) + name := name.NewName(yyDollar[2].list).SetPosition(NewNodeListPosition(yyDollar[2].list)) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list). - SetComments(yyDollar[1].token.Comments()). SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) + + comments.AddComments(name, ListGetFirstNodeComments(yyDollar[2].list)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 103: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:382 + //line parser/parser.y:434 { - name := name.NewName(yyDollar[1].list).SetComments(ListGetFirstNodeComments(yyDollar[1].list)).SetPosition(NewNodeListPosition(yyDollar[1].list)) + name := name.NewName(yyDollar[1].list).SetPosition(NewNodeListPosition(yyDollar[1].list)) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list). - SetComments(ListGetFirstNodeComments(yyDollar[1].list)). SetPosition(NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token)) + + comments.AddComments(name, ListGetFirstNodeComments(yyDollar[1].list)) + comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) } case 104: yyDollar = yyS[yypt-7 : yypt+1] - //line parser/parser.y:389 + //line parser/parser.y:443 { - name := name.NewName(yyDollar[2].list).SetComments(ListGetFirstNodeComments(yyDollar[2].list)).SetPosition(NewNodeListPosition(yyDollar[2].list)) + name := name.NewName(yyDollar[2].list).SetPosition(NewNodeListPosition(yyDollar[2].list)) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list). - SetComments(yyDollar[1].token.Comments()). SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) + + comments.AddComments(name, ListGetFirstNodeComments(yyDollar[2].list)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 107: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:404 + //line parser/parser.y:460 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 108: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:405 + //line parser/parser.y:461 { yyVAL.list = []node.Node{yyDollar[1].node} } case 109: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:410 + //line parser/parser.y:466 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 110: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:411 + //line parser/parser.y:467 { yyVAL.list = []node.Node{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:415 + //line parser/parser.y:471 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 112: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:416 + //line parser/parser.y:472 { yyVAL.list = []node.Node{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:420 + //line parser/parser.y:476 { yyVAL.node = yyDollar[1].node } case 114: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:421 + //line parser/parser.y:477 { yyVAL.node = yyDollar[2].node.(*stmt.Use).SetUseType(yyDollar[1].node) } case 115: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:426 + //line parser/parser.y:482 { - name := name.NewName(yyDollar[1].list).SetComments(ListGetFirstNodeComments(yyDollar[1].list)).SetPosition(NewNodeListPosition(yyDollar[1].list)) - yyVAL.node = stmt.NewUse(nil, name, nil).SetComments(ListGetFirstNodeComments(yyDollar[1].list)).SetPosition(NewNodeListPosition(yyDollar[1].list)) + name := name.NewName(yyDollar[1].list).SetPosition(NewNodeListPosition(yyDollar[1].list)) + yyVAL.node = stmt.NewUse(nil, name, nil).SetPosition(NewNodeListPosition(yyDollar[1].list)) + + comments.AddComments(name, ListGetFirstNodeComments(yyDollar[1].list)) + comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) } case 116: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:431 + //line parser/parser.y:490 { - name := name.NewName(yyDollar[1].list).SetComments(ListGetFirstNodeComments(yyDollar[1].list)).SetPosition(NewNodeListPosition(yyDollar[1].list)) - alias := node.NewIdentifier(yyDollar[3].token.Value).SetComments(yyDollar[3].token.Comments()).SetPosition(NewTokenPosition(yyDollar[3].token)) - yyVAL.node = stmt.NewUse(nil, name, alias).SetComments(ListGetFirstNodeComments(yyDollar[1].list)).SetPosition(NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) + name := name.NewName(yyDollar[1].list).SetPosition(NewNodeListPosition(yyDollar[1].list)) + alias := node.NewIdentifier(yyDollar[3].token.Value).SetPosition(NewTokenPosition(yyDollar[3].token)) + yyVAL.node = stmt.NewUse(nil, name, alias).SetPosition(NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) + + comments.AddComments(name, ListGetFirstNodeComments(yyDollar[1].list)) + comments.AddComments(alias, yyDollar[3].token.Comments()) + comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) } case 117: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:439 + //line parser/parser.y:502 { yyVAL.node = yyDollar[1].node } case 118: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:440 + //line parser/parser.y:503 { yyVAL.node = yyDollar[2].node } case 119: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:444 + //line parser/parser.y:507 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 120: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:445 + //line parser/parser.y:508 { yyVAL.list = []node.Node{yyDollar[1].node} } case 121: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:449 + //line parser/parser.y:512 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 122: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:450 + //line parser/parser.y:513 { yyVAL.list = []node.Node{} } case 123: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:454 + //line parser/parser.y:517 { yyVAL.node = yyDollar[1].node } case 124: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:455 + //line parser/parser.y:518 { yyVAL.node = yyDollar[1].node } case 125: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:456 + //line parser/parser.y:519 { yyVAL.node = yyDollar[1].node } case 126: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:457 + //line parser/parser.y:520 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:458 + //line parser/parser.y:521 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:459 + //line parser/parser.y:523 { - yyVAL.node = stmt.NewHaltCompiler().SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node = stmt.NewHaltCompiler().SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 129: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:462 + //line parser/parser.y:530 { - yyVAL.node = stmt.NewStmtList(yyDollar[2].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node = stmt.NewStmtList(yyDollar[2].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 130: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:463 + //line parser/parser.y:534 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:464 + //line parser/parser.y:535 { yyVAL.node = yyDollar[1].node } case 132: yyDollar = yyS[yypt-5 : yypt+1] - //line parser/parser.y:466 + //line parser/parser.y:537 { - yyVAL.node = stmt.NewWhile(yyDollar[1].token, yyDollar[3].node, yyDollar[5].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + yyVAL.node = stmt.NewWhile(yyDollar[1].token, yyDollar[3].node, yyDollar[5].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 133: yyDollar = yyS[yypt-7 : yypt+1] - //line parser/parser.y:467 + //line parser/parser.y:542 { - yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[5].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) + yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[5].node).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 134: yyDollar = yyS[yypt-9 : yypt+1] - //line parser/parser.y:469 + //line parser/parser.y:547 { - yyVAL.node = stmt.NewFor(yyDollar[3].list, yyDollar[5].list, yyDollar[7].list, yyDollar[9].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node)) + yyVAL.node = stmt.NewFor(yyDollar[3].list, yyDollar[5].list, yyDollar[7].list, yyDollar[9].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 135: yyDollar = yyS[yypt-5 : yypt+1] - //line parser/parser.y:470 + //line parser/parser.y:552 { - yyVAL.node = stmt.NewSwitch(yyDollar[1].token, yyDollar[3].node, yyDollar[5].nodesWithEndToken.nodes).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[5].nodesWithEndToken.endToken)) + yyVAL.node = stmt.NewSwitch(yyDollar[1].token, yyDollar[3].node, yyDollar[5].nodesWithEndToken.nodes).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[5].nodesWithEndToken.endToken)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 136: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:471 + //line parser/parser.y:557 { - yyVAL.node = stmt.NewBreak(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node = stmt.NewBreak(yyDollar[2].node).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 137: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:472 + //line parser/parser.y:562 { - yyVAL.node = stmt.NewContinue(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node = stmt.NewContinue(yyDollar[2].node).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 138: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:473 + //line parser/parser.y:567 { - yyVAL.node = stmt.NewReturn(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node = stmt.NewReturn(yyDollar[2].node).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 139: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:474 + //line parser/parser.y:572 { - yyVAL.node = stmt.NewGlobal(yyDollar[2].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node = stmt.NewGlobal(yyDollar[2].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:475 + //line parser/parser.y:577 { - yyVAL.node = stmt.NewStatic(yyDollar[2].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node = stmt.NewStatic(yyDollar[2].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 141: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:476 + //line parser/parser.y:582 { - yyVAL.node = stmt.NewEcho(yyDollar[2].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node = stmt.NewEcho(yyDollar[2].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 142: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:477 + //line parser/parser.y:587 { - yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 143: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:478 + //line parser/parser.y:592 { - yyVAL.node = stmt.NewExpression(yyDollar[1].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yyVAL.node = stmt.NewExpression(yyDollar[1].node).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 144: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:480 + //line parser/parser.y:597 { - yyVAL.node = stmt.NewUnset(yyDollar[3].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) + yyVAL.node = stmt.NewUnset(yyDollar[3].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 145: yyDollar = yyS[yypt-7 : yypt+1] - //line parser/parser.y:482 + //line parser/parser.y:602 { - yyVAL.node = stmt.NewForeach(yyDollar[3].node, nil, yyDollar[5].foreachVariable.node, yyDollar[7].node, yyDollar[5].foreachVariable.byRef).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[7].node)) + yyVAL.node = stmt.NewForeach(yyDollar[3].node, nil, yyDollar[5].foreachVariable.node, yyDollar[7].node, yyDollar[5].foreachVariable.byRef).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[7].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 146: yyDollar = yyS[yypt-9 : yypt+1] - //line parser/parser.y:484 + //line parser/parser.y:607 { - yyVAL.node = stmt.NewForeach(yyDollar[3].node, yyDollar[5].node, yyDollar[7].foreachVariable.node, yyDollar[9].node, yyDollar[7].foreachVariable.byRef).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node)) + yyVAL.node = stmt.NewForeach(yyDollar[3].node, yyDollar[5].node, yyDollar[7].foreachVariable.node, yyDollar[9].node, yyDollar[7].foreachVariable.byRef).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 147: yyDollar = yyS[yypt-5 : yypt+1] - //line parser/parser.y:485 + //line parser/parser.y:612 { - yyVAL.node = stmt.NewDeclare(yyDollar[3].list, yyDollar[5].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + yyVAL.node = stmt.NewDeclare(yyDollar[3].list, yyDollar[5].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 148: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:486 + //line parser/parser.y:617 { - yyVAL.node = stmt.NewNop().SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = stmt.NewNop().SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 149: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:488 + //line parser/parser.y:622 { if yyDollar[6].node == nil { - yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list)) + yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node).SetPosition(NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list)) } else { - yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) + yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) } + + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 150: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:495 + //line parser/parser.y:632 { - yyVAL.node = stmt.NewThrow(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node = stmt.NewThrow(yyDollar[2].node).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 151: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:497 + //line parser/parser.y:637 { - label := node.NewIdentifier(yyDollar[2].token.Value).SetComments(yyDollar[2].token.Comments()).SetPosition(NewTokenPosition(yyDollar[2].token)) - yyVAL.node = stmt.NewGoto(label).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + label := node.NewIdentifier(yyDollar[2].token.Value).SetPosition(NewTokenPosition(yyDollar[2].token)) + yyVAL.node = stmt.NewGoto(label).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + + comments.AddComments(label, yyDollar[2].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 152: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:502 + //line parser/parser.y:645 { - label := node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) - yyVAL.node = stmt.NewLabel(label).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + label := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = stmt.NewLabel(label).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + + comments.AddComments(label, yyDollar[1].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 153: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:508 + //line parser/parser.y:654 { yyVAL.list = []node.Node{} } case 154: yyDollar = yyS[yypt-9 : yypt+1] - //line parser/parser.y:510 + //line parser/parser.y:656 { - identifier := node.NewIdentifier(yyDollar[5].token.Value).SetComments(yyDollar[5].token.Comments()).SetPosition(NewTokenPosition(yyDollar[5].token)) - variable := expr.NewVariable(identifier).SetComments(yyDollar[5].token.Comments()).SetPosition(NewTokenPosition(yyDollar[5].token)) - yyVAL.list = append(yyDollar[1].list, stmt.NewCatch(yyDollar[4].list, variable, yyDollar[8].list).SetComments(yyDollar[2].token.Comments()).SetPosition(NewTokensPosition(yyDollar[2].token, yyDollar[9].token))) + identifier := node.NewIdentifier(yyDollar[5].token.Value).SetPosition(NewTokenPosition(yyDollar[5].token)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[5].token)) + catch := stmt.NewCatch(yyDollar[4].list, variable, yyDollar[8].list).SetPosition(NewTokensPosition(yyDollar[2].token, yyDollar[9].token)) + yyVAL.list = append(yyDollar[1].list, catch) + + comments.AddComments(identifier, yyDollar[5].token.Comments()) + comments.AddComments(variable, yyDollar[5].token.Comments()) + comments.AddComments(catch, yyDollar[2].token.Comments()) } case 155: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:517 + //line parser/parser.y:668 { yyVAL.list = []node.Node{yyDollar[1].node} } case 156: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:518 + //line parser/parser.y:669 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 157: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:522 + //line parser/parser.y:673 { yyVAL.node = nil } case 158: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:523 + //line parser/parser.y:675 { - yyVAL.node = stmt.NewFinally(yyDollar[3].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node = stmt.NewFinally(yyDollar[3].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 159: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:527 + //line parser/parser.y:682 { yyVAL.list = []node.Node{yyDollar[1].node} } case 160: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:528 + //line parser/parser.y:683 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:532 + //line parser/parser.y:687 { yyVAL.node = yyDollar[1].node } case 162: yyDollar = yyS[yypt-11 : yypt+1] - //line parser/parser.y:537 + //line parser/parser.y:692 { - name := node.NewIdentifier(yyDollar[3].token.Value).SetComments(yyDollar[3].token.Comments()).SetPosition(NewTokenPosition(yyDollar[3].token)) + name := node.NewIdentifier(yyDollar[3].token.Value).SetPosition(NewTokenPosition(yyDollar[3].token)) yyVAL.node = stmt.NewFunction(name, yyDollar[2].boolWithToken.value, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list, yyDollar[4].str). - SetComments(yyDollar[1].token.Comments()). SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[11].token)) + + comments.AddComments(name, yyDollar[3].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 163: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:546 + //line parser/parser.y:703 { yyVAL.boolWithToken = boolWithToken{false, nil} } case 164: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:547 + //line parser/parser.y:704 { yyVAL.boolWithToken = boolWithToken{true, &yyDollar[1].token} } case 165: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:551 + //line parser/parser.y:708 { yyVAL.boolWithToken = boolWithToken{false, nil} } case 166: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:552 + //line parser/parser.y:709 { yyVAL.boolWithToken = boolWithToken{true, &yyDollar[1].token} } case 167: yyDollar = yyS[yypt-9 : yypt+1] - //line parser/parser.y:557 + //line parser/parser.y:714 { - name := node.NewIdentifier(yyDollar[3].token.Value).SetComments(yyDollar[3].token.Comments()).SetPosition(NewTokenPosition(yyDollar[3].token)) + name := node.NewIdentifier(yyDollar[3].token.Value).SetPosition(NewTokenPosition(yyDollar[3].token)) yyVAL.node = stmt.NewClass(name, yyDollar[1].list, nil, yyDollar[4].node, yyDollar[5].list, yyDollar[8].list, yyDollar[6].str). - SetComments(yyDollar[2].token.Comments()). SetPosition(NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token)) + + comments.AddComments(name, yyDollar[3].token.Comments()) + comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) } case 168: yyDollar = yyS[yypt-8 : yypt+1] - //line parser/parser.y:564 + //line parser/parser.y:723 { - name := node.NewIdentifier(yyDollar[2].token.Value).SetComments(yyDollar[2].token.Comments()).SetPosition(NewTokenPosition(yyDollar[2].token)) + name := node.NewIdentifier(yyDollar[2].token.Value).SetPosition(NewTokenPosition(yyDollar[2].token)) yyVAL.node = stmt.NewClass(name, nil, nil, yyDollar[3].node, yyDollar[4].list, yyDollar[7].list, yyDollar[5].str). - SetComments(yyDollar[1].token.Comments()). SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) + + comments.AddComments(name, yyDollar[2].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 169: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:573 + //line parser/parser.y:734 { yyVAL.list = []node.Node{yyDollar[1].node} } case 170: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:574 + //line parser/parser.y:735 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 171: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:578 + //line parser/parser.y:740 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 172: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:579 + //line parser/parser.y:745 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 173: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:584 + //line parser/parser.y:753 { - name := node.NewIdentifier(yyDollar[2].token.Value).SetComments(yyDollar[2].token.Comments()).SetPosition(NewTokenPosition(yyDollar[2].token)) + name := node.NewIdentifier(yyDollar[2].token.Value).SetPosition(NewTokenPosition(yyDollar[2].token)) yyVAL.node = stmt.NewTrait(name, yyDollar[5].list, yyDollar[3].str). - SetComments(yyDollar[1].token.Comments()). SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) + + comments.AddComments(name, yyDollar[2].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 174: yyDollar = yyS[yypt-7 : yypt+1] - //line parser/parser.y:594 + //line parser/parser.y:765 { - name := node.NewIdentifier(yyDollar[2].token.Value).SetComments(yyDollar[2].token.Comments()).SetPosition(NewTokenPosition(yyDollar[2].token)) + name := node.NewIdentifier(yyDollar[2].token.Value).SetPosition(NewTokenPosition(yyDollar[2].token)) yyVAL.node = stmt.NewInterface(name, yyDollar[3].list, yyDollar[6].list, yyDollar[4].str). - SetComments(yyDollar[1].token.Comments()). SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) + + comments.AddComments(name, yyDollar[2].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 175: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:603 + //line parser/parser.y:776 { yyVAL.node = nil } case 176: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:604 + //line parser/parser.y:777 { yyVAL.node = yyDollar[2].node } case 177: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:608 + //line parser/parser.y:781 { yyVAL.list = nil } case 178: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:609 + //line parser/parser.y:782 { yyVAL.list = yyDollar[2].list } case 179: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:613 + //line parser/parser.y:786 { yyVAL.list = nil } case 180: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:614 + //line parser/parser.y:787 { yyVAL.list = yyDollar[2].list } case 181: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:618 + //line parser/parser.y:791 { yyVAL.foreachVariable = foreachVariable{yyDollar[1].node, false} } case 182: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:619 + //line parser/parser.y:792 { yyVAL.foreachVariable = foreachVariable{yyDollar[2].node, true} } case 183: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:620 + //line parser/parser.y:794 { - yyVAL.foreachVariable = foreachVariable{expr.NewList(yyDollar[3].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)), false} + list := expr.NewList(yyDollar[3].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.foreachVariable = foreachVariable{list, false} + comments.AddComments(list, yyDollar[1].token.Comments()) } case 184: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:621 + //line parser/parser.y:800 { - yyVAL.foreachVariable = foreachVariable{expr.NewShortList(yyDollar[2].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)), false} + list := expr.NewShortList(yyDollar[2].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.foreachVariable = foreachVariable{list, false} + comments.AddComments(list, yyDollar[1].token.Comments()) } case 185: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:625 + //line parser/parser.y:808 { yyVAL.node = yyDollar[1].node } case 186: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:626 + //line parser/parser.y:810 { - yyVAL.node = stmt.NewStmtList(yyDollar[2].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node = stmt.NewStmtList(yyDollar[2].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:630 + //line parser/parser.y:817 { yyVAL.node = yyDollar[1].node } case 188: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:631 + //line parser/parser.y:819 { - yyVAL.node = stmt.NewStmtList(yyDollar[2].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node = stmt.NewStmtList(yyDollar[2].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:635 + //line parser/parser.y:826 { yyVAL.node = yyDollar[1].node } case 190: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:636 + //line parser/parser.y:828 { - yyVAL.node = stmt.NewStmtList(yyDollar[2].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node = stmt.NewStmtList(yyDollar[2].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 191: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:640 + //line parser/parser.y:835 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[3].token} } case 192: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:641 + //line parser/parser.y:836 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[3].list, yyDollar[4].token} } case 193: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:642 + //line parser/parser.y:837 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[4].token} } case 194: yyDollar = yyS[yypt-5 : yypt+1] - //line parser/parser.y:643 + //line parser/parser.y:838 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[3].list, yyDollar[5].token} } case 195: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:647 + //line parser/parser.y:842 { yyVAL.list = []node.Node{} } case 196: yyDollar = yyS[yypt-5 : yypt+1] - //line parser/parser.y:649 + //line parser/parser.y:844 { - yyVAL.list = append(yyDollar[1].list, stmt.NewCase(yyDollar[3].node, yyDollar[5].list).SetComments(yyDollar[2].token.Comments()).SetPosition(NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list))) + _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list).SetPosition(NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) + yyVAL.list = append(yyDollar[1].list, _case) + comments.AddComments(_case, yyDollar[2].token.Comments()) } case 197: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:653 + //line parser/parser.y:850 { - yyVAL.list = append(yyDollar[1].list, stmt.NewDefault(yyDollar[4].list).SetComments(yyDollar[2].token.Comments()).SetPosition(NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list))) + _default := stmt.NewDefault(yyDollar[4].list).SetPosition(NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) + yyVAL.list = append(yyDollar[1].list, _default) + comments.AddComments(_default, yyDollar[2].token.Comments()) } case 200: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:664 + //line parser/parser.y:863 { yyVAL.node = yyDollar[1].node } case 201: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:665 + //line parser/parser.y:865 { - yyVAL.node = stmt.NewStmtList(yyDollar[2].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node = stmt.NewStmtList(yyDollar[2].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 202: yyDollar = yyS[yypt-5 : yypt+1] - //line parser/parser.y:669 + //line parser/parser.y:873 { - yyVAL.node = stmt.NewIf(yyDollar[3].node, yyDollar[5].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + yyVAL.node = stmt.NewIf(yyDollar[3].node, yyDollar[5].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 203: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:671 + //line parser/parser.y:878 { - _elseIf := stmt.NewElseIf(yyDollar[4].node, yyDollar[6].node).SetComments(yyDollar[2].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node)) + _elseIf := stmt.NewElseIf(yyDollar[4].node, yyDollar[6].node).SetPosition(NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node)) yyVAL.node = yyDollar[1].node.(*stmt.If).AddElseIf(_elseIf).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[6].node)) + + comments.AddComments(_elseIf, yyDollar[2].token.Comments()) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:678 + //line parser/parser.y:887 { yyVAL.node = yyDollar[1].node } case 205: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:680 + //line parser/parser.y:889 { - _else := stmt.NewElse(yyDollar[3].node).SetComments(yyDollar[2].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[2].token, yyDollar[3].node)) + _else := stmt.NewElse(yyDollar[3].node).SetPosition(NewTokenNodePosition(yyDollar[2].token, yyDollar[3].node)) yyVAL.node = yyDollar[1].node.(*stmt.If).SetElse(_else).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + + comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) } case 206: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:688 + //line parser/parser.y:899 { - stmts := stmt.NewStmtList(yyDollar[6].list).SetComments(yyDollar[5].token.Comments()).SetPosition(NewNodeListPosition(yyDollar[6].list)) - yyVAL.node = stmt.NewAltIf(yyDollar[3].node, stmts).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list)) + stmts := stmt.NewStmtList(yyDollar[6].list).SetPosition(NewNodeListPosition(yyDollar[6].list)) + yyVAL.node = stmt.NewAltIf(yyDollar[3].node, stmts).SetPosition(NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list)) + + comments.AddComments(stmts, yyDollar[5].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 207: yyDollar = yyS[yypt-7 : yypt+1] - //line parser/parser.y:693 + //line parser/parser.y:907 { - stmts := stmt.NewStmtList(yyDollar[7].list).SetComments(yyDollar[6].token.Comments()).SetPosition(NewNodeListPosition(yyDollar[7].list)) - _elseIf := stmt.NewAltElseIf(yyDollar[4].node, stmts).SetComments(yyDollar[2].token.Comments()).SetPosition(NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list)) + stmts := stmt.NewStmtList(yyDollar[7].list).SetPosition(NewNodeListPosition(yyDollar[7].list)) + _elseIf := stmt.NewAltElseIf(yyDollar[4].node, stmts).SetPosition(NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list)) yyVAL.node = yyDollar[1].node.(*stmt.AltIf).AddElseIf(_elseIf) + + comments.AddComments(stmts, yyDollar[6].token.Comments()) + comments.AddComments(_elseIf, yyDollar[2].token.Comments()) } case 208: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:702 + //line parser/parser.y:919 { yyVAL.node = yyDollar[1].node.SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) } case 209: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:706 + //line parser/parser.y:923 { - stmts := stmt.NewStmtList(yyDollar[4].list).SetComments(yyDollar[3].token.Comments()).SetPosition(NewNodeListPosition(yyDollar[4].list)) - _else := stmt.NewAltElse(stmts).SetComments(yyDollar[2].token.Comments()).SetPosition(NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) + stmts := stmt.NewStmtList(yyDollar[4].list).SetPosition(NewNodeListPosition(yyDollar[4].list)) + _else := stmt.NewAltElse(stmts).SetPosition(NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) yyVAL.node = yyDollar[1].node.(*stmt.AltIf).SetElse(_else).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token)) + + comments.AddComments(stmts, yyDollar[3].token.Comments()) + comments.AddComments(_else, yyDollar[2].token.Comments()) } case 210: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:714 + //line parser/parser.y:934 { yyVAL.list = yyDollar[1].list } case 211: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:715 + //line parser/parser.y:935 { yyVAL.list = nil } case 212: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:719 + //line parser/parser.y:939 { yyVAL.list = []node.Node{yyDollar[1].node} } case 213: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:720 + //line parser/parser.y:940 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 214: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:725 + //line parser/parser.y:945 { - identifier := node.NewIdentifier(yyDollar[4].token.Value).SetComments(yyDollar[4].token.Comments()).SetPosition(NewTokenPosition(yyDollar[4].token)) - variable := expr.NewVariable(identifier).SetComments(yyDollar[4].token.Comments()).SetPosition(NewTokenPosition(yyDollar[4].token)) + identifier := node.NewIdentifier(yyDollar[4].token.Value).SetPosition(NewTokenPosition(yyDollar[4].token)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[4].token)) + + comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + if yyDollar[1].node != nil { - yyVAL.node = node.NewParameter(yyDollar[1].node, variable, nil, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node = node.NewParameter(yyDollar[1].node, variable, nil, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } else if yyDollar[2].boolWithToken.value == true { - yyVAL.node = node.NewParameter(yyDollar[1].node, variable, nil, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value).SetComments(yyDollar[2].boolWithToken.token.Comments()).SetPosition(NewTokensPosition(*yyDollar[2].boolWithToken.token, yyDollar[4].token)) + yyVAL.node = node.NewParameter(yyDollar[1].node, variable, nil, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value).SetPosition(NewTokensPosition(*yyDollar[2].boolWithToken.token, yyDollar[4].token)) + comments.AddComments(yyVAL.node, yyDollar[2].boolWithToken.token.Comments()) } else if yyDollar[3].boolWithToken.value == true { - yyVAL.node = node.NewParameter(yyDollar[1].node, variable, nil, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value).SetComments(yyDollar[3].boolWithToken.token.Comments()).SetPosition(NewTokensPosition(*yyDollar[3].boolWithToken.token, yyDollar[4].token)) + yyVAL.node = node.NewParameter(yyDollar[1].node, variable, nil, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value).SetPosition(NewTokensPosition(*yyDollar[3].boolWithToken.token, yyDollar[4].token)) + comments.AddComments(yyVAL.node, yyDollar[3].boolWithToken.token.Comments()) } else { - yyVAL.node = node.NewParameter(yyDollar[1].node, variable, nil, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value).SetComments(yyDollar[4].token.Comments()).SetPosition(NewTokenPosition(yyDollar[4].token)) + yyVAL.node = node.NewParameter(yyDollar[1].node, variable, nil, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value).SetPosition(NewTokenPosition(yyDollar[4].token)) + comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) } } case 215: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:739 + //line parser/parser.y:967 { - identifier := node.NewIdentifier(yyDollar[4].token.Value).SetComments(yyDollar[4].token.Comments()).SetPosition(NewTokenPosition(yyDollar[4].token)) - variable := expr.NewVariable(identifier).SetComments(yyDollar[4].token.Comments()).SetPosition(NewTokenPosition(yyDollar[4].token)) + identifier := node.NewIdentifier(yyDollar[4].token.Value).SetPosition(NewTokenPosition(yyDollar[4].token)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[4].token)) + + comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + if yyDollar[1].node != nil { - yyVAL.node = node.NewParameter(yyDollar[1].node, variable, yyDollar[6].node, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[6].node)) + yyVAL.node = node.NewParameter(yyDollar[1].node, variable, yyDollar[6].node, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[6].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } else if yyDollar[2].boolWithToken.value == true { - yyVAL.node = node.NewParameter(yyDollar[1].node, variable, yyDollar[6].node, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value).SetComments(yyDollar[2].boolWithToken.token.Comments()).SetPosition(NewTokenNodePosition(*yyDollar[2].boolWithToken.token, yyDollar[6].node)) + yyVAL.node = node.NewParameter(yyDollar[1].node, variable, yyDollar[6].node, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value).SetPosition(NewTokenNodePosition(*yyDollar[2].boolWithToken.token, yyDollar[6].node)) + comments.AddComments(yyVAL.node, yyDollar[2].boolWithToken.token.Comments()) } else if yyDollar[3].boolWithToken.value == true { - yyVAL.node = node.NewParameter(yyDollar[1].node, variable, yyDollar[6].node, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value).SetComments(yyDollar[3].boolWithToken.token.Comments()).SetPosition(NewTokenNodePosition(*yyDollar[3].boolWithToken.token, yyDollar[6].node)) + yyVAL.node = node.NewParameter(yyDollar[1].node, variable, yyDollar[6].node, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value).SetPosition(NewTokenNodePosition(*yyDollar[3].boolWithToken.token, yyDollar[6].node)) + comments.AddComments(yyVAL.node, yyDollar[3].boolWithToken.token.Comments()) } else { - yyVAL.node = node.NewParameter(yyDollar[1].node, variable, yyDollar[6].node, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value).SetComments(yyDollar[4].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node)) + yyVAL.node = node.NewParameter(yyDollar[1].node, variable, yyDollar[6].node, yyDollar[2].boolWithToken.value, yyDollar[3].boolWithToken.value).SetPosition(NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node)) + comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) } } case 216: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:755 + //line parser/parser.y:991 { yyVAL.node = nil } case 217: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:756 + //line parser/parser.y:992 { yyVAL.node = yyDollar[1].node } case 218: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:760 + //line parser/parser.y:996 { yyVAL.node = yyDollar[1].node } case 219: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:761 + //line parser/parser.y:998 { - yyVAL.node = node.NewNullable(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = node.NewNullable(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 220: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:765 + //line parser/parser.y:1006 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 221: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:766 + //line parser/parser.y:1011 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 222: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:767 + //line parser/parser.y:1015 { yyVAL.node = yyDollar[1].node } case 223: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:771 + //line parser/parser.y:1019 { yyVAL.node = nil } case 224: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:772 + //line parser/parser.y:1020 { yyVAL.node = yyDollar[2].node } case 225: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:776 + //line parser/parser.y:1024 { yyVAL.nodesWithEndToken = &nodesWithEndToken{[]node.Node{}, yyDollar[2].token} } case 226: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:777 + //line parser/parser.y:1025 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[4].token} } case 227: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:781 + //line parser/parser.y:1029 { yyVAL.list = []node.Node{yyDollar[1].node} } case 228: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:782 + //line parser/parser.y:1030 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 229: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:786 + //line parser/parser.y:1035 { - yyVAL.node = node.NewArgument(yyDollar[1].node, false).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodePosition(yyDollar[1].node)) + yyVAL.node = node.NewArgument(yyDollar[1].node, false).SetPosition(NewNodePosition(yyDollar[1].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 230: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:787 + //line parser/parser.y:1040 { - yyVAL.node = node.NewArgument(yyDollar[2].node, true).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = node.NewArgument(yyDollar[2].node, true).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 231: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:791 + //line parser/parser.y:1047 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 232: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:792 + //line parser/parser.y:1048 { yyVAL.list = []node.Node{yyDollar[1].node} } case 233: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:796 + //line parser/parser.y:1052 { yyVAL.node = yyDollar[1].node } case 234: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:800 + //line parser/parser.y:1056 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 235: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:801 + //line parser/parser.y:1057 { yyVAL.list = []node.Node{yyDollar[1].node} } case 236: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:806 + //line parser/parser.y:1062 { - identifier := node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) - variable := expr.NewVariable(identifier).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) - yyVAL.node = stmt.NewStaticVar(variable, nil).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + identifier := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = stmt.NewStaticVar(variable, nil).SetPosition(NewTokenPosition(yyDollar[1].token)) + + comments.AddComments(identifier, yyDollar[1].token.Comments()) + comments.AddComments(variable, yyDollar[1].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 237: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:812 + //line parser/parser.y:1072 { - identifier := node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) - variable := expr.NewVariable(identifier).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) - yyVAL.node = stmt.NewStaticVar(variable, yyDollar[3].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + identifier := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = stmt.NewStaticVar(variable, yyDollar[3].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + + comments.AddComments(identifier, yyDollar[1].token.Comments()) + comments.AddComments(variable, yyDollar[1].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 238: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:820 + //line parser/parser.y:1084 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 239: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:821 + //line parser/parser.y:1085 { yyVAL.list = []node.Node{} } case 240: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:825 + //line parser/parser.y:1090 { - yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list).SetComments(ListGetFirstNodeComments(yyDollar[1].list)).SetPosition(NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) + yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list).SetPosition(NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) + comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) } case 241: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:826 + //line parser/parser.y:1095 { - yyVAL.node = stmt.NewClassConstList(yyDollar[1].list, yyDollar[3].list).SetComments(ListGetFirstNodeComments(yyDollar[1].list)).SetPosition(NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token)) + yyVAL.node = stmt.NewClassConstList(yyDollar[1].list, yyDollar[3].list).SetPosition(NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token)) + comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) } case 242: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:827 + //line parser/parser.y:1100 { - yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].nodesWithEndToken.nodes).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].nodesWithEndToken.endToken)) + yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].nodesWithEndToken.nodes).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].nodesWithEndToken.endToken)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 243: yyDollar = yyS[yypt-10 : yypt+1] - //line parser/parser.y:829 + //line parser/parser.y:1105 { - name := node.NewIdentifier(yyDollar[4].token.Value).SetComments(yyDollar[4].token.Comments()).SetPosition(NewTokenPosition(yyDollar[4].token)) + name := node.NewIdentifier(yyDollar[4].token.Value).SetPosition(NewTokenPosition(yyDollar[4].token)) yyVAL.node = stmt.NewClassMethod(name, yyDollar[1].list, yyDollar[3].boolWithToken.value, yyDollar[7].list, yyDollar[9].node, yyDollar[10].nodesWithEndToken.nodes, yyDollar[5].str). - SetComments(ListGetFirstNodeComments(yyDollar[1].list)). SetPosition(NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[10].nodesWithEndToken.endToken)) + + comments.AddComments(name, yyDollar[4].token.Comments()) + comments.AddComments(yyVAL.node, ListGetFirstNodeComments(yyDollar[1].list)) } case 244: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:838 + //line parser/parser.y:1116 { yyVAL.list = []node.Node{yyDollar[1].node} } case 245: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:839 + //line parser/parser.y:1117 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 246: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:843 + //line parser/parser.y:1121 { yyVAL.nodesWithEndToken = &nodesWithEndToken{nil, yyDollar[1].token} } case 247: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:844 + //line parser/parser.y:1122 { yyVAL.nodesWithEndToken = &nodesWithEndToken{nil, yyDollar[2].token} } case 248: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:845 + //line parser/parser.y:1123 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[3].token} } case 249: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:849 + //line parser/parser.y:1127 { yyVAL.list = []node.Node{yyDollar[1].node} } case 250: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:850 + //line parser/parser.y:1128 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 251: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:854 + //line parser/parser.y:1132 { yyVAL.node = yyDollar[1].node } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:855 + //line parser/parser.y:1133 { yyVAL.node = yyDollar[1].node } case 253: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:860 + //line parser/parser.y:1138 { - name := name.NewName(yyDollar[3].list).SetComments(ListGetFirstNodeComments(yyDollar[3].list)).SetPosition(NewNodeListPosition(yyDollar[3].list)) + name := name.NewName(yyDollar[3].list).SetPosition(NewNodeListPosition(yyDollar[3].list)) yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, name). - SetComments(yyDollar[1].node.Comments()). SetPosition(NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list)) + + comments.AddComments(name, ListGetFirstNodeComments(yyDollar[3].list)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 254: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:870 + //line parser/parser.y:1150 { - alias := node.NewIdentifier(yyDollar[3].token.Value).SetComments(yyDollar[3].token.Comments()).SetPosition(NewTokenPosition(yyDollar[3].token)) + alias := node.NewIdentifier(yyDollar[3].token.Value).SetPosition(NewTokenPosition(yyDollar[3].token)) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias). - SetComments(yyDollar[1].node.Comments()). SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + + comments.AddComments(alias, yyDollar[3].token.Comments()) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:877 + //line parser/parser.y:1159 { - alias := node.NewIdentifier(yyDollar[3].token.Value).SetComments(yyDollar[3].token.Comments()).SetPosition(NewTokenPosition(yyDollar[3].token)) + alias := node.NewIdentifier(yyDollar[3].token.Value).SetPosition(NewTokenPosition(yyDollar[3].token)) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias). - SetComments(yyDollar[1].node.Comments()). SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + + comments.AddComments(alias, yyDollar[3].token.Comments()) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 256: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:884 + //line parser/parser.y:1168 { - alias := node.NewIdentifier(yyDollar[4].token.Value).SetComments(yyDollar[4].token.Comments()).SetPosition(NewTokenPosition(yyDollar[4].token)) + alias := node.NewIdentifier(yyDollar[4].token.Value).SetPosition(NewTokenPosition(yyDollar[4].token)) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias). - SetComments(yyDollar[1].node.Comments()). SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + + comments.AddComments(alias, yyDollar[4].token.Comments()) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:891 + //line parser/parser.y:1177 { - yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 258: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:898 + //line parser/parser.y:1185 { - name := node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) - yyVAL.node = stmt.NewTraitMethodRef(nil, name).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + name := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = stmt.NewTraitMethodRef(nil, name).SetPosition(NewTokenPosition(yyDollar[1].token)) + + comments.AddComments(name, yyDollar[1].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 259: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:902 + //line parser/parser.y:1192 { yyVAL.node = yyDollar[1].node } case 260: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:907 + //line parser/parser.y:1197 { - target := node.NewIdentifier(yyDollar[3].token.Value).SetComments(yyDollar[3].token.Comments()).SetPosition(NewTokenPosition(yyDollar[3].token)) - yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + target := node.NewIdentifier(yyDollar[3].token.Value).SetPosition(NewTokenPosition(yyDollar[3].token)) + yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + + comments.AddComments(target, yyDollar[3].token.Comments()) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 261: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:914 + //line parser/parser.y:1207 { yyVAL.nodesWithEndToken = &nodesWithEndToken{nil, yyDollar[1].token} } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:915 + //line parser/parser.y:1208 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[3].token} } case 263: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:919 + //line parser/parser.y:1212 { yyVAL.list = yyDollar[1].list } case 264: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:920 + //line parser/parser.y:1214 { - yyVAL.list = []node.Node{node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token))} + modifier := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.list = []node.Node{modifier} + comments.AddComments(modifier, yyDollar[1].token.Comments()) } case 265: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:924 + //line parser/parser.y:1222 { yyVAL.list = nil } case 266: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:925 + //line parser/parser.y:1223 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:929 + //line parser/parser.y:1227 { yyVAL.list = []node.Node{yyDollar[1].node} } case 268: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:930 + //line parser/parser.y:1228 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 269: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:934 + //line parser/parser.y:1233 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 270: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:935 + //line parser/parser.y:1238 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 271: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:936 + //line parser/parser.y:1243 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:937 + //line parser/parser.y:1248 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 273: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:938 + //line parser/parser.y:1253 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 274: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:939 + //line parser/parser.y:1258 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 275: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:943 + //line parser/parser.y:1265 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 276: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:944 + //line parser/parser.y:1266 { yyVAL.list = []node.Node{yyDollar[1].node} } case 277: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:949 + //line parser/parser.y:1271 { - identifier := node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) - variable := expr.NewVariable(identifier).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) - yyVAL.node = stmt.NewProperty(variable, nil, yyDollar[2].str).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + identifier := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = stmt.NewProperty(variable, nil, yyDollar[2].str).SetPosition(NewTokenPosition(yyDollar[1].token)) + + comments.AddComments(identifier, yyDollar[1].token.Comments()) + comments.AddComments(variable, yyDollar[1].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 278: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:955 + //line parser/parser.y:1281 { - identifier := node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) - variable := expr.NewVariable(identifier).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) - yyVAL.node = stmt.NewProperty(variable, yyDollar[3].node, yyDollar[4].str).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + identifier := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = stmt.NewProperty(variable, yyDollar[3].node, yyDollar[4].str).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + + comments.AddComments(identifier, yyDollar[1].token.Comments()) + comments.AddComments(variable, yyDollar[1].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 279: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:963 + //line parser/parser.y:1293 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 280: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:964 + //line parser/parser.y:1294 { yyVAL.list = []node.Node{yyDollar[1].node} } case 281: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:969 + //line parser/parser.y:1299 { - name := node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) - yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + name := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + + comments.AddComments(name, yyDollar[1].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 282: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:977 + //line parser/parser.y:1310 { - name := node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) - yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + name := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + + comments.AddComments(name, yyDollar[1].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 283: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:984 + //line parser/parser.y:1320 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 284: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:985 + //line parser/parser.y:1321 { yyVAL.list = []node.Node{yyDollar[1].node} } case 285: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:989 + //line parser/parser.y:1325 { yyVAL.node = yyDollar[1].node } case 286: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:993 + //line parser/parser.y:1329 { yyVAL.list = nil } case 287: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:994 + //line parser/parser.y:1330 { yyVAL.list = yyDollar[1].list } case 288: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:997 + //line parser/parser.y:1333 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 289: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:998 + //line parser/parser.y:1334 { yyVAL.list = []node.Node{yyDollar[1].node} } case 290: yyDollar = yyS[yypt-8 : yypt+1] - //line parser/parser.y:1003 + //line parser/parser.y:1339 { if yyDollar[2].nodesWithEndToken != nil { - yyVAL.node = stmt.NewClass(nil, nil, yyDollar[2].nodesWithEndToken.nodes, yyDollar[3].node, yyDollar[4].list, yyDollar[7].list, yyDollar[5].str).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) + yyVAL.node = stmt.NewClass(nil, nil, yyDollar[2].nodesWithEndToken.nodes, yyDollar[3].node, yyDollar[4].list, yyDollar[7].list, yyDollar[5].str).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) } else { - yyVAL.node = stmt.NewClass(nil, nil, nil, yyDollar[3].node, yyDollar[4].list, yyDollar[7].list, yyDollar[5].str).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) + yyVAL.node = stmt.NewClass(nil, nil, nil, yyDollar[3].node, yyDollar[4].list, yyDollar[7].list, yyDollar[5].str).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) } + + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 291: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1014 + //line parser/parser.y:1352 { if yyDollar[3].nodesWithEndToken != nil { - yyVAL.node = expr.NewNew(yyDollar[2].node, yyDollar[3].nodesWithEndToken.nodes).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].nodesWithEndToken.endToken)) + yyVAL.node = expr.NewNew(yyDollar[2].node, yyDollar[3].nodesWithEndToken.nodes).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].nodesWithEndToken.endToken)) } else { - yyVAL.node = expr.NewNew(yyDollar[2].node, nil).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = expr.NewNew(yyDollar[2].node, nil).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) } + + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 292: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1021 + //line parser/parser.y:1361 { yyVAL.node = expr.NewNew(yyDollar[2].node, nil) } case 293: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:1026 + //line parser/parser.y:1366 { - list := expr.NewList(yyDollar[3].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - yyVAL.node = assign_op.NewAssign(list, yyDollar[6].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) + list := expr.NewList(yyDollar[3].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node = assign_op.NewAssign(list, yyDollar[6].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) + + comments.AddComments(list, yyDollar[1].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 294: yyDollar = yyS[yypt-5 : yypt+1] - //line parser/parser.y:1031 + //line parser/parser.y:1374 { - shortList := expr.NewShortList(yyDollar[2].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - yyVAL.node = assign_op.NewAssign(shortList, yyDollar[5].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + shortList := expr.NewShortList(yyDollar[2].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node = assign_op.NewAssign(shortList, yyDollar[5].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + + comments.AddComments(shortList, yyDollar[1].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 295: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1035 + //line parser/parser.y:1382 { - yyVAL.node = assign_op.NewAssign(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = assign_op.NewAssign(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 296: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1036 + //line parser/parser.y:1387 { - yyVAL.node = assign_op.NewAssignRef(yyDollar[1].node, yyDollar[4].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node = assign_op.NewAssignRef(yyDollar[1].node, yyDollar[4].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 297: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1037 + //line parser/parser.y:1392 { - yyVAL.node = expr.NewClone(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = expr.NewClone(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 298: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1038 + //line parser/parser.y:1397 { - yyVAL.node = assign_op.NewPlus(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = assign_op.NewPlus(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 299: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1039 + //line parser/parser.y:1402 { - yyVAL.node = assign_op.NewMinus(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = assign_op.NewMinus(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 300: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1040 + //line parser/parser.y:1407 { - yyVAL.node = assign_op.NewMul(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = assign_op.NewMul(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1041 + //line parser/parser.y:1412 { - yyVAL.node = assign_op.NewPow(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = assign_op.NewPow(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 302: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1042 + //line parser/parser.y:1417 { - yyVAL.node = assign_op.NewDiv(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = assign_op.NewDiv(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 303: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1043 + //line parser/parser.y:1422 { - yyVAL.node = assign_op.NewConcat(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = assign_op.NewConcat(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 304: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1044 + //line parser/parser.y:1427 { - yyVAL.node = assign_op.NewMod(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = assign_op.NewMod(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 305: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1045 + //line parser/parser.y:1432 { - yyVAL.node = assign_op.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = assign_op.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 306: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1046 + //line parser/parser.y:1437 { - yyVAL.node = assign_op.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = assign_op.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 307: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1047 + //line parser/parser.y:1442 { - yyVAL.node = assign_op.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = assign_op.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 308: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1048 + //line parser/parser.y:1447 { - yyVAL.node = assign_op.NewShiftLeft(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = assign_op.NewShiftLeft(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 309: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1049 + //line parser/parser.y:1452 { - yyVAL.node = assign_op.NewShiftRight(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = assign_op.NewShiftRight(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 310: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1050 + //line parser/parser.y:1457 { - yyVAL.node = expr.NewPostInc(yyDollar[1].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yyVAL.node = expr.NewPostInc(yyDollar[1].node).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 311: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1051 + //line parser/parser.y:1462 { - yyVAL.node = expr.NewPreInc(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = expr.NewPreInc(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 312: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1052 + //line parser/parser.y:1467 { - yyVAL.node = expr.NewPostDec(yyDollar[1].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yyVAL.node = expr.NewPostDec(yyDollar[1].node).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 313: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1053 + //line parser/parser.y:1472 { - yyVAL.node = expr.NewPreDec(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = expr.NewPreDec(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 314: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1054 + //line parser/parser.y:1477 { - yyVAL.node = binary_op.NewBooleanOr(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewBooleanOr(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 315: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1055 + //line parser/parser.y:1482 { - yyVAL.node = binary_op.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 316: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1056 + //line parser/parser.y:1487 { - yyVAL.node = binary_op.NewLogicalOr(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewLogicalOr(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 317: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1057 + //line parser/parser.y:1492 { - yyVAL.node = binary_op.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 318: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1058 + //line parser/parser.y:1497 { - yyVAL.node = binary_op.NewLogicalXor(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewLogicalXor(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1059 + //line parser/parser.y:1502 { - yyVAL.node = binary_op.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 320: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1060 + //line parser/parser.y:1507 { - yyVAL.node = binary_op.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 321: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1061 + //line parser/parser.y:1512 { - yyVAL.node = binary_op.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 322: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1062 + //line parser/parser.y:1517 { - yyVAL.node = binary_op.NewConcat(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewConcat(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 323: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1063 + //line parser/parser.y:1522 { - yyVAL.node = binary_op.NewPlus(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewPlus(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 324: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1064 + //line parser/parser.y:1527 { - yyVAL.node = binary_op.NewMinus(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewMinus(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1065 + //line parser/parser.y:1532 { - yyVAL.node = binary_op.NewMul(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewMul(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 326: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1066 + //line parser/parser.y:1537 { - yyVAL.node = binary_op.NewPow(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewPow(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 327: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1067 + //line parser/parser.y:1542 { - yyVAL.node = binary_op.NewDiv(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewDiv(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 328: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1068 + //line parser/parser.y:1547 { - yyVAL.node = binary_op.NewMod(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewMod(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 329: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1069 + //line parser/parser.y:1552 { - yyVAL.node = binary_op.NewShiftLeft(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewShiftLeft(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 330: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1070 + //line parser/parser.y:1557 { - yyVAL.node = binary_op.NewShiftRight(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewShiftRight(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 331: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1071 + //line parser/parser.y:1562 { - yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 332: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1072 + //line parser/parser.y:1567 { - yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 333: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1073 + //line parser/parser.y:1572 { - yyVAL.node = expr.NewBooleanNot(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = expr.NewBooleanNot(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1074 + //line parser/parser.y:1577 { - yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 335: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1075 + //line parser/parser.y:1582 { - yyVAL.node = binary_op.NewIdentical(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewIdentical(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 336: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1076 + //line parser/parser.y:1587 { - yyVAL.node = binary_op.NewNotIdentical(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewNotIdentical(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 337: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1077 + //line parser/parser.y:1592 { - yyVAL.node = binary_op.NewEqual(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewEqual(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 338: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1078 + //line parser/parser.y:1597 { - yyVAL.node = binary_op.NewNotEqual(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewNotEqual(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 339: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1079 + //line parser/parser.y:1602 { - yyVAL.node = binary_op.NewSmaller(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewSmaller(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 340: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1080 + //line parser/parser.y:1607 { - yyVAL.node = binary_op.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 341: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1081 + //line parser/parser.y:1612 { - yyVAL.node = binary_op.NewGreater(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewGreater(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 342: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1082 + //line parser/parser.y:1617 { - yyVAL.node = binary_op.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 343: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1083 + //line parser/parser.y:1622 { - yyVAL.node = binary_op.NewSpaceship(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewSpaceship(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 344: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1084 + //line parser/parser.y:1627 { - yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 345: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1085 + //line parser/parser.y:1631 { yyVAL.node = yyDollar[2].node } case 346: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1086 + //line parser/parser.y:1632 { yyVAL.node = yyDollar[1].node } case 347: yyDollar = yyS[yypt-5 : yypt+1] - //line parser/parser.y:1087 + //line parser/parser.y:1634 { - yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) + yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 348: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1088 + //line parser/parser.y:1639 { - yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 349: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1089 + //line parser/parser.y:1644 { - yyVAL.node = binary_op.NewCoalesce(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = binary_op.NewCoalesce(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 350: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1090 + //line parser/parser.y:1648 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1091 + //line parser/parser.y:1650 { - yyVAL.node = cast.NewCastInt(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = cast.NewCastInt(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 352: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1092 + //line parser/parser.y:1655 { - yyVAL.node = cast.NewCastDouble(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = cast.NewCastDouble(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 353: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1093 + //line parser/parser.y:1660 { - yyVAL.node = cast.NewCastString(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = cast.NewCastString(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 354: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1094 + //line parser/parser.y:1665 { - yyVAL.node = cast.NewCastArray(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = cast.NewCastArray(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 355: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1095 + //line parser/parser.y:1670 { - yyVAL.node = cast.NewCastObject(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = cast.NewCastObject(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 356: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1096 + //line parser/parser.y:1675 { - yyVAL.node = cast.NewCastBool(yyDollar[2].node.SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node))) + yyVAL.node = cast.NewCastBool(yyDollar[2].node.SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node))) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 357: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1097 + //line parser/parser.y:1680 { - yyVAL.node = cast.NewCastUnset(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = cast.NewCastUnset(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 358: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1098 + //line parser/parser.y:1685 { - yyVAL.node = expr.NewExit(yyDollar[2].node, strings.EqualFold(yyDollar[1].token.Value, "die")).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = expr.NewExit(yyDollar[2].node, strings.EqualFold(yyDollar[1].token.Value, "die")).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 359: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1099 + //line parser/parser.y:1690 { - yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 360: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1100 + //line parser/parser.y:1694 { yyVAL.node = yyDollar[1].node } case 361: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1101 + //line parser/parser.y:1696 { - yyVAL.node = expr.NewShellExec(yyDollar[2].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node = expr.NewShellExec(yyDollar[2].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 362: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1102 + //line parser/parser.y:1701 { - yyVAL.node = expr.NewPrint(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = expr.NewPrint(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 363: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1103 + //line parser/parser.y:1706 { - yyVAL.node = expr.NewYield(nil, nil).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = expr.NewYield(nil, nil).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1104 + //line parser/parser.y:1711 { - yyVAL.node = expr.NewYield(nil, yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = expr.NewYield(nil, yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 365: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1105 + //line parser/parser.y:1716 { - yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) + yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 366: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1106 + //line parser/parser.y:1721 { - yyVAL.node = expr.NewYieldFrom(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = expr.NewYieldFrom(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 367: yyDollar = yyS[yypt-11 : yypt+1] - //line parser/parser.y:1108 + //line parser/parser.y:1726 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].list, yyDollar[8].node, yyDollar[10].list, false, yyDollar[2].boolWithToken.value, yyDollar[3].str). - SetComments(yyDollar[1].token.Comments()). SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[11].token)) + + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 368: yyDollar = yyS[yypt-12 : yypt+1] - //line parser/parser.y:1114 + //line parser/parser.y:1733 { yyVAL.node = expr.NewClosure(yyDollar[6].list, yyDollar[8].list, yyDollar[9].node, yyDollar[11].list, true, yyDollar[3].boolWithToken.value, yyDollar[4].str). - SetComments(yyDollar[1].token.Comments()). SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[12].token)) + + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 369: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:1122 + //line parser/parser.y:1742 { yyVAL.str = yylex.(*lexer).phpDocComment yylex.(*lexer).phpDocComment = "" } case 370: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:1126 + //line parser/parser.y:1746 { yyVAL.boolWithToken = boolWithToken{false, nil} } case 371: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1127 + //line parser/parser.y:1747 { yyVAL.boolWithToken = boolWithToken{true, &yyDollar[1].token} } case 372: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:1131 + //line parser/parser.y:1751 { yyVAL.list = []node.Node{} } case 373: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1132 + //line parser/parser.y:1752 { yyVAL.list = yyDollar[3].list } case 374: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1136 + //line parser/parser.y:1756 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 375: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1137 + //line parser/parser.y:1757 { yyVAL.list = []node.Node{yyDollar[1].node} } case 376: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1142 + //line parser/parser.y:1762 { - identifier := node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) - variable := expr.NewVariable(identifier).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) - yyVAL.node = expr.NewClusureUse(variable, false).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + identifier := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = expr.NewClusureUse(variable, false).SetPosition(NewTokenPosition(yyDollar[1].token)) + + comments.AddComments(identifier, yyDollar[1].token.Comments()) + comments.AddComments(variable, yyDollar[1].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 377: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1148 + //line parser/parser.y:1772 { - identifier := node.NewIdentifier(yyDollar[2].token.Value).SetComments(yyDollar[2].token.Comments()).SetPosition(NewTokenPosition(yyDollar[2].token)) - variable := expr.NewVariable(identifier).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[2].token)) - yyVAL.node = expr.NewClusureUse(variable, true).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + identifier := node.NewIdentifier(yyDollar[2].token.Value).SetPosition(NewTokenPosition(yyDollar[2].token)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[2].token)) + yyVAL.node = expr.NewClusureUse(variable, true).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + + comments.AddComments(identifier, yyDollar[2].token.Comments()) + comments.AddComments(variable, yyDollar[1].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 378: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1157 + //line parser/parser.y:1785 { - yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].nodesWithEndToken.nodes).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].nodesWithEndToken.endToken)) + yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].nodesWithEndToken.nodes).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].nodesWithEndToken.endToken)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 379: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1161 + //line parser/parser.y:1790 { - yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].nodesWithEndToken.nodes).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) + yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].nodesWithEndToken.nodes).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 380: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1165 + //line parser/parser.y:1795 { - yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].nodesWithEndToken.nodes).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) + yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].nodesWithEndToken.nodes).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 381: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1169 + //line parser/parser.y:1800 { - yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].nodesWithEndToken.nodes).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].nodesWithEndToken.endToken)) + yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].nodesWithEndToken.nodes).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].nodesWithEndToken.endToken)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 382: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1175 + //line parser/parser.y:1808 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 383: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1176 + //line parser/parser.y:1812 { yyVAL.node = yyDollar[1].node } case 384: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1180 + //line parser/parser.y:1816 { yyVAL.node = yyDollar[1].node } case 385: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1181 + //line parser/parser.y:1817 { yyVAL.node = yyDollar[1].node } case 386: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:1185 + //line parser/parser.y:1821 { yyVAL.node = nil } case 387: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1186 + //line parser/parser.y:1822 { yyVAL.node = yyDollar[2].node } case 388: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:1190 + //line parser/parser.y:1826 { yyVAL.list = []node.Node{} } case 389: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1191 + //line parser/parser.y:1827 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token.Value)} } case 390: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1192 + //line parser/parser.y:1828 { yyVAL.list = yyDollar[1].list } case 391: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:1196 + //line parser/parser.y:1832 { yyVAL.nodesWithEndToken = nil } case 392: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1197 + //line parser/parser.y:1833 { yyVAL.nodesWithEndToken = yyDollar[1].nodesWithEndToken } case 393: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1201 + //line parser/parser.y:1838 { - yyVAL.node = expr.NewArray(yyDollar[3].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node = expr.NewArray(yyDollar[3].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 394: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1202 + //line parser/parser.y:1843 { - yyVAL.node = expr.NewShortArray(yyDollar[2].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node = expr.NewShortArray(yyDollar[2].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 395: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1203 + //line parser/parser.y:1848 { - yyVAL.node = scalar.NewString(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = scalar.NewString(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 396: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1207 + //line parser/parser.y:1856 { - yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 397: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1208 + //line parser/parser.y:1861 { - yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 398: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1209 + //line parser/parser.y:1866 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 399: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1210 + //line parser/parser.y:1871 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 400: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1211 + //line parser/parser.y:1876 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 401: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1212 + //line parser/parser.y:1881 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 402: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1213 + //line parser/parser.y:1886 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 403: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1214 + //line parser/parser.y:1891 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 404: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1215 + //line parser/parser.y:1896 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 405: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1216 + //line parser/parser.y:1901 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 406: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1218 + //line parser/parser.y:1906 { - yyVAL.node = scalar.NewString(yyDollar[2].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) /* TODO: mark as Heredoc*/ + yyVAL.node = scalar.NewString(yyDollar[2].token.Value).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) /* TODO: mark as Heredoc*/ + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 407: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1220 + //line parser/parser.y:1910 { - yyVAL.node = scalar.NewEncapsed(nil).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node = scalar.NewEncapsed(nil).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 408: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1221 + //line parser/parser.y:1915 { - yyVAL.node = scalar.NewEncapsed(yyDollar[2].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node = scalar.NewEncapsed(yyDollar[2].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 409: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1222 + //line parser/parser.y:1920 { - yyVAL.node = scalar.NewEncapsed(yyDollar[2].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node = scalar.NewEncapsed(yyDollar[2].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 410: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1223 + //line parser/parser.y:1924 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1224 + //line parser/parser.y:1925 { yyVAL.node = yyDollar[1].node } case 412: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1228 + //line parser/parser.y:1930 { - yyVAL.node = expr.NewConstFetch(yyDollar[1].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodePosition(yyDollar[1].node)) + yyVAL.node = expr.NewConstFetch(yyDollar[1].node).SetPosition(NewNodePosition(yyDollar[1].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 413: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1230 + //line parser/parser.y:1935 { - target := node.NewIdentifier(yyDollar[3].token.Value).SetComments(yyDollar[3].token.Comments()).SetPosition(NewTokenPosition(yyDollar[3].token)) - yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + target := node.NewIdentifier(yyDollar[3].token.Value).SetPosition(NewTokenPosition(yyDollar[3].token)) + yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + + comments.AddComments(target, yyDollar[3].token.Comments()) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 414: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1235 + //line parser/parser.y:1943 { - target := node.NewIdentifier(yyDollar[3].token.Value).SetComments(yyDollar[3].token.Comments()).SetPosition(NewTokenPosition(yyDollar[3].token)) - yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + target := node.NewIdentifier(yyDollar[3].token.Value).SetPosition(NewTokenPosition(yyDollar[3].token)) + yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + + comments.AddComments(target, yyDollar[3].token.Comments()) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 415: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1242 + //line parser/parser.y:1953 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1243 + //line parser/parser.y:1954 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:1247 + //line parser/parser.y:1958 { yyVAL.node = nil } case 418: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1248 + //line parser/parser.y:1959 { yyVAL.node = yyDollar[1].node } case 419: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1252 + //line parser/parser.y:1963 { yyVAL.node = yyDollar[1].node } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1256 + //line parser/parser.y:1967 { yyVAL.node = yyDollar[1].node } case 421: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1257 + //line parser/parser.y:1968 { yyVAL.node = yyDollar[2].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1258 + //line parser/parser.y:1969 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1262 + //line parser/parser.y:1973 { yyVAL.node = yyDollar[1].node } case 424: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1263 + //line parser/parser.y:1974 { yyVAL.node = yyDollar[2].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1264 + //line parser/parser.y:1975 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1268 + //line parser/parser.y:1979 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1269 + //line parser/parser.y:1981 { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 428: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1270 + //line parser/parser.y:1986 { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 429: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1271 + //line parser/parser.y:1991 { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 430: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1273 + //line parser/parser.y:1996 { - yyVAL.node = expr.NewMethodCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].nodesWithEndToken.nodes).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) + yyVAL.node = expr.NewMethodCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].nodesWithEndToken.nodes).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 431: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1274 + //line parser/parser.y:2000 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1278 + //line parser/parser.y:2004 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1279 + //line parser/parser.y:2005 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1280 + //line parser/parser.y:2007 { - yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1284 + //line parser/parser.y:2015 { - yyVAL.node = expr.NewVariable(node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token))).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + name := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = expr.NewVariable(name).SetPosition(NewTokenPosition(yyDollar[1].token)) + + comments.AddComments(name, yyDollar[1].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 436: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1285 + //line parser/parser.y:2023 { - yyVAL.node = expr.NewVariable(yyDollar[3].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node = expr.NewVariable(yyDollar[3].node).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 437: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1286 + //line parser/parser.y:2028 { - yyVAL.node = expr.NewVariable(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = expr.NewVariable(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 438: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1291 + //line parser/parser.y:2036 { - yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 439: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1295 + //line parser/parser.y:2041 { - yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 440: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1301 + //line parser/parser.y:2048 { yyVAL.node = yyDollar[1].node } case 441: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1302 + //line parser/parser.y:2050 { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 442: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1303 + //line parser/parser.y:2055 { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 443: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1304 + //line parser/parser.y:2060 { - yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 444: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1306 + //line parser/parser.y:2065 { - yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 445: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1310 + //line parser/parser.y:2070 { - yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 446: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1316 + //line parser/parser.y:2078 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 447: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1317 + //line parser/parser.y:2082 { yyVAL.node = yyDollar[2].node } case 448: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1318 + //line parser/parser.y:2083 { yyVAL.node = yyDollar[1].node } case 449: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1322 + //line parser/parser.y:2088 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 450: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1323 + //line parser/parser.y:2092 { yyVAL.node = yyDollar[2].node } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1324 + //line parser/parser.y:2093 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1329 + //line parser/parser.y:2098 { if yyDollar[1].list[len(yyDollar[1].list)-1] == nil { yyVAL.list = yyDollar[1].list[:len(yyDollar[1].list)-1] @@ -4900,244 +5213,291 @@ yydefault: } case 453: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:1339 + //line parser/parser.y:2108 { yyVAL.node = nil } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1340 + //line parser/parser.y:2109 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1345 + //line parser/parser.y:2114 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1346 + //line parser/parser.y:2115 { yyVAL.list = []node.Node{yyDollar[1].node} } case 457: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1350 + //line parser/parser.y:2120 { - yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node, false).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node, false).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 458: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1351 + //line parser/parser.y:2125 { - yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node, false).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodePosition(yyDollar[1].node)) + yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node, false).SetPosition(NewNodePosition(yyDollar[1].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 459: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1352 + //line parser/parser.y:2130 { - yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[4].node, true).SetComments(yyDollar[1].node.Comments()).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[4].node, true).SetPosition(NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 460: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1353 + //line parser/parser.y:2135 { - yyVAL.node = expr.NewArrayItem(nil, yyDollar[2].node, true).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = expr.NewArrayItem(nil, yyDollar[2].node, true).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 461: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:1355 + //line parser/parser.y:2140 { // TODO: Cannot use list() as standalone expression - list := expr.NewList(yyDollar[5].list).SetComments(yyDollar[3].token.Comments()).SetPosition(NewTokensPosition(yyDollar[3].token, yyDollar[6].token)) + list := expr.NewList(yyDollar[5].list).SetPosition(NewTokensPosition(yyDollar[3].token, yyDollar[6].token)) yyVAL.node = expr.NewArrayItem(yyDollar[1].node, list, false). - SetComments(yyDollar[1].node.Comments()). SetPosition(NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token)) + + comments.AddComments(list, yyDollar[3].token.Comments()) + comments.AddComments(yyVAL.node, comments[yyDollar[1].node]) } case 462: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1363 + //line parser/parser.y:2150 { // TODO: Cannot use list() as standalone expression - list := expr.NewList(yyDollar[3].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + list := expr.NewList(yyDollar[3].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) yyVAL.node = expr.NewArrayItem(nil, list, false). - SetComments(yyDollar[1].token.Comments()). SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + + comments.AddComments(list, yyDollar[1].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 463: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1373 + //line parser/parser.y:2162 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 464: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1374 + //line parser/parser.y:2164 { - yyVAL.list = append(yyDollar[1].list, scalar.NewEncapsedStringPart(yyDollar[2].token.Value).SetComments(yyDollar[2].token.Comments()).SetPosition(NewTokenPosition(yyDollar[2].token))) + encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value).SetPosition(NewTokenPosition(yyDollar[2].token)) + yyVAL.list = append(yyDollar[1].list, encapsed) + comments.AddComments(encapsed, yyDollar[2].token.Comments()) } case 465: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1375 + //line parser/parser.y:2169 { yyVAL.list = []node.Node{yyDollar[1].node} } case 466: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1376 + //line parser/parser.y:2171 { - yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)), yyDollar[2].node} + encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.list = []node.Node{encapsed, yyDollar[2].node} + comments.AddComments(encapsed, yyDollar[1].token.Comments()) } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1381 + //line parser/parser.y:2180 { - name := node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) - yyVAL.node = expr.NewVariable(name).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + name := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = expr.NewVariable(name).SetPosition(NewTokenPosition(yyDollar[1].token)) + + comments.AddComments(name, yyDollar[1].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 468: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1386 + //line parser/parser.y:2188 { - identifier := node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) - variable := expr.NewVariable(identifier).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) - yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[3].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + identifier := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[3].node).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + + comments.AddComments(identifier, yyDollar[1].token.Comments()) + comments.AddComments(variable, yyDollar[1].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 469: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1392 + //line parser/parser.y:2198 { - identifier := node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) - variable := expr.NewVariable(identifier).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) - yyVAL.node = expr.NewPropertyFetch(variable, node.NewIdentifier(yyDollar[3].token.Value).SetComments(yyDollar[3].token.Comments()).SetPosition(NewTokenPosition(yyDollar[3].token))). - SetComments(yyDollar[1].token.Comments()). + identifier := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[1].token)) + fetch := node.NewIdentifier(yyDollar[3].token.Value).SetPosition(NewTokenPosition(yyDollar[3].token)) + yyVAL.node = expr.NewPropertyFetch(variable, fetch). SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + + comments.AddComments(identifier, yyDollar[1].token.Comments()) + comments.AddComments(variable, yyDollar[1].token.Comments()) + comments.AddComments(fetch, yyDollar[3].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 470: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1400 + //line parser/parser.y:2211 { - yyVAL.node = expr.NewVariable(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node = expr.NewVariable(yyDollar[2].node).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 471: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1404 + //line parser/parser.y:2216 { - name := node.NewIdentifier(yyDollar[2].token.Value).SetComments(yyDollar[2].token.Comments()).SetPosition(NewTokenPosition(yyDollar[2].token)) - yyVAL.node = expr.NewVariable(name).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + name := node.NewIdentifier(yyDollar[2].token.Value).SetPosition(NewTokenPosition(yyDollar[2].token)) + yyVAL.node = expr.NewVariable(name).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + + comments.AddComments(name, yyDollar[2].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 472: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:1409 + //line parser/parser.y:2224 { - identifier := node.NewIdentifier(yyDollar[2].token.Value).SetComments(yyDollar[2].token.Comments()).SetPosition(NewTokenPosition(yyDollar[2].token)) - variable := expr.NewVariable(identifier).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[2].token)) - yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[4].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) + identifier := node.NewIdentifier(yyDollar[2].token.Value).SetPosition(NewTokenPosition(yyDollar[2].token)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[2].token)) + yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[4].node).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) + + comments.AddComments(identifier, yyDollar[2].token.Comments()) + comments.AddComments(variable, yyDollar[1].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1414 + //line parser/parser.y:2234 { yyVAL.node = yyDollar[2].node } case 474: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1418 + //line parser/parser.y:2238 { - yyVAL.node = scalar.NewString(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = scalar.NewString(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 475: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1422 + //line parser/parser.y:2243 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { - yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) } else { - yyVAL.node = scalar.NewString(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = scalar.NewString(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) } + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 476: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1431 + //line parser/parser.y:2253 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[2].token.Value); err == nil { - lnumber := scalar.NewLnumber(yyDollar[2].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + lnumber := scalar.NewLnumber(yyDollar[2].token.Value).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) yyVAL.node = expr.NewUnaryMinus(lnumber). - SetComments(yyDollar[1].token.Comments()). SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + + comments.AddComments(lnumber, yyDollar[1].token.Comments()) } else { yyDollar[2].token.Value = "-" + yyDollar[2].token.Value - yyVAL.node = scalar.NewString(yyDollar[2].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node = scalar.NewString(yyDollar[2].token.Value).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) } + + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1444 + //line parser/parser.y:2269 { - identifier := node.NewIdentifier(yyDollar[1].token.Value).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) - yyVAL.node = expr.NewVariable(identifier).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenPosition(yyDollar[1].token)) + identifier := node.NewIdentifier(yyDollar[1].token.Value).SetPosition(NewTokenPosition(yyDollar[1].token)) + yyVAL.node = expr.NewVariable(identifier).SetPosition(NewTokenPosition(yyDollar[1].token)) + + comments.AddComments(identifier, yyDollar[1].token.Comments()) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 478: yyDollar = yyS[yypt-5 : yypt+1] - //line parser/parser.y:1451 + //line parser/parser.y:2280 { - yyVAL.node = expr.NewIsset(yyDollar[3].list).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) + yyVAL.node = expr.NewIsset(yyDollar[3].list).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 479: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1452 + //line parser/parser.y:2285 { - yyVAL.node = expr.NewEmpty(yyDollar[3].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node = expr.NewEmpty(yyDollar[3].node).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 480: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1453 + //line parser/parser.y:2290 { - yyVAL.node = expr.NewInclude(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = expr.NewInclude(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 481: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1454 + //line parser/parser.y:2295 { - yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 482: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1455 + //line parser/parser.y:2300 { - yyVAL.node = expr.NewEval(yyDollar[3].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node = expr.NewEval(yyDollar[3].node).SetPosition(NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 483: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1456 + //line parser/parser.y:2305 { - yyVAL.node = expr.NewRequire(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = expr.NewRequire(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 484: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1457 + //line parser/parser.y:2310 { - yyVAL.node = expr.NewRequireOnce(yyDollar[2].node).SetComments(yyDollar[1].token.Comments()).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = expr.NewRequireOnce(yyDollar[2].node).SetPosition(NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 485: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1461 + //line parser/parser.y:2317 { yyVAL.list = []node.Node{yyDollar[1].node} } case 486: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1462 + //line parser/parser.y:2318 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 487: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1466 + //line parser/parser.y:2322 { yyVAL.node = yyDollar[1].node } diff --git a/parser/parser.y b/parser/parser.y index a9252b2..d7eb5fe 100644 --- a/parser/parser.y +++ b/parser/parser.y @@ -18,13 +18,15 @@ import ( ) var rootnode node.Node +var comments comment.Comments -func Parse(src io.Reader, fName string) node.Node { +func Parse(src io.Reader, fName string) (node.Node, comment.Comments) { yyDebug = 0 yyErrorVerbose = true rootnode = stmt.NewStmtList([]node.Node{}) //reset + comments = comment.Comments{} yyParse(newLexer(src, fName)) - return rootnode + return rootnode, comments } func ListGetFirstNodeComments(list []node.Node) []comment.Comment { @@ -34,7 +36,7 @@ func ListGetFirstNodeComments(list []node.Node) []comment.Comment { node := list[0] - return node.Comments() + return comments[node] } type foreachVariable struct { @@ -316,14 +318,36 @@ top_statement_list: ; namespace_name: - T_STRING { $$ = []node.Node{name.NewNamePart($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1))} } - | namespace_name T_NS_SEPARATOR T_STRING { $$ = append($1, name.NewNamePart($3.Value).SetComments(ListGetFirstNodeComments($1)).SetPosition(NewTokenPosition($3))) } + T_STRING + { + namePart := name.NewNamePart($1.Value).SetPosition(NewTokenPosition($1)) + $$ = []node.Node{namePart} + comments.AddComments(namePart, $1.Comments()) + } + | namespace_name T_NS_SEPARATOR T_STRING + { + namePart := name.NewNamePart($3.Value).SetPosition(NewTokenPosition($3)) + $$ = append($1, namePart) + comments.AddComments(namePart, $3.Comments()) + } ; name: - namespace_name { $$ = name.NewName($1).SetComments(ListGetFirstNodeComments($1)).SetPosition(NewNodeListPosition($1)) } - | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = name.NewRelative($3).SetComments($1.Comments()).SetPosition(NewTokenNodeListPosition($1, $3)) } - | T_NS_SEPARATOR namespace_name { $$ = name.NewFullyQualified($2).SetComments($1.Comments()).SetPosition(NewTokenNodeListPosition($1, $2)) } + namespace_name + { + $$ = name.NewName($1).SetPosition(NewNodeListPosition($1)) + comments.AddComments($$, ListGetFirstNodeComments($1)) + } + | T_NAMESPACE T_NS_SEPARATOR namespace_name + { + $$ = name.NewRelative($3).SetPosition(NewTokenNodeListPosition($1, $3)) + comments.AddComments($$, $1.Comments()) + } + | T_NS_SEPARATOR namespace_name + { + $$ = name.NewFullyQualified($2).SetPosition(NewTokenNodeListPosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } ; top_statement: @@ -335,62 +359,94 @@ top_statement: | T_HALT_COMPILER '(' ')' ';' { $$ = stmt.NewHaltCompiler() } | T_NAMESPACE namespace_name ';' { - name := name.NewName($2).SetComments(ListGetFirstNodeComments($2)).SetPosition(NewNodeListPosition($2)) + name := name.NewName($2).SetPosition(NewNodeListPosition($2)) $$ = stmt.NewNamespace(name, nil). - SetComments($1.Comments()). SetPosition(NewTokensPosition($1, $3)) + + comments.AddComments(name, ListGetFirstNodeComments($2)) + comments.AddComments($$, $1.Comments()) } | T_NAMESPACE namespace_name '{' top_statement_list '}' { - name := name.NewName($2).SetComments(ListGetFirstNodeComments($2)).SetPosition(NewNodeListPosition($2)) + name := name.NewName($2).SetPosition(NewNodeListPosition($2)) $$ = stmt.NewNamespace(name, $4). - SetComments($1.Comments()). SetPosition(NewTokensPosition($1, $5)) + + comments.AddComments(name, ListGetFirstNodeComments($2)) + comments.AddComments($$, $1.Comments()) + } + | T_NAMESPACE '{' top_statement_list '}' + { + $$ = stmt.NewNamespace(nil, $3).SetPosition(NewTokensPosition($1, $4)) + comments.AddComments($$, $1.Comments()) } - | T_NAMESPACE '{' top_statement_list '}' { $$ = stmt.NewNamespace(nil, $3).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $4)) } | T_USE mixed_group_use_declaration ';' { $$ = $2 } | T_USE use_type group_use_declaration ';' { $$ = $3.(*stmt.GroupUse).SetUseType($2) } - | T_USE use_declarations ';' { $$ = stmt.NewUseList(nil, $2).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3)) } + | T_USE use_declarations ';' + { + $$ = stmt.NewUseList(nil, $2).SetPosition(NewTokensPosition($1, $3)) + comments.AddComments($$, $1.Comments()) + } | T_USE use_type use_declarations ';' { $$ = stmt.NewUseList($2, $3) } - | T_CONST const_list ';' { $$ = stmt.NewConstList($2).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3)) } + | T_CONST const_list ';' + { + $$ = stmt.NewConstList($2).SetPosition(NewTokensPosition($1, $3)) + comments.AddComments($$, $1.Comments()) + } ; use_type: - T_FUNCTION { $$ = node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } - | T_CONST { $$ = node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } + T_FUNCTION + { + $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } + | T_CONST + { + $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } ; group_use_declaration: namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' { - name := name.NewName($1).SetComments(ListGetFirstNodeComments($1)).SetPosition(NewNodeListPosition($1)) + name := name.NewName($1).SetPosition(NewNodeListPosition($1)) $$ = stmt.NewGroupUse(nil, name, $4). - SetComments(ListGetFirstNodeComments($1)). SetPosition(NewNodeListTokenPosition($1, $6)) + + comments.AddComments(name, ListGetFirstNodeComments($1)) + comments.AddComments($$, ListGetFirstNodeComments($1)) } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' { - name := name.NewName($2).SetComments(ListGetFirstNodeComments($2)).SetPosition(NewNodeListPosition($2)) + name := name.NewName($2).SetPosition(NewNodeListPosition($2)) $$ = stmt.NewGroupUse(nil, name, $5). - SetComments($1.Comments()). SetPosition(NewTokensPosition($1, $7)) + + comments.AddComments(name, ListGetFirstNodeComments($2)) + comments.AddComments($$, $1.Comments()) } ; mixed_group_use_declaration: namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' { - name := name.NewName($1).SetComments(ListGetFirstNodeComments($1)).SetPosition(NewNodeListPosition($1)) + name := name.NewName($1).SetPosition(NewNodeListPosition($1)) $$ = stmt.NewGroupUse(nil, name, $4). - SetComments(ListGetFirstNodeComments($1)). SetPosition(NewNodeListTokenPosition($1, $6)) + + comments.AddComments(name, ListGetFirstNodeComments($1)) + comments.AddComments($$, ListGetFirstNodeComments($1)) } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' { - name := name.NewName($2).SetComments(ListGetFirstNodeComments($2)).SetPosition(NewNodeListPosition($2)) + name := name.NewName($2).SetPosition(NewNodeListPosition($2)) $$ = stmt.NewGroupUse(nil, name, $5). - SetComments($1.Comments()). SetPosition(NewTokensPosition($1, $7)) + + comments.AddComments(name, ListGetFirstNodeComments($2)) + comments.AddComments($$, $1.Comments()) } ; @@ -422,16 +478,23 @@ inline_use_declaration: ; unprefixed_use_declaration: - namespace_name - { - name := name.NewName($1).SetComments(ListGetFirstNodeComments($1)).SetPosition(NewNodeListPosition($1)) - $$ = stmt.NewUse(nil, name, nil).SetComments(ListGetFirstNodeComments($1)).SetPosition(NewNodeListPosition($1)) - } + namespace_name + { + name := name.NewName($1).SetPosition(NewNodeListPosition($1)) + $$ = stmt.NewUse(nil, name, nil).SetPosition(NewNodeListPosition($1)) + + comments.AddComments(name, ListGetFirstNodeComments($1)) + comments.AddComments($$, ListGetFirstNodeComments($1)) + } | namespace_name T_AS T_STRING { - name := name.NewName($1).SetComments(ListGetFirstNodeComments($1)).SetPosition(NewNodeListPosition($1)) - alias := node.NewIdentifier($3.Value).SetComments($3.Comments()).SetPosition(NewTokenPosition($3)) - $$ = stmt.NewUse(nil, name, alias).SetComments(ListGetFirstNodeComments($1)).SetPosition(NewNodeListTokenPosition($1, $3)) + name := name.NewName($1).SetPosition(NewNodeListPosition($1)) + alias := node.NewIdentifier($3.Value).SetPosition(NewTokenPosition($3)) + $$ = stmt.NewUse(nil, name, alias).SetPosition(NewNodeListTokenPosition($1, $3)) + + comments.AddComments(name, ListGetFirstNodeComments($1)) + comments.AddComments(alias, $3.Comments()) + comments.AddComments($$, ListGetFirstNodeComments($1)) } ; @@ -456,62 +519,150 @@ inner_statement: | class_declaration_statement { $$ = $1; } | trait_declaration_statement { $$ = $1; } | interface_declaration_statement { $$ = $1; } - | T_HALT_COMPILER '(' ')' ';' { $$ = stmt.NewHaltCompiler().SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $4)) } + | T_HALT_COMPILER '(' ')' ';' + { + $$ = stmt.NewHaltCompiler().SetPosition(NewTokensPosition($1, $4)) + comments.AddComments($$, $1.Comments()) + } statement: - '{' inner_statement_list '}' { $$ = stmt.NewStmtList($2).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3)) } + '{' inner_statement_list '}' + { + $$ = stmt.NewStmtList($2).SetPosition(NewTokensPosition($1, $3)) + comments.AddComments($$, $1.Comments()) + } | if_stmt { $$ = $1; } | alt_if_stmt { $$ = $1; } | T_WHILE '(' expr ')' while_statement - { $$ = stmt.NewWhile($1, $3, $5).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $5)) } - | T_DO statement T_WHILE '(' expr ')' ';' { $$ = stmt.NewDo($2, $5).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $7)) } + { + $$ = stmt.NewWhile($1, $3, $5).SetPosition(NewTokenNodePosition($1, $5)) + comments.AddComments($$, $1.Comments()) + } + | T_DO statement T_WHILE '(' expr ')' ';' + { + $$ = stmt.NewDo($2, $5).SetPosition(NewTokensPosition($1, $7)) + comments.AddComments($$, $1.Comments()) + } | T_FOR '(' for_exprs ';' for_exprs ';' for_exprs ')' for_statement - { $$ = stmt.NewFor($3, $5, $7, $9).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $9)) } - | T_SWITCH '(' expr ')' switch_case_list { $$ = stmt.NewSwitch($1, $3, $5.nodes).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $5.endToken)) } - | T_BREAK optional_expr ';' { $$ = stmt.NewBreak($2).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3)) } - | T_CONTINUE optional_expr ';' { $$ = stmt.NewContinue($2).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3)) } - | T_RETURN optional_expr ';' { $$ = stmt.NewReturn($2).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3)) } - | T_GLOBAL global_var_list ';' { $$ = stmt.NewGlobal($2).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3)) } - | T_STATIC static_var_list ';' { $$ = stmt.NewStatic($2).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3)) } - | T_ECHO echo_expr_list ';' { $$ = stmt.NewEcho($2).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3)) } - | T_INLINE_HTML { $$ = stmt.NewInlineHtml($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } - | expr ';' { $$ = stmt.NewExpression($1).SetComments($1.Comments()).SetPosition(NewNodeTokenPosition($1, $2)) } + { + $$ = stmt.NewFor($3, $5, $7, $9).SetPosition(NewTokenNodePosition($1, $9)) + comments.AddComments($$, $1.Comments()) + } + | T_SWITCH '(' expr ')' switch_case_list + { + $$ = stmt.NewSwitch($1, $3, $5.nodes).SetPosition(NewTokensPosition($1, $5.endToken)) + comments.AddComments($$, $1.Comments()) + } + | T_BREAK optional_expr ';' + { + $$ = stmt.NewBreak($2).SetPosition(NewTokensPosition($1, $3)) + comments.AddComments($$, $1.Comments()) + } + | T_CONTINUE optional_expr ';' + { + $$ = stmt.NewContinue($2).SetPosition(NewTokensPosition($1, $3)) + comments.AddComments($$, $1.Comments()) + } + | T_RETURN optional_expr ';' + { + $$ = stmt.NewReturn($2).SetPosition(NewTokensPosition($1, $3)) + comments.AddComments($$, $1.Comments()) + } + | T_GLOBAL global_var_list ';' + { + $$ = stmt.NewGlobal($2).SetPosition(NewTokensPosition($1, $3)) + comments.AddComments($$, $1.Comments()) + } + | T_STATIC static_var_list ';' + { + $$ = stmt.NewStatic($2).SetPosition(NewTokensPosition($1, $3)) + comments.AddComments($$, $1.Comments()) + } + | T_ECHO echo_expr_list ';' + { + $$ = stmt.NewEcho($2).SetPosition(NewTokensPosition($1, $3)) + comments.AddComments($$, $1.Comments()) + } + | T_INLINE_HTML + { + $$ = stmt.NewInlineHtml($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } + | expr ';' + { + $$ = stmt.NewExpression($1).SetPosition(NewNodeTokenPosition($1, $2)) + comments.AddComments($$, comments[$1]) + } | T_UNSET '(' unset_variables possible_comma ')' ';' - { $$ = stmt.NewUnset($3).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $6)) } + { + $$ = stmt.NewUnset($3).SetPosition(NewTokensPosition($1, $6)) + comments.AddComments($$, $1.Comments()) + } | T_FOREACH '(' expr T_AS foreach_variable ')' foreach_statement - { $$ = stmt.NewForeach($3, nil, $5.node, $7, $5.byRef).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $7)) } + { + $$ = stmt.NewForeach($3, nil, $5.node, $7, $5.byRef).SetPosition(NewTokenNodePosition($1, $7)) + comments.AddComments($$, $1.Comments()) + } | T_FOREACH '(' expr T_AS variable T_DOUBLE_ARROW foreach_variable ')' foreach_statement - { $$ = stmt.NewForeach($3, $5, $7.node, $9, $7.byRef).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $9)) } - | T_DECLARE '(' const_list ')' declare_statement { $$ = stmt.NewDeclare($3, $5).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $5)) } - | ';' { $$ = stmt.NewNop().SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } + { + $$ = stmt.NewForeach($3, $5, $7.node, $9, $7.byRef).SetPosition(NewTokenNodePosition($1, $9)) + comments.AddComments($$, $1.Comments()) + } + | T_DECLARE '(' const_list ')' declare_statement + { + $$ = stmt.NewDeclare($3, $5).SetPosition(NewTokenNodePosition($1, $5)) + comments.AddComments($$, $1.Comments()) + } + | ';' + { + $$ = stmt.NewNop().SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } | T_TRY '{' inner_statement_list '}' catch_list finally_statement { if $6 == nil { - $$ = stmt.NewTry($3, $5, $6).SetComments($1.Comments()).SetPosition(NewTokenNodeListPosition($1, $5)) + $$ = stmt.NewTry($3, $5, $6).SetPosition(NewTokenNodeListPosition($1, $5)) } else { - $$ = stmt.NewTry($3, $5, $6).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $6)) + $$ = stmt.NewTry($3, $5, $6).SetPosition(NewTokenNodePosition($1, $6)) } + + comments.AddComments($$, $1.Comments()) } - | T_THROW expr ';' { $$ = stmt.NewThrow($2).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3)) } + | T_THROW expr ';' + { + $$ = stmt.NewThrow($2).SetPosition(NewTokensPosition($1, $3)) + comments.AddComments($$, $1.Comments()) + } | T_GOTO T_STRING ';' { - label := node.NewIdentifier($2.Value).SetComments($2.Comments()).SetPosition(NewTokenPosition($2)) - $$ = stmt.NewGoto(label).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3)) + label := node.NewIdentifier($2.Value).SetPosition(NewTokenPosition($2)) + $$ = stmt.NewGoto(label).SetPosition(NewTokensPosition($1, $3)) + + comments.AddComments(label, $2.Comments()) + comments.AddComments($$, $1.Comments()) } | T_STRING ':' { - label := node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - $$ = stmt.NewLabel(label).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $2)) + label := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + $$ = stmt.NewLabel(label).SetPosition(NewTokensPosition($1, $2)) + + comments.AddComments(label, $1.Comments()) + comments.AddComments($$, $1.Comments()) } catch_list: /* empty */ { $$ = []node.Node{} } | catch_list T_CATCH '(' catch_name_list T_VARIABLE ')' '{' inner_statement_list '}' - { - identifier := node.NewIdentifier($5.Value).SetComments($5.Comments()).SetPosition(NewTokenPosition($5)) - variable := expr.NewVariable(identifier).SetComments($5.Comments()).SetPosition(NewTokenPosition($5)) - $$ = append($1, stmt.NewCatch($4, variable, $8).SetComments($2.Comments()).SetPosition(NewTokensPosition($2, $9))) - } + { + identifier := node.NewIdentifier($5.Value).SetPosition(NewTokenPosition($5)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($5)) + catch := stmt.NewCatch($4, variable, $8).SetPosition(NewTokensPosition($2, $9)) + $$ = append($1, catch) + + comments.AddComments(identifier, $5.Comments()) + comments.AddComments(variable, $5.Comments()) + comments.AddComments(catch, $2.Comments()) + } ; catch_name_list: name { $$ = []node.Node{$1} } @@ -520,7 +671,11 @@ catch_name_list: finally_statement: /* empty */ { $$ = nil } - | T_FINALLY '{' inner_statement_list '}' { $$ = stmt.NewFinally($3).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $4)) } + | T_FINALLY '{' inner_statement_list '}' + { + $$ = stmt.NewFinally($3).SetPosition(NewTokensPosition($1, $4)) + comments.AddComments($$, $1.Comments()) + } ; unset_variables: @@ -535,10 +690,12 @@ unset_variable: function_declaration_statement: T_FUNCTION returns_ref T_STRING backup_doc_comment '(' parameter_list ')' return_type '{' inner_statement_list '}' { - name := node.NewIdentifier($3.Value).SetComments($3.Comments()).SetPosition(NewTokenPosition($3)) + name := node.NewIdentifier($3.Value).SetPosition(NewTokenPosition($3)) $$ = stmt.NewFunction(name, $2.value, $6, $8, $10, $4). - SetComments($1.Comments()). SetPosition(NewTokensPosition($1, $11)) + + comments.AddComments(name, $3.Comments()) + comments.AddComments($$, $1.Comments()) } ; @@ -553,20 +710,24 @@ is_variadic: ; class_declaration_statement: - class_modifiers T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' - { - name := node.NewIdentifier($3.Value).SetComments($3.Comments()).SetPosition(NewTokenPosition($3)) - $$ = stmt.NewClass(name, $1, nil, $4, $5, $8, $6). - SetComments($2.Comments()). - SetPosition(NewOptionalListTokensPosition($1, $2, $9)) - } + class_modifiers T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' + { + name := node.NewIdentifier($3.Value).SetPosition(NewTokenPosition($3)) + $$ = stmt.NewClass(name, $1, nil, $4, $5, $8, $6). + SetPosition(NewOptionalListTokensPosition($1, $2, $9)) + + comments.AddComments(name, $3.Comments()) + comments.AddComments($$, ListGetFirstNodeComments($1)) + } | T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' - { - name := node.NewIdentifier($2.Value).SetComments($2.Comments()).SetPosition(NewTokenPosition($2)) - $$ = stmt.NewClass(name, nil, nil, $3, $4, $7, $5). - SetComments($1.Comments()). - SetPosition(NewTokensPosition($1, $8)) - } + { + name := node.NewIdentifier($2.Value).SetPosition(NewTokenPosition($2)) + $$ = stmt.NewClass(name, nil, nil, $3, $4, $7, $5). + SetPosition(NewTokensPosition($1, $8)) + + comments.AddComments(name, $2.Comments()) + comments.AddComments($$, $1.Comments()) + } ; class_modifiers: @@ -575,27 +736,39 @@ class_modifiers: ; class_modifier: - T_ABSTRACT { $$ = node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } - | T_FINAL { $$ = node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } + T_ABSTRACT + { + $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } + | T_FINAL + { + $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } ; trait_declaration_statement: T_TRAIT T_STRING backup_doc_comment '{' class_statement_list '}' { - name := node.NewIdentifier($2.Value).SetComments($2.Comments()).SetPosition(NewTokenPosition($2)) + name := node.NewIdentifier($2.Value).SetPosition(NewTokenPosition($2)) $$ = stmt.NewTrait(name, $5, $3). - SetComments($1.Comments()). SetPosition(NewTokensPosition($1, $6)) + + comments.AddComments(name, $2.Comments()) + comments.AddComments($$, $1.Comments()) } ; interface_declaration_statement: T_INTERFACE T_STRING interface_extends_list backup_doc_comment '{' class_statement_list '}' { - name := node.NewIdentifier($2.Value).SetComments($2.Comments()).SetPosition(NewTokenPosition($2)) + name := node.NewIdentifier($2.Value).SetPosition(NewTokenPosition($2)) $$ = stmt.NewInterface(name, $3, $6, $4). - SetComments($1.Comments()). SetPosition(NewTokensPosition($1, $7)) + + comments.AddComments(name, $2.Comments()) + comments.AddComments($$, $1.Comments()) } ; @@ -617,23 +790,45 @@ implements_list: foreach_variable: variable { $$ = foreachVariable{$1, false} } | '&' variable { $$ = foreachVariable{$2, true} } - | T_LIST '(' array_pair_list ')' { $$ = foreachVariable{expr.NewList($3).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $4)), false} } - | '[' array_pair_list ']' { $$ = foreachVariable{expr.NewShortList($2).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3)), false} } + | T_LIST '(' array_pair_list ')' + { + list := expr.NewList($3).SetPosition(NewTokensPosition($1, $4)) + $$ = foreachVariable{list, false} + comments.AddComments(list, $1.Comments()) + } + | '[' array_pair_list ']' + { + list := expr.NewShortList($2).SetPosition(NewTokensPosition($1, $3)) + $$ = foreachVariable{list, false} + comments.AddComments(list, $1.Comments()) + } ; for_statement: statement { $$ = $1; } - | ':' inner_statement_list T_ENDFOR ';' { $$ = stmt.NewStmtList($2).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $4)) } + | ':' inner_statement_list T_ENDFOR ';' + { + $$ = stmt.NewStmtList($2).SetPosition(NewTokensPosition($1, $4)) + comments.AddComments($$, $1.Comments()) + } ; foreach_statement: statement { $$ = $1; } - | ':' inner_statement_list T_ENDFOREACH ';' { $$ = stmt.NewStmtList($2).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $4)) } + | ':' inner_statement_list T_ENDFOREACH ';' + { + $$ = stmt.NewStmtList($2).SetPosition(NewTokensPosition($1, $4)) + comments.AddComments($$, $1.Comments()) + } ; declare_statement: statement { $$ = $1; } - | ':' inner_statement_list T_ENDDECLARE ';' { $$ = stmt.NewStmtList($2).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $4)) } + | ':' inner_statement_list T_ENDDECLARE ';' + { + $$ = stmt.NewStmtList($2).SetPosition(NewTokensPosition($1, $4)) + comments.AddComments($$, $1.Comments()) + } ; switch_case_list: @@ -647,11 +842,15 @@ case_list: /* empty */ { $$ = []node.Node{} } | case_list T_CASE expr case_separator inner_statement_list { - $$ = append($1, stmt.NewCase($3, $5).SetComments($2.Comments()).SetPosition(NewTokenNodeListPosition($2, $5))) + _case := stmt.NewCase($3, $5).SetPosition(NewTokenNodeListPosition($2, $5)) + $$ = append($1, _case) + comments.AddComments(_case, $2.Comments()) } | case_list T_DEFAULT case_separator inner_statement_list { - $$ = append($1, stmt.NewDefault($4).SetComments($2.Comments()).SetPosition(NewTokenNodeListPosition($2, $4))) + _default := stmt.NewDefault($4).SetPosition(NewTokenNodeListPosition($2, $4)) + $$ = append($1, _default) + comments.AddComments(_default, $2.Comments()) } ; @@ -662,52 +861,73 @@ case_separator: while_statement: statement { $$ = $1; } - | ':' inner_statement_list T_ENDWHILE ';' { $$ = stmt.NewStmtList($2).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $4)) } + | ':' inner_statement_list T_ENDWHILE ';' + { + $$ = stmt.NewStmtList($2).SetPosition(NewTokensPosition($1, $4)) + comments.AddComments($$, $1.Comments()) + } ; if_stmt_without_else: - T_IF '(' expr ')' statement { $$ = stmt.NewIf($3, $5).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $5)) } + T_IF '(' expr ')' statement + { + $$ = stmt.NewIf($3, $5).SetPosition(NewTokenNodePosition($1, $5)) + comments.AddComments($$, $1.Comments()) + } | if_stmt_without_else T_ELSEIF '(' expr ')' statement - { - _elseIf := stmt.NewElseIf($4, $6).SetComments($2.Comments()).SetPosition(NewTokenNodePosition($2, $6)) - $$ = $1.(*stmt.If).AddElseIf(_elseIf).SetPosition(NewNodesPosition($1, $6)) - } + { + _elseIf := stmt.NewElseIf($4, $6).SetPosition(NewTokenNodePosition($2, $6)) + $$ = $1.(*stmt.If).AddElseIf(_elseIf).SetPosition(NewNodesPosition($1, $6)) + + comments.AddComments(_elseIf, $2.Comments()) + } ; if_stmt: if_stmt_without_else %prec T_NOELSE { $$ = $1; } | if_stmt_without_else T_ELSE statement - { - _else := stmt.NewElse($3).SetComments($2.Comments()).SetPosition(NewTokenNodePosition($2, $3)) - $$ = $1.(*stmt.If).SetElse(_else).SetPosition(NewNodesPosition($1, $3)) - } + { + _else := stmt.NewElse($3).SetPosition(NewTokenNodePosition($2, $3)) + $$ = $1.(*stmt.If).SetElse(_else).SetPosition(NewNodesPosition($1, $3)) + + comments.AddComments($$, $2.Comments()) + } ; alt_if_stmt_without_else: - T_IF '(' expr ')' ':' inner_statement_list - { - stmts := stmt.NewStmtList($6).SetComments($5.Comments()).SetPosition(NewNodeListPosition($6)) - $$ = stmt.NewAltIf($3, stmts).SetComments($1.Comments()).SetPosition(NewTokenNodeListPosition($1, $6)) - } + T_IF '(' expr ')' ':' inner_statement_list + { + stmts := stmt.NewStmtList($6).SetPosition(NewNodeListPosition($6)) + $$ = stmt.NewAltIf($3, stmts).SetPosition(NewTokenNodeListPosition($1, $6)) + + comments.AddComments(stmts, $5.Comments()) + comments.AddComments($$, $1.Comments()) + } | alt_if_stmt_without_else T_ELSEIF '(' expr ')' ':' inner_statement_list - { - stmts := stmt.NewStmtList($7).SetComments($6.Comments()).SetPosition(NewNodeListPosition($7)) - _elseIf := stmt.NewAltElseIf($4, stmts).SetComments($2.Comments()).SetPosition(NewTokenNodeListPosition($2, $7)) - $$ = $1.(*stmt.AltIf).AddElseIf(_elseIf) - } + { + stmts := stmt.NewStmtList($7).SetPosition(NewNodeListPosition($7)) + _elseIf := stmt.NewAltElseIf($4, stmts).SetPosition(NewTokenNodeListPosition($2, $7)) + $$ = $1.(*stmt.AltIf).AddElseIf(_elseIf) + + comments.AddComments(stmts, $6.Comments()) + comments.AddComments(_elseIf, $2.Comments()) + } ; alt_if_stmt: - alt_if_stmt_without_else T_ENDIF ';' - { - $$ = $1.SetPosition(NewNodeTokenPosition($1, $3)) - } + alt_if_stmt_without_else T_ENDIF ';' + { + $$ = $1.SetPosition(NewNodeTokenPosition($1, $3)) + } | alt_if_stmt_without_else T_ELSE ':' inner_statement_list T_ENDIF ';' - { - stmts := stmt.NewStmtList($4).SetComments($3.Comments()).SetPosition(NewNodeListPosition($4)) - _else := stmt.NewAltElse(stmts).SetComments($2.Comments()).SetPosition(NewTokenNodeListPosition($2, $4)) - $$ = $1.(*stmt.AltIf).SetElse(_else).SetPosition(NewNodeTokenPosition($1, $6)) - } + { + stmts := stmt.NewStmtList($4).SetPosition(NewNodeListPosition($4)) + _else := stmt.NewAltElse(stmts).SetPosition(NewTokenNodeListPosition($2, $4)) + $$ = $1.(*stmt.AltIf).SetElse(_else).SetPosition(NewNodeTokenPosition($1, $6)) + + comments.AddComments(stmts, $3.Comments()) + comments.AddComments(_else, $2.Comments()) + } ; parameter_list: @@ -721,34 +941,50 @@ non_empty_parameter_list: ; parameter: - optional_type is_reference is_variadic T_VARIABLE - { - identifier := node.NewIdentifier($4.Value).SetComments($4.Comments()).SetPosition(NewTokenPosition($4)) - variable := expr.NewVariable(identifier).SetComments($4.Comments()).SetPosition(NewTokenPosition($4)) - if $1 != nil { - $$ = node.NewParameter($1, variable, nil, $2.value, $3.value).SetComments($1.Comments()).SetPosition(NewNodeTokenPosition($1, $4)) - } else if $2.value == true { - $$ = node.NewParameter($1, variable, nil, $2.value, $3.value).SetComments($2.token.Comments()).SetPosition(NewTokensPosition(*$2.token, $4)) - } else if $3.value == true { - $$ = node.NewParameter($1, variable, nil, $2.value, $3.value).SetComments($3.token.Comments()).SetPosition(NewTokensPosition(*$3.token, $4)) - } else { - $$ = node.NewParameter($1, variable, nil, $2.value, $3.value).SetComments($4.Comments()).SetPosition(NewTokenPosition($4)) - } + optional_type is_reference is_variadic T_VARIABLE + { + identifier := node.NewIdentifier($4.Value).SetPosition(NewTokenPosition($4)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($4)) + + comments.AddComments($$, $4.Comments()) + comments.AddComments($$, $4.Comments()) + + if $1 != nil { + $$ = node.NewParameter($1, variable, nil, $2.value, $3.value).SetPosition(NewNodeTokenPosition($1, $4)) + comments.AddComments($$, comments[$1]) + } else if $2.value == true { + $$ = node.NewParameter($1, variable, nil, $2.value, $3.value).SetPosition(NewTokensPosition(*$2.token, $4)) + comments.AddComments($$, $2.token.Comments()) + } else if $3.value == true { + $$ = node.NewParameter($1, variable, nil, $2.value, $3.value).SetPosition(NewTokensPosition(*$3.token, $4)) + comments.AddComments($$, $3.token.Comments()) + } else { + $$ = node.NewParameter($1, variable, nil, $2.value, $3.value).SetPosition(NewTokenPosition($4)) + comments.AddComments($$, $4.Comments()) } + } | optional_type is_reference is_variadic T_VARIABLE '=' expr - { - identifier := node.NewIdentifier($4.Value).SetComments($4.Comments()).SetPosition(NewTokenPosition($4)) - variable := expr.NewVariable(identifier).SetComments($4.Comments()).SetPosition(NewTokenPosition($4)) - if $1 != nil { - $$ = node.NewParameter($1, variable, $6, $2.value, $3.value).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $6)) - } else if $2.value == true { - $$ = node.NewParameter($1, variable, $6, $2.value, $3.value).SetComments($2.token.Comments()).SetPosition(NewTokenNodePosition(*$2.token, $6)) - } else if $3.value == true { - $$ = node.NewParameter($1, variable, $6, $2.value, $3.value).SetComments($3.token.Comments()).SetPosition(NewTokenNodePosition(*$3.token, $6)) - } else { - $$ = node.NewParameter($1, variable, $6, $2.value, $3.value).SetComments($4.Comments()).SetPosition(NewTokenNodePosition($4, $6)) - } + { + identifier := node.NewIdentifier($4.Value).SetPosition(NewTokenPosition($4)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($4)) + + comments.AddComments($$, $4.Comments()) + comments.AddComments($$, $4.Comments()) + + if $1 != nil { + $$ = node.NewParameter($1, variable, $6, $2.value, $3.value).SetPosition(NewNodesPosition($1, $6)) + comments.AddComments($$, comments[$1]) + } else if $2.value == true { + $$ = node.NewParameter($1, variable, $6, $2.value, $3.value).SetPosition(NewTokenNodePosition(*$2.token, $6)) + comments.AddComments($$, $2.token.Comments()) + } else if $3.value == true { + $$ = node.NewParameter($1, variable, $6, $2.value, $3.value).SetPosition(NewTokenNodePosition(*$3.token, $6)) + comments.AddComments($$, $3.token.Comments()) + } else { + $$ = node.NewParameter($1, variable, $6, $2.value, $3.value).SetPosition(NewTokenNodePosition($4, $6)) + comments.AddComments($$, $4.Comments()) } + } ; optional_type: @@ -757,13 +993,25 @@ optional_type: ; type_expr: - type { $$ = $1; } - | '?' type { $$ = node.NewNullable($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } + type { $$ = $1; } + | '?' type + { + $$ = node.NewNullable($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } ; type: - T_ARRAY { $$ = node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } - | T_CALLABLE { $$ = node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } + T_ARRAY + { + $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } + | T_CALLABLE + { + $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } | name { $$ = $1; } ; @@ -783,8 +1031,16 @@ non_empty_argument_list: ; argument: - expr { $$ = node.NewArgument($1, false).SetComments($1.Comments()).SetPosition(NewNodePosition($1)) } - | T_ELLIPSIS expr { $$ = node.NewArgument($2, true).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } + expr + { + $$ = node.NewArgument($1, false).SetPosition(NewNodePosition($1)) + comments.AddComments($$, comments[$1]) + } + | T_ELLIPSIS expr + { + $$ = node.NewArgument($2, true).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } ; global_var_list: @@ -804,15 +1060,23 @@ static_var_list: static_var: T_VARIABLE { - identifier := node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - variable := expr.NewVariable(identifier).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - $$ = stmt.NewStaticVar(variable, nil).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) + identifier := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($1)) + $$ = stmt.NewStaticVar(variable, nil).SetPosition(NewTokenPosition($1)) + + comments.AddComments(identifier, $1.Comments()) + comments.AddComments(variable, $1.Comments()) + comments.AddComments($$, $1.Comments()) } | T_VARIABLE '=' expr { - identifier := node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - variable := expr.NewVariable(identifier).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - $$ = stmt.NewStaticVar(variable, $3).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $3)) + identifier := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($1)) + $$ = stmt.NewStaticVar(variable, $3).SetPosition(NewTokenNodePosition($1, $3)) + + comments.AddComments(identifier, $1.Comments()) + comments.AddComments(variable, $1.Comments()) + comments.AddComments($$, $1.Comments()) } ; @@ -822,15 +1086,29 @@ class_statement_list: ; class_statement: - variable_modifiers property_list ';' { $$ = stmt.NewPropertyList($1, $2).SetComments(ListGetFirstNodeComments($1)).SetPosition(NewNodeListTokenPosition($1, $3)) } - | method_modifiers T_CONST class_const_list ';' { $$ = stmt.NewClassConstList($1, $3).SetComments(ListGetFirstNodeComments($1)).SetPosition(NewOptionalListTokensPosition($1, $2, $4)) } - | T_USE name_list trait_adaptations { $$ = stmt.NewTraitUse($2, $3.nodes).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3.endToken)) } + variable_modifiers property_list ';' + { + $$ = stmt.NewPropertyList($1, $2).SetPosition(NewNodeListTokenPosition($1, $3)) + comments.AddComments($$, ListGetFirstNodeComments($1)) + } + | method_modifiers T_CONST class_const_list ';' + { + $$ = stmt.NewClassConstList($1, $3).SetPosition(NewOptionalListTokensPosition($1, $2, $4)) + comments.AddComments($$, ListGetFirstNodeComments($1)) + } + | T_USE name_list trait_adaptations + { + $$ = stmt.NewTraitUse($2, $3.nodes).SetPosition(NewTokensPosition($1, $3.endToken)) + comments.AddComments($$, $1.Comments()) + } | method_modifiers T_FUNCTION returns_ref identifier backup_doc_comment '(' parameter_list ')' return_type method_body { - name := node.NewIdentifier($4.Value).SetComments($4.Comments()).SetPosition(NewTokenPosition($4)) + name := node.NewIdentifier($4.Value).SetPosition(NewTokenPosition($4)) $$ = stmt.NewClassMethod(name, $1, $3.value, $7, $9, $10.nodes, $5). - SetComments(ListGetFirstNodeComments($1)). SetPosition(NewOptionalListTokensPosition($1, $2, $10.endToken)) + + comments.AddComments(name, $4.Comments()) + comments.AddComments($$, ListGetFirstNodeComments($1)) } ; @@ -858,55 +1136,70 @@ trait_adaptation: trait_precedence: absolute_trait_method_reference T_INSTEADOF name_list { - name := name.NewName($3).SetComments(ListGetFirstNodeComments($3)).SetPosition(NewNodeListPosition($3)) + name := name.NewName($3).SetPosition(NewNodeListPosition($3)) $$ = stmt.NewTraitUsePrecedence($1, name). - SetComments($1.Comments()). SetPosition(NewNodeNodeListPosition($1, $3)) + + comments.AddComments(name, ListGetFirstNodeComments($3)) + comments.AddComments($$, comments[$1]) } ; trait_alias: - trait_method_reference T_AS T_STRING - { - alias := node.NewIdentifier($3.Value).SetComments($3.Comments()).SetPosition(NewTokenPosition($3)) - $$ = stmt.NewTraitUseAlias($1, nil, alias). - SetComments($1.Comments()). - SetPosition(NewNodeTokenPosition($1, $3)) - } + trait_method_reference T_AS T_STRING + { + alias := node.NewIdentifier($3.Value).SetPosition(NewTokenPosition($3)) + $$ = stmt.NewTraitUseAlias($1, nil, alias). + SetPosition(NewNodeTokenPosition($1, $3)) + + comments.AddComments(alias, $3.Comments()) + comments.AddComments($$, comments[$1]) + } | trait_method_reference T_AS reserved_non_modifiers - { - alias := node.NewIdentifier($3.Value).SetComments($3.Comments()).SetPosition(NewTokenPosition($3)) - $$ = stmt.NewTraitUseAlias($1, nil, alias). - SetComments($1.Comments()). - SetPosition(NewNodeTokenPosition($1, $3)) - } + { + alias := node.NewIdentifier($3.Value).SetPosition(NewTokenPosition($3)) + $$ = stmt.NewTraitUseAlias($1, nil, alias). + SetPosition(NewNodeTokenPosition($1, $3)) + + comments.AddComments(alias, $3.Comments()) + comments.AddComments($$, comments[$1]) + } | trait_method_reference T_AS member_modifier identifier { - alias := node.NewIdentifier($4.Value).SetComments($4.Comments()).SetPosition(NewTokenPosition($4)) + alias := node.NewIdentifier($4.Value).SetPosition(NewTokenPosition($4)) $$ = stmt.NewTraitUseAlias($1, $3, alias). - SetComments($1.Comments()). SetPosition(NewNodeTokenPosition($1, $4)) + + comments.AddComments(alias, $4.Comments()) + comments.AddComments($$, comments[$1]) } | trait_method_reference T_AS member_modifier { - $$ = stmt.NewTraitUseAlias($1, $3, nil).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) + $$ = stmt.NewTraitUseAlias($1, $3, nil).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) } ; trait_method_reference: - identifier - { - name := node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - $$ = stmt.NewTraitMethodRef(nil, name).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - } + identifier + { + name := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + $$ = stmt.NewTraitMethodRef(nil, name).SetPosition(NewTokenPosition($1)) + + comments.AddComments(name, $1.Comments()) + comments.AddComments($$, $1.Comments()) + } | absolute_trait_method_reference { $$ = $1; } ; absolute_trait_method_reference: name T_PAAMAYIM_NEKUDOTAYIM identifier { - target := node.NewIdentifier($3.Value).SetComments($3.Comments()).SetPosition(NewTokenPosition($3)) - $$ = stmt.NewTraitMethodRef($1, target).SetComments($1.Comments()).SetPosition(NewNodeTokenPosition($1, $3)) + target := node.NewIdentifier($3.Value).SetPosition(NewTokenPosition($3)) + $$ = stmt.NewTraitMethodRef($1, target).SetPosition(NewNodeTokenPosition($1, $3)) + + comments.AddComments(target, $3.Comments()) + comments.AddComments($$, comments[$1]) } ; @@ -917,7 +1210,12 @@ method_body: variable_modifiers: non_empty_member_modifiers { $$ = $1; } - | T_VAR { $$ = []node.Node{node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1))} } + | T_VAR + { + modifier := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + $$ = []node.Node{modifier} + comments.AddComments(modifier, $1.Comments()) + } ; method_modifiers: @@ -931,12 +1229,36 @@ non_empty_member_modifiers: ; member_modifier: - T_PUBLIC { $$ = node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } - | T_PROTECTED { $$ = node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } - | T_PRIVATE { $$ = node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } - | T_STATIC { $$ = node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } - | T_ABSTRACT { $$ = node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } - | T_FINAL { $$ = node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } + T_PUBLIC + { + $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } + | T_PROTECTED + { + $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } + | T_PRIVATE + { + $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } + | T_STATIC + { + $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } + | T_ABSTRACT + { + $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } + | T_FINAL + { + $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } ; property_list: @@ -945,17 +1267,25 @@ property_list: ; property: - T_VARIABLE backup_doc_comment - { - identifier := node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - variable := expr.NewVariable(identifier).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - $$ = stmt.NewProperty(variable, nil, $2).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - } + T_VARIABLE backup_doc_comment + { + identifier := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($1)) + $$ = stmt.NewProperty(variable, nil, $2).SetPosition(NewTokenPosition($1)) + + comments.AddComments(identifier, $1.Comments()) + comments.AddComments(variable, $1.Comments()) + comments.AddComments($$, $1.Comments()) + } | T_VARIABLE '=' expr backup_doc_comment { - identifier := node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - variable := expr.NewVariable(identifier).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - $$ = stmt.NewProperty(variable, $3, $4).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $3)) + identifier := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($1)) + $$ = stmt.NewProperty(variable, $3, $4).SetPosition(NewTokenNodePosition($1, $3)) + + comments.AddComments(identifier, $1.Comments()) + comments.AddComments(variable, $1.Comments()) + comments.AddComments($$, $1.Comments()) } ; @@ -967,16 +1297,22 @@ class_const_list: class_const_decl: identifier '=' expr backup_doc_comment { - name := node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - $$ = stmt.NewConstant(name, $3, $4).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $3)) + name := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + $$ = stmt.NewConstant(name, $3, $4).SetPosition(NewTokenNodePosition($1, $3)) + + comments.AddComments(name, $1.Comments()) + comments.AddComments($$, $1.Comments()) } ; const_decl: T_STRING '=' expr backup_doc_comment { - name := node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - $$ = stmt.NewConstant(name, $3, $4).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $3)) + name := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + $$ = stmt.NewConstant(name, $3, $4).SetPosition(NewTokenNodePosition($1, $3)) + + comments.AddComments(name, $1.Comments()) + comments.AddComments($$, $1.Comments()) } ; @@ -1002,119 +1338,403 @@ anonymous_class: T_CLASS ctor_arguments extends_from implements_list backup_doc_comment '{' class_statement_list '}' { if $2 != nil { - $$ = stmt.NewClass(nil, nil, $2.nodes, $3, $4, $7, $5).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $8)) + $$ = stmt.NewClass(nil, nil, $2.nodes, $3, $4, $7, $5).SetPosition(NewTokensPosition($1, $8)) } else { - $$ = stmt.NewClass(nil, nil, nil, $3, $4, $7, $5).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $8)) + $$ = stmt.NewClass(nil, nil, nil, $3, $4, $7, $5).SetPosition(NewTokensPosition($1, $8)) } + + comments.AddComments($$, $1.Comments()) } ; new_expr: - T_NEW class_name_reference ctor_arguments - { - if $3 != nil { - $$ = expr.NewNew($2, $3.nodes).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3.endToken)) - } else { - $$ = expr.NewNew($2, nil).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) - } + T_NEW class_name_reference ctor_arguments + { + if $3 != nil { + $$ = expr.NewNew($2, $3.nodes).SetPosition(NewTokensPosition($1, $3.endToken)) + } else { + $$ = expr.NewNew($2, nil).SetPosition(NewTokenNodePosition($1, $2)) } + + comments.AddComments($$, $1.Comments()) + } | T_NEW anonymous_class { $$ = expr.NewNew($2, nil) } ; expr_without_variable: - T_LIST '(' array_pair_list ')' '=' expr - { - list := expr.NewList($3).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $4)) - $$ = assign_op.NewAssign(list, $6).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $6)) - } + T_LIST '(' array_pair_list ')' '=' expr + { + list := expr.NewList($3).SetPosition(NewTokensPosition($1, $4)) + $$ = assign_op.NewAssign(list, $6).SetPosition(NewTokenNodePosition($1, $6)) + + comments.AddComments(list, $1.Comments()) + comments.AddComments($$, $1.Comments()) + } | '[' array_pair_list ']' '=' expr { - shortList := expr.NewShortList($2).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3)) - $$ = assign_op.NewAssign(shortList, $5).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $5)) + shortList := expr.NewShortList($2).SetPosition(NewTokensPosition($1, $3)) + $$ = assign_op.NewAssign(shortList, $5).SetPosition(NewTokenNodePosition($1, $5)) + + comments.AddComments(shortList, $1.Comments()) + comments.AddComments($$, $1.Comments()) + } + | variable '=' expr + { + $$ = assign_op.NewAssign($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | variable '=' '&' expr + { + $$ = assign_op.NewAssignRef($1, $4).SetPosition(NewNodesPosition($1, $4)) + comments.AddComments($$, comments[$1]) + } + | T_CLONE expr + { + $$ = expr.NewClone($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } + | variable T_PLUS_EQUAL expr + { + $$ = assign_op.NewPlus($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | variable T_MINUS_EQUAL expr + { + $$ = assign_op.NewMinus($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | variable T_MUL_EQUAL expr + { + $$ = assign_op.NewMul($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | variable T_POW_EQUAL expr + { + $$ = assign_op.NewPow($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | variable T_DIV_EQUAL expr + { + $$ = assign_op.NewDiv($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | variable T_CONCAT_EQUAL expr + { + $$ = assign_op.NewConcat($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | variable T_MOD_EQUAL expr + { + $$ = assign_op.NewMod($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | variable T_AND_EQUAL expr + { + $$ = assign_op.NewBitwiseAnd($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | variable T_OR_EQUAL expr + { + $$ = assign_op.NewBitwiseOr($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | variable T_XOR_EQUAL expr + { + $$ = assign_op.NewBitwiseXor($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | variable T_SL_EQUAL expr + { + $$ = assign_op.NewShiftLeft($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | variable T_SR_EQUAL expr + { + $$ = assign_op.NewShiftRight($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | variable T_INC + { + $$ = expr.NewPostInc($1).SetPosition(NewNodeTokenPosition($1, $2)) + comments.AddComments($$, comments[$1]) + } + | T_INC variable + { + $$ = expr.NewPreInc($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } + | variable T_DEC + { + $$ = expr.NewPostDec($1).SetPosition(NewNodeTokenPosition($1, $2)) + comments.AddComments($$, comments[$1]) + } + | T_DEC variable + { + $$ = expr.NewPreDec($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } + | expr T_BOOLEAN_OR expr + { + $$ = binary_op.NewBooleanOr($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr T_BOOLEAN_AND expr + { + $$ = binary_op.NewBooleanAnd($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr T_LOGICAL_OR expr + { + $$ = binary_op.NewLogicalOr($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr T_LOGICAL_AND expr + { + $$ = binary_op.NewLogicalAnd($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr T_LOGICAL_XOR expr + { + $$ = binary_op.NewLogicalXor($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr '|' expr + { + $$ = binary_op.NewBitwiseOr($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr '&' expr + { + $$ = binary_op.NewBitwiseAnd($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr '^' expr + { + $$ = binary_op.NewBitwiseXor($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr '.' expr + { + $$ = binary_op.NewConcat($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr '+' expr + { + $$ = binary_op.NewPlus($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr '-' expr + { + $$ = binary_op.NewMinus($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr '*' expr + { + $$ = binary_op.NewMul($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr T_POW expr + { + $$ = binary_op.NewPow($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr '/' expr + { + $$ = binary_op.NewDiv($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr '%' expr + { + $$ = binary_op.NewMod($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr T_SL expr + { + $$ = binary_op.NewShiftLeft($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr T_SR expr + { + $$ = binary_op.NewShiftRight($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | '+' expr %prec T_INC + { + $$ = expr.NewUnaryPlus($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } + | '-' expr %prec T_INC + { + $$ = expr.NewUnaryMinus($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } + | '!' expr + { + $$ = expr.NewBooleanNot($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } + | '~' expr + { + $$ = expr.NewBitwiseNot($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } + | expr T_IS_IDENTICAL expr + { + $$ = binary_op.NewIdentical($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr T_IS_NOT_IDENTICAL expr + { + $$ = binary_op.NewNotIdentical($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr T_IS_EQUAL expr + { + $$ = binary_op.NewEqual($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr T_IS_NOT_EQUAL expr + { + $$ = binary_op.NewNotEqual($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr '<' expr + { + $$ = binary_op.NewSmaller($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr T_IS_SMALLER_OR_EQUAL expr + { + $$ = binary_op.NewSmallerOrEqual($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr '>' expr + { + $$ = binary_op.NewGreater($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr T_IS_GREATER_OR_EQUAL expr + { + $$ = binary_op.NewGreaterOrEqual($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr T_SPACESHIP expr + { + $$ = binary_op.NewSpaceship($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr T_INSTANCEOF class_name_reference + { + $$ = expr.NewInstanceOf($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) } - | variable '=' expr { $$ = assign_op.NewAssign($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | variable '=' '&' expr { $$ = assign_op.NewAssignRef($1, $4).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $4)) } - | T_CLONE expr { $$ = expr.NewClone($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } - | variable T_PLUS_EQUAL expr { $$ = assign_op.NewPlus($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | variable T_MINUS_EQUAL expr { $$ = assign_op.NewMinus($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | variable T_MUL_EQUAL expr { $$ = assign_op.NewMul($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | variable T_POW_EQUAL expr { $$ = assign_op.NewPow($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | variable T_DIV_EQUAL expr { $$ = assign_op.NewDiv($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | variable T_CONCAT_EQUAL expr { $$ = assign_op.NewConcat($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | variable T_MOD_EQUAL expr { $$ = assign_op.NewMod($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | variable T_AND_EQUAL expr { $$ = assign_op.NewBitwiseAnd($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | variable T_OR_EQUAL expr { $$ = assign_op.NewBitwiseOr($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | variable T_XOR_EQUAL expr { $$ = assign_op.NewBitwiseXor($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | variable T_SL_EQUAL expr { $$ = assign_op.NewShiftLeft($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | variable T_SR_EQUAL expr { $$ = assign_op.NewShiftRight($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | variable T_INC { $$ = expr.NewPostInc($1).SetComments($1.Comments()).SetPosition(NewNodeTokenPosition($1, $2)) } - | T_INC variable { $$ = expr.NewPreInc($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } - | variable T_DEC { $$ = expr.NewPostDec($1).SetComments($1.Comments()).SetPosition(NewNodeTokenPosition($1, $2)) } - | T_DEC variable { $$ = expr.NewPreDec($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } - | expr T_BOOLEAN_OR expr { $$ = binary_op.NewBooleanOr($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr T_BOOLEAN_AND expr { $$ = binary_op.NewBooleanAnd($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr T_LOGICAL_OR expr { $$ = binary_op.NewLogicalOr($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr T_LOGICAL_AND expr { $$ = binary_op.NewLogicalAnd($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr T_LOGICAL_XOR expr { $$ = binary_op.NewLogicalXor($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr '|' expr { $$ = binary_op.NewBitwiseOr($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr '&' expr { $$ = binary_op.NewBitwiseAnd($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr '^' expr { $$ = binary_op.NewBitwiseXor($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr '.' expr { $$ = binary_op.NewConcat($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr '+' expr { $$ = binary_op.NewPlus($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr '-' expr { $$ = binary_op.NewMinus($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr '*' expr { $$ = binary_op.NewMul($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr T_POW expr { $$ = binary_op.NewPow($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr '/' expr { $$ = binary_op.NewDiv($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr '%' expr { $$ = binary_op.NewMod($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr T_SL expr { $$ = binary_op.NewShiftLeft($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr T_SR expr { $$ = binary_op.NewShiftRight($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | '+' expr %prec T_INC { $$ = expr.NewUnaryPlus($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } - | '-' expr %prec T_INC { $$ = expr.NewUnaryMinus($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } - | '!' expr { $$ = expr.NewBooleanNot($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } - | '~' expr { $$ = expr.NewBitwiseNot($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } - | expr T_IS_IDENTICAL expr { $$ = binary_op.NewIdentical($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr T_IS_NOT_IDENTICAL expr { $$ = binary_op.NewNotIdentical($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr T_IS_EQUAL expr { $$ = binary_op.NewEqual($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr T_IS_NOT_EQUAL expr { $$ = binary_op.NewNotEqual($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr '<' expr { $$ = binary_op.NewSmaller($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr T_IS_SMALLER_OR_EQUAL expr { $$ = binary_op.NewSmallerOrEqual($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr '>' expr { $$ = binary_op.NewGreater($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr T_IS_GREATER_OR_EQUAL expr { $$ = binary_op.NewGreaterOrEqual($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr T_SPACESHIP expr { $$ = binary_op.NewSpaceship($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr T_INSTANCEOF class_name_reference { $$ = expr.NewInstanceOf($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } | '(' expr ')' { $$ = $2; } | new_expr { $$ = $1; } - | expr '?' expr ':' expr { $$ = expr.NewTernary($1, $3, $5).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $5)) } - | expr '?' ':' expr { $$ = expr.NewTernary($1, nil, $4).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $4)) } - | expr T_COALESCE expr { $$ = binary_op.NewCoalesce($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } + | expr '?' expr ':' expr + { + $$ = expr.NewTernary($1, $3, $5).SetPosition(NewNodesPosition($1, $5)) + comments.AddComments($$, comments[$1]) + } + | expr '?' ':' expr + { + $$ = expr.NewTernary($1, nil, $4).SetPosition(NewNodesPosition($1, $4)) + comments.AddComments($$, comments[$1]) + } + | expr T_COALESCE expr + { + $$ = binary_op.NewCoalesce($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } | internal_functions_in_yacc { $$ = $1} - | T_INT_CAST expr { $$ = cast.NewCastInt($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } - | T_DOUBLE_CAST expr { $$ = cast.NewCastDouble($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } - | T_STRING_CAST expr { $$ = cast.NewCastString($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } - | T_ARRAY_CAST expr { $$ = cast.NewCastArray($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } - | T_OBJECT_CAST expr { $$ = cast.NewCastObject($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } - | T_BOOL_CAST expr { $$ = cast.NewCastBool($2.SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2))) } - | T_UNSET_CAST expr { $$ = cast.NewCastUnset($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } - | T_EXIT exit_expr { $$ = expr.NewExit($2, strings.EqualFold($1.Value, "die")).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } - | '@' expr { $$ = expr.NewErrorSuppress($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } + | T_INT_CAST expr + { + $$ = cast.NewCastInt($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } + | T_DOUBLE_CAST expr + { + $$ = cast.NewCastDouble($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } + | T_STRING_CAST expr + { + $$ = cast.NewCastString($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } + | T_ARRAY_CAST expr + { + $$ = cast.NewCastArray($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } + | T_OBJECT_CAST expr + { + $$ = cast.NewCastObject($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } + | T_BOOL_CAST expr + { + $$ = cast.NewCastBool($2.SetPosition(NewTokenNodePosition($1, $2))) + comments.AddComments($$, $1.Comments()) + } + | T_UNSET_CAST expr + { + $$ = cast.NewCastUnset($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } + | T_EXIT exit_expr + { + $$ = expr.NewExit($2, strings.EqualFold($1.Value, "die")).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } + | '@' expr + { + $$ = expr.NewErrorSuppress($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } | scalar { $$ = $1; } - | '`' backticks_expr '`' { $$ = expr.NewShellExec($2).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3)) } - | T_PRINT expr { $$ = expr.NewPrint($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } - | T_YIELD { $$ = expr.NewYield(nil, nil).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } - | T_YIELD expr { $$ = expr.NewYield(nil, $2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } - | T_YIELD expr T_DOUBLE_ARROW expr { $$ = expr.NewYield($2, $4).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $4)) } - | T_YIELD_FROM expr { $$ = expr.NewYieldFrom($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } + | '`' backticks_expr '`' + { + $$ = expr.NewShellExec($2).SetPosition(NewTokensPosition($1, $3)) + comments.AddComments($$, $1.Comments()) + } + | T_PRINT expr + { + $$ = expr.NewPrint($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } + | T_YIELD + { + $$ = expr.NewYield(nil, nil).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } + | T_YIELD expr + { + $$ = expr.NewYield(nil, $2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } + | T_YIELD expr T_DOUBLE_ARROW expr + { + $$ = expr.NewYield($2, $4).SetPosition(NewTokenNodePosition($1, $4)) + comments.AddComments($$, $1.Comments()) + } + | T_YIELD_FROM expr + { + $$ = expr.NewYieldFrom($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } | T_FUNCTION returns_ref backup_doc_comment '(' parameter_list ')' lexical_vars return_type '{' inner_statement_list '}' { $$ = expr.NewClosure($5, $7, $8, $10, false, $2.value, $3). - SetComments($1.Comments()). SetPosition(NewTokensPosition($1, $11)) + + comments.AddComments($$, $1.Comments()) } | T_STATIC T_FUNCTION returns_ref backup_doc_comment '(' parameter_list ')' lexical_vars return_type '{' inner_statement_list '}' { $$ = expr.NewClosure($6, $8, $9, $11, true, $3.value, $4). - SetComments($1.Comments()). SetPosition(NewTokensPosition($1, $12)) + + comments.AddComments($$, $1.Comments()) } ; @@ -1138,41 +1758,57 @@ lexical_var_list: ; lexical_var: - T_VARIABLE - { - identifier := node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - variable := expr.NewVariable(identifier).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - $$ = expr.NewClusureUse(variable, false).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - } + T_VARIABLE + { + identifier := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($1)) + $$ = expr.NewClusureUse(variable, false).SetPosition(NewTokenPosition($1)) + + comments.AddComments(identifier, $1.Comments()) + comments.AddComments(variable, $1.Comments()) + comments.AddComments($$, $1.Comments()) + } | '&' T_VARIABLE { - identifier := node.NewIdentifier($2.Value).SetComments($2.Comments()).SetPosition(NewTokenPosition($2)) - variable := expr.NewVariable(identifier).SetComments($1.Comments()).SetPosition(NewTokenPosition($2)) - $$ = expr.NewClusureUse(variable, true).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $2)) + identifier := node.NewIdentifier($2.Value).SetPosition(NewTokenPosition($2)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($2)) + $$ = expr.NewClusureUse(variable, true).SetPosition(NewTokensPosition($1, $2)) + + comments.AddComments(identifier, $2.Comments()) + comments.AddComments(variable, $1.Comments()) + comments.AddComments($$, $1.Comments()) } ; function_call: - name argument_list - { - $$ = expr.NewFunctionCall($1, $2.nodes).SetComments($1.Comments()).SetPosition(NewNodeTokenPosition($1, $2.endToken)) - } + name argument_list + { + $$ = expr.NewFunctionCall($1, $2.nodes).SetPosition(NewNodeTokenPosition($1, $2.endToken)) + comments.AddComments($$, comments[$1]) + } | class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list - { - $$ = expr.NewStaticCall($1, $3, $4.nodes).SetComments($1.Comments()).SetPosition(NewNodeTokenPosition($1, $4.endToken)) - } + { + $$ = expr.NewStaticCall($1, $3, $4.nodes).SetPosition(NewNodeTokenPosition($1, $4.endToken)) + comments.AddComments($$, comments[$1]) + } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list - { - $$ = expr.NewStaticCall($1, $3, $4.nodes).SetComments($1.Comments()).SetPosition(NewNodeTokenPosition($1, $4.endToken)) - } + { + $$ = expr.NewStaticCall($1, $3, $4.nodes).SetPosition(NewNodeTokenPosition($1, $4.endToken)) + comments.AddComments($$, comments[$1]) + } | callable_expr argument_list { - $$ = expr.NewFunctionCall($1, $2.nodes).SetComments($1.Comments()).SetPosition(NewNodeTokenPosition($1, $2.endToken)) + $$ = expr.NewFunctionCall($1, $2.nodes).SetPosition(NewNodeTokenPosition($1, $2.endToken)) + comments.AddComments($$, comments[$1]) } ; class_name: - T_STATIC { $$ = node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } + T_STATIC + { + $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } | name { $$ = $1; } ; @@ -1198,43 +1834,119 @@ ctor_arguments: ; dereferencable_scalar: - T_ARRAY '(' array_pair_list ')' { $$ = expr.NewArray($3).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $4)) } - | '[' array_pair_list ']' { $$ = expr.NewShortArray($2).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3)) } - | T_CONSTANT_ENCAPSED_STRING { $$ = scalar.NewString($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } + T_ARRAY '(' array_pair_list ')' + { + $$ = expr.NewArray($3).SetPosition(NewTokensPosition($1, $4)) + comments.AddComments($$, $1.Comments()) + } + | '[' array_pair_list ']' + { + $$ = expr.NewShortArray($2).SetPosition(NewTokensPosition($1, $3)) + comments.AddComments($$, $1.Comments()) + } + | T_CONSTANT_ENCAPSED_STRING + { + $$ = scalar.NewString($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } ; scalar: - T_LNUMBER { $$ = scalar.NewLnumber($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } - | T_DNUMBER { $$ = scalar.NewDnumber($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } - | T_LINE { $$ = scalar.NewMagicConstant($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } - | T_FILE { $$ = scalar.NewMagicConstant($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } - | T_DIR { $$ = scalar.NewMagicConstant($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } - | T_TRAIT_C { $$ = scalar.NewMagicConstant($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } - | T_METHOD_C { $$ = scalar.NewMagicConstant($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } - | T_FUNC_C { $$ = scalar.NewMagicConstant($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } - | T_NS_C { $$ = scalar.NewMagicConstant($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } - | T_CLASS_C { $$ = scalar.NewMagicConstant($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } + T_LNUMBER + { + $$ = scalar.NewLnumber($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } + | T_DNUMBER + { + $$ = scalar.NewDnumber($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } + | T_LINE + { + $$ = scalar.NewMagicConstant($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } + | T_FILE + { + $$ = scalar.NewMagicConstant($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } + | T_DIR + { + $$ = scalar.NewMagicConstant($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } + | T_TRAIT_C + { + $$ = scalar.NewMagicConstant($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } + | T_METHOD_C + { + $$ = scalar.NewMagicConstant($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } + | T_FUNC_C + { + $$ = scalar.NewMagicConstant($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } + | T_NS_C + { + $$ = scalar.NewMagicConstant($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } + | T_CLASS_C + { + $$ = scalar.NewMagicConstant($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC - { $$ = scalar.NewString($2.Value).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3)) /* TODO: mark as Heredoc*/ } + { + $$ = scalar.NewString($2.Value).SetPosition(NewTokensPosition($1, $3)) /* TODO: mark as Heredoc*/ + comments.AddComments($$, $1.Comments()) + } | T_START_HEREDOC T_END_HEREDOC - { $$ = scalar.NewEncapsed(nil).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $2)) } - | '"' encaps_list '"' { $$ = scalar.NewEncapsed($2).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3)) } - | T_START_HEREDOC encaps_list T_END_HEREDOC { $$ = scalar.NewEncapsed($2).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3)) } + { + $$ = scalar.NewEncapsed(nil).SetPosition(NewTokensPosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } + | '"' encaps_list '"' + { + $$ = scalar.NewEncapsed($2).SetPosition(NewTokensPosition($1, $3)) + comments.AddComments($$, $1.Comments()) + } + | T_START_HEREDOC encaps_list T_END_HEREDOC + { + $$ = scalar.NewEncapsed($2).SetPosition(NewTokensPosition($1, $3)) + comments.AddComments($$, $1.Comments()) + } | dereferencable_scalar { $$ = $1; } | constant { $$ = $1; } ; constant: - name { $$ = expr.NewConstFetch($1).SetComments($1.Comments()).SetPosition(NewNodePosition($1)) } + name + { + $$ = expr.NewConstFetch($1).SetPosition(NewNodePosition($1)) + comments.AddComments($$, comments[$1]) + } | class_name T_PAAMAYIM_NEKUDOTAYIM identifier { - target := node.NewIdentifier($3.Value).SetComments($3.Comments()).SetPosition(NewTokenPosition($3)) - $$ = expr.NewClassConstFetch($1, target).SetComments($1.Comments()).SetPosition(NewNodeTokenPosition($1, $3)) + target := node.NewIdentifier($3.Value).SetPosition(NewTokenPosition($3)) + $$ = expr.NewClassConstFetch($1, target).SetPosition(NewNodeTokenPosition($1, $3)) + + comments.AddComments(target, $3.Comments()) + comments.AddComments($$, comments[$1]) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM identifier { - target := node.NewIdentifier($3.Value).SetComments($3.Comments()).SetPosition(NewTokenPosition($3)) - $$ = expr.NewClassConstFetch($1, target).SetComments($1.Comments()).SetPosition(NewNodeTokenPosition($1, $3)) + target := node.NewIdentifier($3.Value).SetPosition(NewTokenPosition($3)) + $$ = expr.NewClassConstFetch($1, target).SetPosition(NewNodeTokenPosition($1, $3)) + + comments.AddComments(target, $3.Comments()) + comments.AddComments($$, comments[$1]) } ; @@ -1266,60 +1978,118 @@ callable_expr: callable_variable: simple_variable { $$ = $1; } - | dereferencable '[' optional_expr ']' { $$ = expr.NewArrayDimFetch($1, $3).SetComments($1.Comments()).SetPosition(NewNodeTokenPosition($1, $4)) } - | constant '[' optional_expr ']' { $$ = expr.NewArrayDimFetch($1, $3).SetComments($1.Comments()).SetPosition(NewNodeTokenPosition($1, $4)) } - | dereferencable '{' expr '}' { $$ = expr.NewArrayDimFetch($1, $3).SetComments($1.Comments()).SetPosition(NewNodeTokenPosition($1, $4)) } + | dereferencable '[' optional_expr ']' + { + $$ = expr.NewArrayDimFetch($1, $3).SetPosition(NewNodeTokenPosition($1, $4)) + comments.AddComments($$, comments[$1]) + } + | constant '[' optional_expr ']' + { + $$ = expr.NewArrayDimFetch($1, $3).SetPosition(NewNodeTokenPosition($1, $4)) + comments.AddComments($$, comments[$1]) + } + | dereferencable '{' expr '}' + { + $$ = expr.NewArrayDimFetch($1, $3).SetPosition(NewNodeTokenPosition($1, $4)) + comments.AddComments($$, comments[$1]) + } | dereferencable T_OBJECT_OPERATOR property_name argument_list - { $$ = expr.NewMethodCall($1, $3, $4.nodes).SetComments($1.Comments()).SetPosition(NewNodeTokenPosition($1, $4.endToken)) } + { + $$ = expr.NewMethodCall($1, $3, $4.nodes).SetPosition(NewNodeTokenPosition($1, $4.endToken)) + comments.AddComments($$, comments[$1]) + } | function_call { $$ = $1; } ; variable: callable_variable { $$ = $1; } | static_member { $$ = $1; } - | dereferencable T_OBJECT_OPERATOR property_name { $$ = expr.NewPropertyFetch($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } + | dereferencable T_OBJECT_OPERATOR property_name + { + $$ = expr.NewPropertyFetch($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } ; simple_variable: - T_VARIABLE { $$ = expr.NewVariable(node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1))).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } - | '$' '{' expr '}' { $$ = expr.NewVariable($3).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $4)) } - | '$' simple_variable { $$ = expr.NewVariable($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } + T_VARIABLE + { + name := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + $$ = expr.NewVariable(name).SetPosition(NewTokenPosition($1)) + + comments.AddComments(name, $1.Comments()) + comments.AddComments($$, $1.Comments()) + } + | '$' '{' expr '}' + { + $$ = expr.NewVariable($3).SetPosition(NewTokensPosition($1, $4)) + comments.AddComments($$, $1.Comments()) + } + | '$' simple_variable + { + $$ = expr.NewVariable($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } ; static_member: - class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable - { - $$ = expr.NewStaticPropertyFetch($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) - } + class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable + { + $$ = expr.NewStaticPropertyFetch($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable - { - $$ = expr.NewStaticPropertyFetch($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) - } + { + $$ = expr.NewStaticPropertyFetch($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } ; new_variable: simple_variable { $$ = $1 } - | new_variable '[' optional_expr ']' { $$ = expr.NewArrayDimFetch($1, $3).SetComments($1.Comments()).SetPosition(NewNodeTokenPosition($1, $4)) } - | new_variable '{' expr '}' { $$ = expr.NewArrayDimFetch($1, $3).SetComments($1.Comments()).SetPosition(NewNodeTokenPosition($1, $4)) } - | new_variable T_OBJECT_OPERATOR property_name { $$ = expr.NewPropertyFetch($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } + | new_variable '[' optional_expr ']' + { + $$ = expr.NewArrayDimFetch($1, $3).SetPosition(NewNodeTokenPosition($1, $4)) + comments.AddComments($$, comments[$1]) + } + | new_variable '{' expr '}' + { + $$ = expr.NewArrayDimFetch($1, $3).SetPosition(NewNodeTokenPosition($1, $4)) + comments.AddComments($$, comments[$1]) + } + | new_variable T_OBJECT_OPERATOR property_name + { + $$ = expr.NewPropertyFetch($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } | class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { - $$ = expr.NewStaticPropertyFetch($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) + $$ = expr.NewStaticPropertyFetch($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) } | new_variable T_PAAMAYIM_NEKUDOTAYIM simple_variable { - $$ = expr.NewStaticPropertyFetch($1, $3).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) + $$ = expr.NewStaticPropertyFetch($1, $3).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) } ; member_name: - identifier { $$ = node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } + identifier + { + $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } | '{' expr '}' { $$ = $2; } | simple_variable { $$ = $1 } ; property_name: - T_STRING { $$ = node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) } + T_STRING + { + $$ = node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) + } | '{' expr '}' { $$ = $2; } | simple_variable { $$ = $1 } ; @@ -1347,114 +2117,201 @@ non_empty_array_pair_list: ; array_pair: - expr T_DOUBLE_ARROW expr { $$ = expr.NewArrayItem($1, $3, false).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $3)) } - | expr { $$ = expr.NewArrayItem(nil, $1, false).SetComments($1.Comments()).SetPosition(NewNodePosition($1)) } - | expr T_DOUBLE_ARROW '&' variable { $$ = expr.NewArrayItem($1, $4, true).SetComments($1.Comments()).SetPosition(NewNodesPosition($1, $4)) } - | '&' variable { $$ = expr.NewArrayItem(nil, $2, true).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } + expr T_DOUBLE_ARROW expr + { + $$ = expr.NewArrayItem($1, $3, false).SetPosition(NewNodesPosition($1, $3)) + comments.AddComments($$, comments[$1]) + } + | expr + { + $$ = expr.NewArrayItem(nil, $1, false).SetPosition(NewNodePosition($1)) + comments.AddComments($$, comments[$1]) + } + | expr T_DOUBLE_ARROW '&' variable + { + $$ = expr.NewArrayItem($1, $4, true).SetPosition(NewNodesPosition($1, $4)) + comments.AddComments($$, comments[$1]) + } + | '&' variable + { + $$ = expr.NewArrayItem(nil, $2, true).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } | expr T_DOUBLE_ARROW T_LIST '(' array_pair_list ')' { // TODO: Cannot use list() as standalone expression - list := expr.NewList($5).SetComments($3.Comments()).SetPosition(NewTokensPosition($3, $6)) + list := expr.NewList($5).SetPosition(NewTokensPosition($3, $6)) $$ = expr.NewArrayItem($1, list, false). - SetComments($1.Comments()). SetPosition(NewNodeTokenPosition($1, $6)) + + comments.AddComments(list, $3.Comments()) + comments.AddComments($$, comments[$1]) } | T_LIST '(' array_pair_list ')' { // TODO: Cannot use list() as standalone expression - list := expr.NewList($3).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $4)) + list := expr.NewList($3).SetPosition(NewTokensPosition($1, $4)) $$ = expr.NewArrayItem(nil, list, false). - SetComments($1.Comments()). SetPosition(NewTokensPosition($1, $4)) + + comments.AddComments(list, $1.Comments()) + comments.AddComments($$, $1.Comments()) } ; encaps_list: encaps_list encaps_var { $$ = append($1, $2) } - | encaps_list T_ENCAPSED_AND_WHITESPACE { $$ = append($1, scalar.NewEncapsedStringPart($2.Value).SetComments($2.Comments()).SetPosition(NewTokenPosition($2))) } + | encaps_list T_ENCAPSED_AND_WHITESPACE + { + encapsed := scalar.NewEncapsedStringPart($2.Value).SetPosition(NewTokenPosition($2)) + $$ = append($1, encapsed) + comments.AddComments(encapsed, $2.Comments()) + } | encaps_var { $$ = []node.Node{$1} } - | T_ENCAPSED_AND_WHITESPACE encaps_var { $$ = []node.Node{scalar.NewEncapsedStringPart($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)), $2} } + | T_ENCAPSED_AND_WHITESPACE encaps_var + { + encapsed := scalar.NewEncapsedStringPart($1.Value).SetPosition(NewTokenPosition($1)) + $$ = []node.Node{encapsed, $2} + comments.AddComments(encapsed, $1.Comments()) + } ; encaps_var: T_VARIABLE { - name := node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - $$ = expr.NewVariable(name).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) + name := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + $$ = expr.NewVariable(name).SetPosition(NewTokenPosition($1)) + + comments.AddComments(name, $1.Comments()) + comments.AddComments($$, $1.Comments()) } | T_VARIABLE '[' encaps_var_offset ']' { - identifier := node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - variable := expr.NewVariable(identifier).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - $$ = expr.NewArrayDimFetch(variable, $3).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $4)) + identifier := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($1)) + $$ = expr.NewArrayDimFetch(variable, $3).SetPosition(NewTokensPosition($1, $4)) + + comments.AddComments(identifier, $1.Comments()) + comments.AddComments(variable, $1.Comments()) + comments.AddComments($$, $1.Comments()) } | T_VARIABLE T_OBJECT_OPERATOR T_STRING { - identifier := node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - variable := expr.NewVariable(identifier).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - $$ = expr.NewPropertyFetch(variable, node.NewIdentifier($3.Value).SetComments($3.Comments()).SetPosition(NewTokenPosition($3))). - SetComments($1.Comments()). + identifier := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($1)) + fetch := node.NewIdentifier($3.Value).SetPosition(NewTokenPosition($3)) + $$ = expr.NewPropertyFetch(variable, fetch). SetPosition(NewTokensPosition($1, $3)) + + comments.AddComments(identifier, $1.Comments()) + comments.AddComments(variable, $1.Comments()) + comments.AddComments(fetch, $3.Comments()) + comments.AddComments($$, $1.Comments()) } | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { - $$ = expr.NewVariable($2).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3)) + $$ = expr.NewVariable($2).SetPosition(NewTokensPosition($1, $3)) + comments.AddComments($$, $1.Comments()) } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { - name := node.NewIdentifier($2.Value).SetComments($2.Comments()).SetPosition(NewTokenPosition($2)) - $$ = expr.NewVariable(name).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $3)) + name := node.NewIdentifier($2.Value).SetPosition(NewTokenPosition($2)) + $$ = expr.NewVariable(name).SetPosition(NewTokensPosition($1, $3)) + + comments.AddComments(name, $2.Comments()) + comments.AddComments($$, $1.Comments()) } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' - { - identifier := node.NewIdentifier($2.Value).SetComments($2.Comments()).SetPosition(NewTokenPosition($2)) - variable := expr.NewVariable(identifier).SetComments($1.Comments()).SetPosition(NewTokenPosition($2)) - $$ = expr.NewArrayDimFetch(variable, $4).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $6)) - } + { + identifier := node.NewIdentifier($2.Value).SetPosition(NewTokenPosition($2)) + variable := expr.NewVariable(identifier).SetPosition(NewTokenPosition($2)) + $$ = expr.NewArrayDimFetch(variable, $4).SetPosition(NewTokensPosition($1, $6)) + + + comments.AddComments(identifier, $2.Comments()) + comments.AddComments(variable, $1.Comments()) + comments.AddComments($$, $1.Comments()) + } | T_CURLY_OPEN variable '}' { $$ = $2; } ; encaps_var_offset: T_STRING { - $$ = scalar.NewString($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) + $$ = scalar.NewString($1.Value).SetPosition(NewTokenPosition($1)) + comments.AddComments($$, $1.Comments()) } | T_NUM_STRING { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi($1.Value); err == nil { - $$ = scalar.NewLnumber($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) + $$ = scalar.NewLnumber($1.Value).SetPosition(NewTokenPosition($1)) } else { - $$ = scalar.NewString($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) + $$ = scalar.NewString($1.Value).SetPosition(NewTokenPosition($1)) } + comments.AddComments($$, $1.Comments()) } | '-' T_NUM_STRING { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi($2.Value); err == nil { - lnumber := scalar.NewLnumber($2.Value).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $2)) + lnumber := scalar.NewLnumber($2.Value).SetPosition(NewTokensPosition($1, $2)) $$ = expr.NewUnaryMinus(lnumber). - SetComments($1.Comments()). SetPosition(NewTokensPosition($1, $2)) + + comments.AddComments(lnumber, $1.Comments()) } else { $2.Value = "-"+$2.Value - $$ = scalar.NewString($2.Value).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $2)) + $$ = scalar.NewString($2.Value).SetPosition(NewTokensPosition($1, $2)) } + + comments.AddComments($$, $1.Comments()) } | T_VARIABLE { - identifier := node.NewIdentifier($1.Value).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) - $$ = expr.NewVariable(identifier).SetComments($1.Comments()).SetPosition(NewTokenPosition($1)) + identifier := node.NewIdentifier($1.Value).SetPosition(NewTokenPosition($1)) + $$ = expr.NewVariable(identifier).SetPosition(NewTokenPosition($1)) + + comments.AddComments(identifier, $1.Comments()) + comments.AddComments($$, $1.Comments()) } ; internal_functions_in_yacc: - T_ISSET '(' isset_variables possible_comma ')' { $$ = expr.NewIsset($3).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $5)) } - | T_EMPTY '(' expr ')' { $$ = expr.NewEmpty($3).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $4)) } - | T_INCLUDE expr { $$ = expr.NewInclude($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } - | T_INCLUDE_ONCE expr { $$ = expr.NewIncludeOnce($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } - | T_EVAL '(' expr ')' { $$ = expr.NewEval($3).SetComments($1.Comments()).SetPosition(NewTokensPosition($1, $4)) } - | T_REQUIRE expr { $$ = expr.NewRequire($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } - | T_REQUIRE_ONCE expr { $$ = expr.NewRequireOnce($2).SetComments($1.Comments()).SetPosition(NewTokenNodePosition($1, $2)) } + T_ISSET '(' isset_variables possible_comma ')' + { + $$ = expr.NewIsset($3).SetPosition(NewTokensPosition($1, $5)) + comments.AddComments($$, $1.Comments()) + } + | T_EMPTY '(' expr ')' + { + $$ = expr.NewEmpty($3).SetPosition(NewTokensPosition($1, $4)) + comments.AddComments($$, $1.Comments()) + } + | T_INCLUDE expr + { + $$ = expr.NewInclude($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } + | T_INCLUDE_ONCE expr + { + $$ = expr.NewIncludeOnce($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } + | T_EVAL '(' expr ')' + { + $$ = expr.NewEval($3).SetPosition(NewTokensPosition($1, $4)) + comments.AddComments($$, $1.Comments()) + } + | T_REQUIRE expr + { + $$ = expr.NewRequire($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } + | T_REQUIRE_ONCE expr + { + $$ = expr.NewRequireOnce($2).SetPosition(NewTokenNodePosition($1, $2)) + comments.AddComments($$, $1.Comments()) + } ; isset_variables: diff --git a/test/node/scalar/encapsed_test.go b/test/node/scalar/encapsed_test.go index c0b291e..0abdf6f 100644 --- a/test/node/scalar/encapsed_test.go +++ b/test/node/scalar/encapsed_test.go @@ -25,7 +25,7 @@ func TestSimpleVar(t *testing.T) { expr := stmt.NewExpression(encapsed).SetPosition(&node.Position{1, 1, 4, 15}) expected := stmt.NewStmtList([]node.Node{expr}).SetPosition(&node.Position{1, 1, 4, 15}) - actual := parser.Parse(bytes.NewBufferString(src), "test.php") + actual, _ := parser.Parse(bytes.NewBufferString(src), "test.php") if diff := pretty.Compare(expected, actual); diff != "" { t.Errorf("diff: (-expected +actual)\n%s", diff) @@ -50,7 +50,7 @@ func TestSimpleVarPropertyFetch(t *testing.T) { expr := stmt.NewExpression(encapsed).SetPosition(&node.Position{1, 1, 4, 22}) expected := stmt.NewStmtList([]node.Node{expr}).SetPosition(&node.Position{1, 1, 4, 22}) - actual := parser.Parse(bytes.NewBufferString(src), "test.php") + actual, _ := parser.Parse(bytes.NewBufferString(src), "test.php") if diff := pretty.Compare(expected, actual); diff != "" { t.Errorf("diff: (-expected +actual)\n%s", diff) @@ -70,7 +70,7 @@ func TestDollarOpenCurlyBraces(t *testing.T) { expr := stmt.NewExpression(encapsed).SetPosition(&node.Position{1, 1, 4, 17}) expected := stmt.NewStmtList([]node.Node{expr}).SetPosition(&node.Position{1, 1, 4, 17}) - actual := parser.Parse(bytes.NewBufferString(src), "test.php") + actual, _ := parser.Parse(bytes.NewBufferString(src), "test.php") if diff := pretty.Compare(expected, actual); diff != "" { t.Errorf("diff: (-expected +actual)\n%s", diff) @@ -95,7 +95,7 @@ func TestDollarOpenCurlyBracesDimNumber(t *testing.T) { expr := stmt.NewExpression(encapsed).SetPosition(&node.Position{1, 1, 4, 20}) expected := stmt.NewStmtList([]node.Node{expr}).SetPosition(&node.Position{1, 1, 4, 20}) - actual := parser.Parse(bytes.NewBufferString(src), "test.php") + actual, _ := parser.Parse(bytes.NewBufferString(src), "test.php") if diff := pretty.Compare(expected, actual); diff != "" { t.Errorf("diff: (-expected +actual)\n%s", diff) @@ -120,7 +120,7 @@ func TestCurlyOpenMethodCall(t *testing.T) { expr := stmt.NewExpression(encapsed).SetPosition(&node.Position{1, 1, 4, 24}) expected := stmt.NewStmtList([]node.Node{expr}).SetPosition(&node.Position{1, 1, 4, 24}) - actual := parser.Parse(bytes.NewBufferString(src), "test.php") + actual, _ := parser.Parse(bytes.NewBufferString(src), "test.php") if diff := pretty.Compare(expected, actual); diff != "" { t.Errorf("diff: (-expected +actual)\n%s", diff) diff --git a/test/node/scalar/string_test.go b/test/node/scalar/string_test.go index c1a2fb5..bd105d3 100644 --- a/test/node/scalar/string_test.go +++ b/test/node/scalar/string_test.go @@ -18,7 +18,7 @@ func TestDoubleQuotedScalarString(t *testing.T) { expr := stmt.NewExpression(str).SetPosition(&node.Position{1, 1, 4, 10}) expected := stmt.NewStmtList([]node.Node{expr}).SetPosition(&node.Position{1, 1, 4, 10}) - actual := parser.Parse(bytes.NewBufferString(src), "test.php") + actual, _ := parser.Parse(bytes.NewBufferString(src), "test.php") if diff := pretty.Compare(expected, actual); diff != "" { t.Errorf("diff: (-expected +actual)\n%s", diff) @@ -31,7 +31,7 @@ func TestDoubleQuotedScalarStringWithEscapedVar(t *testing.T) { expr := stmt.NewExpression(str).SetPosition(&node.Position{1, 1, 4, 12}) expected := stmt.NewStmtList([]node.Node{expr}).SetPosition(&node.Position{1, 1, 4, 12}) - actual := parser.Parse(bytes.NewBufferString(src), "test.php") + actual, _ := parser.Parse(bytes.NewBufferString(src), "test.php") if diff := pretty.Compare(expected, actual); diff != "" { t.Errorf("diff: (-expected +actual)\n%s", diff) @@ -47,7 +47,7 @@ func TestMultilineDoubleQuotedScalarString(t *testing.T) { expr := stmt.NewExpression(str).SetPosition(&node.Position{1, 3, 4, 14}) expected := stmt.NewStmtList([]node.Node{expr}).SetPosition(&node.Position{1, 3, 4, 14}) - actual := parser.Parse(bytes.NewBufferString(src), "test.php") + actual, _ := parser.Parse(bytes.NewBufferString(src), "test.php") if diff := pretty.Compare(expected, actual); diff != "" { t.Errorf("diff: (-expected +actual)\n%s", diff) @@ -61,7 +61,7 @@ func TestSingleQuotedScalarString(t *testing.T) { expr := stmt.NewExpression(str).SetPosition(&node.Position{1, 1, 4, 11}) expected := stmt.NewStmtList([]node.Node{expr}).SetPosition(&node.Position{1, 1, 4, 11}) - actual := parser.Parse(bytes.NewBufferString(src), "test.php") + actual, _ := parser.Parse(bytes.NewBufferString(src), "test.php") if diff := pretty.Compare(expected, actual); diff != "" { t.Errorf("diff: (-expected +actual)\n%s", diff) @@ -77,7 +77,7 @@ func TestMultilineSingleQuotedScalarString(t *testing.T) { expr := stmt.NewExpression(str).SetPosition(&node.Position{1, 3, 4, 15}) expected := stmt.NewStmtList([]node.Node{expr}).SetPosition(&node.Position{1, 3, 4, 15}) - actual := parser.Parse(bytes.NewBufferString(src), "test.php") + actual, _ := parser.Parse(bytes.NewBufferString(src), "test.php") if diff := pretty.Compare(expected, actual); diff != "" { t.Errorf("diff: (-expected +actual)\n%s", diff) @@ -94,7 +94,7 @@ CAD; expr := stmt.NewExpression(str).SetPosition(&node.Position{1, 3, 4, 21}) expected := stmt.NewStmtList([]node.Node{expr}).SetPosition(&node.Position{1, 3, 4, 21}) - actual := parser.Parse(bytes.NewBufferString(src), "test.php") + actual, _ := parser.Parse(bytes.NewBufferString(src), "test.php") if diff := pretty.Compare(expected, actual); diff != "" { t.Errorf("diff: (-expected +actual)\n%s", diff) @@ -111,7 +111,7 @@ CAD; expr := stmt.NewExpression(str).SetPosition(&node.Position{1, 3, 4, 23}) expected := stmt.NewStmtList([]node.Node{expr}).SetPosition(&node.Position{1, 3, 4, 23}) - actual := parser.Parse(bytes.NewBufferString(src), "test.php") + actual, _ := parser.Parse(bytes.NewBufferString(src), "test.php") if diff := pretty.Compare(expected, actual); diff != "" { t.Errorf("diff: (-expected +actual)\n%s", diff) @@ -128,7 +128,7 @@ CAD; expr := stmt.NewExpression(str).SetPosition(&node.Position{1, 3, 4, 30}) expected := stmt.NewStmtList([]node.Node{expr}).SetPosition(&node.Position{1, 3, 4, 30}) - actual := parser.Parse(bytes.NewBufferString(src), "test.php") + actual, _ := parser.Parse(bytes.NewBufferString(src), "test.php") if diff := pretty.Compare(expected, actual); diff != "" { t.Errorf("diff: (-expected +actual)\n%s", diff)