From 1ebb0c6fad1266f3aacfc88f38653f0147601f30 Mon Sep 17 00:00:00 2001 From: z7zmey Date: Sun, 24 Jun 2018 10:19:44 +0300 Subject: [PATCH] #25: save position within node --- errors/error.go | 7 +- errors/error_test.go | 15 +- main.go | 10 - node/expr/assign/n_assign.go | 16 +- node/expr/assign/n_assign_ref.go | 16 +- node/expr/assign/n_bitwise_and.go | 16 +- node/expr/assign/n_bitwise_or.go | 16 +- node/expr/assign/n_bitwise_xor.go | 16 +- node/expr/assign/n_concat.go | 16 +- node/expr/assign/n_div.go | 16 +- node/expr/assign/n_minus.go | 16 +- node/expr/assign/n_mod.go | 16 +- node/expr/assign/n_mul.go | 16 +- node/expr/assign/n_plus.go | 16 +- node/expr/assign/n_pow.go | 16 +- node/expr/assign/n_shift_left.go | 16 +- node/expr/assign/n_shift_right.go | 16 +- node/expr/assign/t_assign_op_test.go | 903 +- node/expr/binary/n_bitwise_and.go | 20 +- node/expr/binary/n_bitwise_or.go | 20 +- node/expr/binary/n_bitwise_xor.go | 20 +- node/expr/binary/n_boolean_and.go | 20 +- node/expr/binary/n_boolean_or.go | 20 +- node/expr/binary/n_coalesce.go | 20 +- node/expr/binary/n_concat.go | 20 +- node/expr/binary/n_div.go | 20 +- node/expr/binary/n_equal.go | 20 +- node/expr/binary/n_greater.go | 20 +- node/expr/binary/n_greater_or_equal.go | 20 +- node/expr/binary/n_identical.go | 20 +- node/expr/binary/n_logical_and.go | 20 +- node/expr/binary/n_logical_or.go | 20 +- node/expr/binary/n_logical_xor.go | 20 +- node/expr/binary/n_minus.go | 20 +- node/expr/binary/n_mod.go | 20 +- node/expr/binary/n_mul.go | 20 +- node/expr/binary/n_not_equal.go | 20 +- node/expr/binary/n_not_identical.go | 20 +- node/expr/binary/n_plus.go | 20 +- node/expr/binary/n_pow.go | 20 +- node/expr/binary/n_shift_left.go | 20 +- node/expr/binary/n_shift_right.go | 20 +- node/expr/binary/n_smaller.go | 20 +- node/expr/binary/n_smaller_or_equal.go | 20 +- node/expr/binary/n_spaceship.go | 20 +- node/expr/binary/t_binary_op_test.go | 1459 +- node/expr/cast/n_cast_array.go | 16 +- node/expr/cast/n_cast_bool.go | 16 +- node/expr/cast/n_cast_double.go | 16 +- node/expr/cast/n_cast_int.go | 16 +- node/expr/cast/n_cast_object.go | 16 +- node/expr/cast/n_cast_string.go | 16 +- node/expr/cast/n_cast_unset.go | 16 +- node/expr/cast/t_cast_test.go | 419 +- node/expr/n_array.go | 16 +- node/expr/n_array_dim_fetch.go | 16 +- node/expr/n_array_item.go | 20 +- node/expr/n_bitwise_not.go | 16 +- node/expr/n_boolean_not.go | 16 +- node/expr/n_class_const_fetch.go | 16 +- node/expr/n_clone.go | 16 +- node/expr/n_closure.go | 26 +- node/expr/n_closure_use.go | 16 +- node/expr/n_const_fetch.go | 14 +- node/expr/n_die.go | 16 +- node/expr/n_empty.go | 16 +- node/expr/n_error_suppress.go | 16 +- node/expr/n_eval.go | 16 +- node/expr/n_exit.go | 16 +- node/expr/n_function_call.go | 16 +- node/expr/n_include.go | 16 +- node/expr/n_include_once.go | 16 +- node/expr/n_instance_of.go | 20 +- node/expr/n_isset.go | 14 +- node/expr/n_list.go | 16 +- node/expr/n_method_call.go | 18 +- node/expr/n_new.go | 16 +- node/expr/n_post_dec.go | 14 +- node/expr/n_post_inc.go | 14 +- node/expr/n_pre_dec.go | 14 +- node/expr/n_pre_inc.go | 14 +- node/expr/n_print.go | 16 +- node/expr/n_property_fetch.go | 16 +- node/expr/n_reference.go | 14 +- node/expr/n_require.go | 16 +- node/expr/n_require_once.go | 16 +- node/expr/n_shell_exec.go | 16 +- node/expr/n_short_array.go | 16 +- node/expr/n_short_list.go | 16 +- node/expr/n_static_call.go | 18 +- node/expr/n_static_property_fetch.go | 16 +- node/expr/n_ternary.go | 18 +- node/expr/n_unary_minus.go | 16 +- node/expr/n_unary_plus.go | 16 +- node/expr/n_variable.go | 16 +- node/expr/n_yield.go | 20 +- node/expr/n_yield_from.go | 16 +- node/expr/t_array_dim_fetch_test.go | 111 +- node/expr/t_array_test.go | 129 +- node/expr/t_bitwise_not_test.go | 37 +- node/expr/t_boolean_not_test.go | 37 +- node/expr/t_class_const_fetch_test.go | 83 +- node/expr/t_clone_test.go | 73 +- node/expr/t_closure_test.go | 291 +- node/expr/t_const_fetch_test.go | 115 +- node/expr/t_empty_test.go | 37 +- node/expr/t_error_supress_test.go | 37 +- node/expr/t_eval_test.go | 37 +- node/expr/t_exit_test.go | 115 +- node/expr/t_function_call_test.go | 291 +- node/expr/t_inc_dec_test.go | 145 +- node/expr/t_include_test.go | 145 +- node/expr/t_instance_of_test.go | 157 +- node/expr/t_isset_test.go | 91 +- node/expr/t_list_test.go | 259 +- node/expr/t_method_call_test.go | 56 +- node/expr/t_new_test.go | 207 +- node/expr/t_print_test.go | 37 +- node/expr/t_property_fetch_test.go | 47 +- node/expr/t_reference_test.go | 81 +- node/expr/t_shell_exec_test.go | 47 +- node/expr/t_short_array_test.go | 129 +- node/expr/t_short_list_test.go | 217 +- node/expr/t_static_call_test.go | 284 +- node/expr/t_static_property_fetch_test.go | 157 +- node/expr/t_ternary_test.go | 359 +- node/expr/t_unary_test.go | 73 +- node/expr/t_variable_test.go | 69 +- node/expr/t_yield_test.go | 222 +- node/n_argument.go | 22 +- node/n_argument_list.go | 14 +- node/n_identifier.go | 20 +- node/n_nullable.go | 20 +- node/n_parameter.go | 26 +- node/n_root.go | 16 +- node/name/n_fully_qualified.go | 16 +- node/name/n_name.go | 16 +- node/name/n_name_part.go | 20 +- node/name/n_relative.go | 16 +- node/name/t_name_test.go | 142 +- node/node.go | 7 +- node/scalar/node_dnumber.go | 20 +- node/scalar/node_encapsed.go | 18 +- node/scalar/node_encapsed_string_part.go | 20 +- node/scalar/node_heredoc.go | 22 +- node/scalar/node_lnumber.go | 20 +- node/scalar/node_magic_constant.go | 20 +- node/scalar/node_string.go | 20 +- node/scalar/t_encapsed_test.go | 466 +- node/scalar/t_heredoc_test.go | 187 +- node/scalar/t_magic_constant_test.go | 23 +- node/scalar/t_numbers_test.go | 155 +- node/scalar/t_string_test.go | 112 +- node/stmt/n_alt_else.go | 16 +- node/stmt/n_alt_else_if.go | 20 +- node/stmt/n_alt_for.go | 28 +- node/stmt/n_alt_foreach.go | 20 +- node/stmt/n_alt_if.go | 28 +- node/stmt/n_alt_switch.go | 16 +- node/stmt/n_alt_while.go | 20 +- node/stmt/n_break.go | 16 +- node/stmt/n_case.go | 20 +- node/stmt/n_case_list.go | 16 +- node/stmt/n_catch.go | 18 +- node/stmt/n_class.go | 26 +- node/stmt/n_class_const_list.go | 16 +- node/stmt/n_class_extends.go | 14 +- node/stmt/n_class_implements.go | 14 +- node/stmt/n_class_method.go | 26 +- node/stmt/n_const_list.go | 16 +- node/stmt/n_constant.go | 18 +- node/stmt/n_continue.go | 16 +- node/stmt/n_declare.go | 20 +- node/stmt/n_default.go | 16 +- node/stmt/n_do.go | 20 +- node/stmt/n_echo.go | 16 +- node/stmt/n_else.go | 16 +- node/stmt/n_else_if.go | 20 +- node/stmt/n_expression.go | 16 +- node/stmt/n_finally.go | 16 +- node/stmt/n_for.go | 28 +- node/stmt/n_foreach.go | 20 +- node/stmt/n_function.go | 24 +- node/stmt/n_global.go | 16 +- node/stmt/n_goto.go | 16 +- node/stmt/n_group_use.go | 24 +- node/stmt/n_halt_compiler.go | 16 +- node/stmt/n_if.go | 28 +- node/stmt/n_inline_html.go | 20 +- node/stmt/n_interface.go | 20 +- node/stmt/n_interface_extends.go | 14 +- node/stmt/n_label.go | 14 +- node/stmt/n_namespace.go | 16 +- node/stmt/n_nop.go | 16 +- node/stmt/n_property.go | 18 +- node/stmt/n_property_list.go | 16 +- node/stmt/n_return.go | 16 +- node/stmt/n_static.go | 16 +- node/stmt/n_static_var.go | 16 +- node/stmt/n_stmt_list.go | 16 +- node/stmt/n_switch.go | 16 +- node/stmt/n_throw.go | 16 +- node/stmt/n_trait.go | 18 +- node/stmt/n_trait_adaptation_list.go | 14 +- node/stmt/n_trait_method_ref.go | 20 +- node/stmt/n_trait_use.go | 16 +- node/stmt/n_trait_use_alias.go | 18 +- node/stmt/n_trait_use_precedence.go | 16 +- node/stmt/n_try.go | 24 +- node/stmt/n_unset.go | 16 +- node/stmt/n_use.go | 24 +- node/stmt/n_use_list.go | 20 +- node/stmt/n_while.go | 20 +- node/stmt/t_alt_if_test.go | 295 +- node/stmt/t_class_const_list_test.go | 173 +- node/stmt/t_class_method_test.go | 480 +- node/stmt/t_class_test.go | 334 +- node/stmt/t_const_list_test.go | 65 +- node/stmt/t_continue_test.go | 126 +- node/stmt/t_declare_test.go | 162 +- node/stmt/t_do_test.go | 29 +- node/stmt/t_echo_test.go | 67 +- node/stmt/t_expression_test.go | 23 +- node/stmt/t_for_test.go | 219 +- node/stmt/t_foreach_test.go | 483 +- node/stmt/t_function_test.go | 256 +- node/stmt/t_global_test.go | 142 +- node/stmt/t_goto_label_test.go | 39 +- node/stmt/t_halt_compiler_test.go | 16 +- node/stmt/t_if_test.go | 428 +- node/stmt/t_inline_html_test.go | 26 +- node/stmt/t_interface_test.go | 132 +- node/stmt/t_namespace_test.go | 72 +- node/stmt/t_property_list_test.go | 281 +- node/stmt/t_static_var_test.go | 177 +- node/stmt/t_switch_case_default_test.go | 283 +- node/stmt/t_throw_test.go | 31 +- node/stmt/t_trait_test.go | 25 +- node/stmt/t_trait_use_test.go | 568 +- node/stmt/t_try_catch_finnaly_test.go | 402 +- node/stmt/t_unset_test.go | 127 +- node/stmt/t_use_test.go | 952 +- node/stmt/t_while_break_test.go | 126 +- node/t_node_test.go | 2567 ++- parser/parser.go | 1 - parser/position_builder.go | 178 +- parser/position_builder_test.go | 497 +- parser/positions.go | 14 - parser/positions_test.go | 25 - php5/parser.go | 14 +- php5/php5.go | 1392 +- php5/php5.y | 989 +- php5/php5_test.go | 20268 +++++++++++++++++--- php7/parser.go | 14 +- php7/php7.go | 756 +- php7/php7.y | 698 +- php7/php7_test.go | 16028 ++++++++++++++-- scanner/lexer.go | 17 +- scanner/token.go | 10 +- scanner/token_test.go | 14 +- visitor/dumper.go | 7 +- visitor/dumper_test.go | 1 - visitor/go_dumper.go | 17 + visitor/go_dumper_test.go | 128 +- visitor/json_dumper.go | 18 +- visitor/json_dumper_test.go | 1 - visitor/pretty_json_dumper.go | 35 +- visitor/pretty_json_dumper_test.go | 1 - 268 files changed, 53606 insertions(+), 7719 deletions(-) delete mode 100644 parser/positions.go delete mode 100644 parser/positions_test.go diff --git a/errors/error.go b/errors/error.go index 850856d..2dd46c2 100644 --- a/errors/error.go +++ b/errors/error.go @@ -17,7 +17,12 @@ type Error struct { func NewError(msg string, t *scanner.Token) *Error { return &Error{ Msg: msg, - Pos: t.Position, + Pos: &position.Position{ + StartLine: t.StartLine, + EndLine: t.EndLine, + StartPos: t.StartPos, + EndPos: t.EndPos, + }, } } diff --git a/errors/error_test.go b/errors/error_test.go index d2e0484..27828c4 100644 --- a/errors/error_test.go +++ b/errors/error_test.go @@ -28,8 +28,11 @@ func assertEqual(t *testing.T, expected interface{}, actual interface{}) { func TestConstructor(t *testing.T) { pos := position.NewPosition(1, 2, 3, 4) token := &scanner.Token{ - Value: `test`, - Position: pos, + Value: `test`, + StartLine: 1, + EndLine: 2, + StartPos: 3, + EndPos: 4, } actual := errors.NewError("message", token) @@ -43,10 +46,12 @@ func TestConstructor(t *testing.T) { } func TestPrint(t *testing.T) { - pos := position.NewPosition(1, 2, 3, 4) token := &scanner.Token{ - Value: `test`, - Position: pos, + Value: `test`, + StartLine: 1, + EndLine: 2, + StartPos: 3, + EndPos: 4, } Error := errors.NewError("message", token) diff --git a/main.go b/main.go index 3a6e572..6233d3d 100644 --- a/main.go +++ b/main.go @@ -21,13 +21,11 @@ var wg sync.WaitGroup var usePhp5 *bool var dumpType string var profiler string -var showPositions *bool var showComments *bool var showResolvedNs *bool func main() { usePhp5 = flag.Bool("php5", false, "parse as PHP5") - showPositions = flag.Bool("p", false, "show positions") showComments = flag.Bool("c", false, "show comments") showResolvedNs = flag.Bool("r", false, "resolve names") flag.StringVar(&dumpType, "d", "", "dump format: [custom, go, json, pretty_json]") @@ -145,18 +143,12 @@ func printer(result <-chan parser.Parser) { comments = parserWorker.GetComments() } - var positions parser.Positions - if *showPositions { - positions = parserWorker.GetPositions() - } - switch dumpType { case "custom": dumper := &visitor.Dumper{ Writer: os.Stdout, Indent: "| ", Comments: comments, - Positions: positions, NsResolver: nsResolver, } parserWorker.GetRootNode().Walk(dumper) @@ -164,7 +156,6 @@ func printer(result <-chan parser.Parser) { dumper := &visitor.JsonDumper{ Writer: os.Stdout, Comments: comments, - Positions: positions, NsResolver: nsResolver, } parserWorker.GetRootNode().Walk(dumper) @@ -172,7 +163,6 @@ func printer(result <-chan parser.Parser) { dumper := &visitor.PrettyJsonDumper{ Writer: os.Stdout, Comments: comments, - Positions: positions, NsResolver: nsResolver, } parserWorker.GetRootNode().Walk(dumper) diff --git a/node/expr/assign/n_assign.go b/node/expr/assign/n_assign.go index 65a9cb8..7d99267 100644 --- a/node/expr/assign/n_assign.go +++ b/node/expr/assign/n_assign.go @@ -2,11 +2,13 @@ package assign import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Assign node type Assign struct { + Position *position.Position Variable node.Node Expression node.Node } @@ -14,11 +16,21 @@ type Assign struct { // NewAssign node constructor func NewAssign(Variable node.Node, Expression node.Node) *Assign { return &Assign{ - Variable, - Expression, + Variable: Variable, + Expression: Expression, } } +// SetPosition sets node position +func (n *Assign) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Assign) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Assign) Attributes() map[string]interface{} { return nil diff --git a/node/expr/assign/n_assign_ref.go b/node/expr/assign/n_assign_ref.go index c6d560f..92fbd45 100644 --- a/node/expr/assign/n_assign_ref.go +++ b/node/expr/assign/n_assign_ref.go @@ -2,11 +2,13 @@ package assign import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Reference node type Reference struct { + Position *position.Position Variable node.Node Expression node.Node } @@ -14,11 +16,21 @@ type Reference struct { // NewReference node constructor func NewReference(Variable node.Node, Expression node.Node) *Reference { return &Reference{ - Variable, - Expression, + Variable: Variable, + Expression: Expression, } } +// SetPosition sets node position +func (n *Reference) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Reference) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Reference) Attributes() map[string]interface{} { return nil diff --git a/node/expr/assign/n_bitwise_and.go b/node/expr/assign/n_bitwise_and.go index ff01896..bc43e00 100644 --- a/node/expr/assign/n_bitwise_and.go +++ b/node/expr/assign/n_bitwise_and.go @@ -2,11 +2,13 @@ package assign import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // BitwiseAnd node type BitwiseAnd struct { + Position *position.Position Variable node.Node Expression node.Node } @@ -14,11 +16,21 @@ type BitwiseAnd struct { // NewBitwiseAnd node constructor func NewBitwiseAnd(Variable node.Node, Expression node.Node) *BitwiseAnd { return &BitwiseAnd{ - Variable, - Expression, + Variable: Variable, + Expression: Expression, } } +// SetPosition sets node position +func (n *BitwiseAnd) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *BitwiseAnd) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *BitwiseAnd) Attributes() map[string]interface{} { return nil diff --git a/node/expr/assign/n_bitwise_or.go b/node/expr/assign/n_bitwise_or.go index 2832633..c758efc 100644 --- a/node/expr/assign/n_bitwise_or.go +++ b/node/expr/assign/n_bitwise_or.go @@ -2,11 +2,13 @@ package assign import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // BitwiseOr node type BitwiseOr struct { + Position *position.Position Variable node.Node Expression node.Node } @@ -14,11 +16,21 @@ type BitwiseOr struct { // NewBitwiseOr node constructor func NewBitwiseOr(Variable node.Node, Expression node.Node) *BitwiseOr { return &BitwiseOr{ - Variable, - Expression, + Variable: Variable, + Expression: Expression, } } +// SetPosition sets node position +func (n *BitwiseOr) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *BitwiseOr) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *BitwiseOr) Attributes() map[string]interface{} { return nil diff --git a/node/expr/assign/n_bitwise_xor.go b/node/expr/assign/n_bitwise_xor.go index ad22009..76da08a 100644 --- a/node/expr/assign/n_bitwise_xor.go +++ b/node/expr/assign/n_bitwise_xor.go @@ -2,11 +2,13 @@ package assign import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // BitwiseXor node type BitwiseXor struct { + Position *position.Position Variable node.Node Expression node.Node } @@ -14,11 +16,21 @@ type BitwiseXor struct { // NewBitwiseXor node constructor func NewBitwiseXor(Variable node.Node, Expression node.Node) *BitwiseXor { return &BitwiseXor{ - Variable, - Expression, + Variable: Variable, + Expression: Expression, } } +// SetPosition sets node position +func (n *BitwiseXor) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *BitwiseXor) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *BitwiseXor) Attributes() map[string]interface{} { return nil diff --git a/node/expr/assign/n_concat.go b/node/expr/assign/n_concat.go index 66c08fc..14484cf 100644 --- a/node/expr/assign/n_concat.go +++ b/node/expr/assign/n_concat.go @@ -2,11 +2,13 @@ package assign import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Concat node type Concat struct { + Position *position.Position Variable node.Node Expression node.Node } @@ -14,11 +16,21 @@ type Concat struct { // NewConcat node constructor func NewConcat(Variable node.Node, Expression node.Node) *Concat { return &Concat{ - Variable, - Expression, + Variable: Variable, + Expression: Expression, } } +// SetPosition sets node position +func (n *Concat) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Concat) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Concat) Attributes() map[string]interface{} { return nil diff --git a/node/expr/assign/n_div.go b/node/expr/assign/n_div.go index 9d70e82..a10fdb6 100644 --- a/node/expr/assign/n_div.go +++ b/node/expr/assign/n_div.go @@ -2,11 +2,13 @@ package assign import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Div node type Div struct { + Position *position.Position Variable node.Node Expression node.Node } @@ -14,11 +16,21 @@ type Div struct { // NewDiv node constructor func NewDiv(Variable node.Node, Expression node.Node) *Div { return &Div{ - Variable, - Expression, + Variable: Variable, + Expression: Expression, } } +// SetPosition sets node position +func (n *Div) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Div) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Div) Attributes() map[string]interface{} { return nil diff --git a/node/expr/assign/n_minus.go b/node/expr/assign/n_minus.go index 191e6fa..1b29561 100644 --- a/node/expr/assign/n_minus.go +++ b/node/expr/assign/n_minus.go @@ -2,11 +2,13 @@ package assign import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Minus node type Minus struct { + Position *position.Position Variable node.Node Expression node.Node } @@ -14,11 +16,21 @@ type Minus struct { // NewMinus node constructor func NewMinus(Variable node.Node, Expression node.Node) *Minus { return &Minus{ - Variable, - Expression, + Variable: Variable, + Expression: Expression, } } +// SetPosition sets node position +func (n *Minus) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Minus) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Minus) Attributes() map[string]interface{} { return nil diff --git a/node/expr/assign/n_mod.go b/node/expr/assign/n_mod.go index b35dd22..ba98537 100644 --- a/node/expr/assign/n_mod.go +++ b/node/expr/assign/n_mod.go @@ -2,11 +2,13 @@ package assign import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Mod node type Mod struct { + Position *position.Position Variable node.Node Expression node.Node } @@ -14,11 +16,21 @@ type Mod struct { // NewMod node constructor func NewMod(Variable node.Node, Expression node.Node) *Mod { return &Mod{ - Variable, - Expression, + Variable: Variable, + Expression: Expression, } } +// SetPosition sets node position +func (n *Mod) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Mod) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Mod) Attributes() map[string]interface{} { return nil diff --git a/node/expr/assign/n_mul.go b/node/expr/assign/n_mul.go index d241a4d..8abc7c6 100644 --- a/node/expr/assign/n_mul.go +++ b/node/expr/assign/n_mul.go @@ -2,11 +2,13 @@ package assign import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Mul node type Mul struct { + Position *position.Position Variable node.Node Expression node.Node } @@ -14,11 +16,21 @@ type Mul struct { // NewMul node constructor func NewMul(Variable node.Node, Expression node.Node) *Mul { return &Mul{ - Variable, - Expression, + Variable: Variable, + Expression: Expression, } } +// SetPosition sets node position +func (n *Mul) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Mul) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Mul) Attributes() map[string]interface{} { return nil diff --git a/node/expr/assign/n_plus.go b/node/expr/assign/n_plus.go index d010c54..b12f948 100644 --- a/node/expr/assign/n_plus.go +++ b/node/expr/assign/n_plus.go @@ -2,11 +2,13 @@ package assign import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Plus node type Plus struct { + Position *position.Position Variable node.Node Expression node.Node } @@ -14,11 +16,21 @@ type Plus struct { // NewPlus node constructor func NewPlus(Variable node.Node, Expression node.Node) *Plus { return &Plus{ - Variable, - Expression, + Variable: Variable, + Expression: Expression, } } +// SetPosition sets node position +func (n *Plus) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Plus) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Plus) Attributes() map[string]interface{} { return nil diff --git a/node/expr/assign/n_pow.go b/node/expr/assign/n_pow.go index 8623887..4b4edcf 100644 --- a/node/expr/assign/n_pow.go +++ b/node/expr/assign/n_pow.go @@ -2,11 +2,13 @@ package assign import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Pow node type Pow struct { + Position *position.Position Variable node.Node Expression node.Node } @@ -14,11 +16,21 @@ type Pow struct { // NewPow node constructor func NewPow(Variable node.Node, Expression node.Node) *Pow { return &Pow{ - Variable, - Expression, + Variable: Variable, + Expression: Expression, } } +// SetPosition sets node position +func (n *Pow) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Pow) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Pow) Attributes() map[string]interface{} { return nil diff --git a/node/expr/assign/n_shift_left.go b/node/expr/assign/n_shift_left.go index 49f3fc5..2d60059 100644 --- a/node/expr/assign/n_shift_left.go +++ b/node/expr/assign/n_shift_left.go @@ -2,11 +2,13 @@ package assign import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // ShiftLeft node type ShiftLeft struct { + Position *position.Position Variable node.Node Expression node.Node } @@ -14,11 +16,21 @@ type ShiftLeft struct { // NewShiftLeft node constructor func NewShiftLeft(Variable node.Node, Expression node.Node) *ShiftLeft { return &ShiftLeft{ - Variable, - Expression, + Variable: Variable, + Expression: Expression, } } +// SetPosition sets node position +func (n *ShiftLeft) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *ShiftLeft) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *ShiftLeft) Attributes() map[string]interface{} { return nil diff --git a/node/expr/assign/n_shift_right.go b/node/expr/assign/n_shift_right.go index b07ff30..715002d 100644 --- a/node/expr/assign/n_shift_right.go +++ b/node/expr/assign/n_shift_right.go @@ -2,11 +2,13 @@ package assign import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // ShiftRight node type ShiftRight struct { + Position *position.Position Variable node.Node Expression node.Node } @@ -14,11 +16,21 @@ type ShiftRight struct { // NewShiftRight node constructor func NewShiftRight(Variable node.Node, Expression node.Node) *ShiftRight { return &ShiftRight{ - Variable, - Expression, + Variable: Variable, + Expression: Expression, } } +// SetPosition sets node position +func (n *ShiftRight) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *ShiftRight) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *ShiftRight) Attributes() map[string]interface{} { return nil diff --git a/node/expr/assign/t_assign_op_test.go b/node/expr/assign/t_assign_op_test.go index 207e891..4a00579 100644 --- a/node/expr/assign/t_assign_op_test.go +++ b/node/expr/assign/t_assign_op_test.go @@ -6,6 +6,7 @@ import ( "testing" "github.com/z7zmey/php-parser/node/expr/assign" + "github.com/z7zmey/php-parser/position" "github.com/kylelemons/godebug/pretty" @@ -33,11 +34,61 @@ func TestReference(t *testing.T) { src := `>= $b;` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 13, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 13, + }, Expr: &assign.ShiftRight{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 12, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 5, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 5, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 12, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 12, + }, + Value: "b", + }, + }, }, }, }, diff --git a/node/expr/binary/n_bitwise_and.go b/node/expr/binary/n_bitwise_and.go index 5b24ccb..1e18f70 100644 --- a/node/expr/binary/n_bitwise_and.go +++ b/node/expr/binary/n_bitwise_and.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // BitwiseAnd node type BitwiseAnd struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewBitwiseAnd node constructor func NewBitwiseAnd(Variable node.Node, Expression node.Node) *BitwiseAnd { return &BitwiseAnd{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *BitwiseAnd) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *BitwiseAnd) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *BitwiseAnd) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_bitwise_or.go b/node/expr/binary/n_bitwise_or.go index 0637ecb..77449a6 100644 --- a/node/expr/binary/n_bitwise_or.go +++ b/node/expr/binary/n_bitwise_or.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // BitwiseOr node type BitwiseOr struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewBitwiseOr node constructor func NewBitwiseOr(Variable node.Node, Expression node.Node) *BitwiseOr { return &BitwiseOr{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *BitwiseOr) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *BitwiseOr) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *BitwiseOr) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_bitwise_xor.go b/node/expr/binary/n_bitwise_xor.go index f675345..cbf6359 100644 --- a/node/expr/binary/n_bitwise_xor.go +++ b/node/expr/binary/n_bitwise_xor.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // BitwiseXor node type BitwiseXor struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewBitwiseXor node constructor func NewBitwiseXor(Variable node.Node, Expression node.Node) *BitwiseXor { return &BitwiseXor{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *BitwiseXor) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *BitwiseXor) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *BitwiseXor) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_boolean_and.go b/node/expr/binary/n_boolean_and.go index b0a5bae..e47bcf4 100644 --- a/node/expr/binary/n_boolean_and.go +++ b/node/expr/binary/n_boolean_and.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // BooleanAnd node type BooleanAnd struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewBooleanAnd node constructor func NewBooleanAnd(Variable node.Node, Expression node.Node) *BooleanAnd { return &BooleanAnd{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *BooleanAnd) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *BooleanAnd) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *BooleanAnd) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_boolean_or.go b/node/expr/binary/n_boolean_or.go index b522baa..d374639 100644 --- a/node/expr/binary/n_boolean_or.go +++ b/node/expr/binary/n_boolean_or.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // BooleanOr node type BooleanOr struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewBooleanOr node constructor func NewBooleanOr(Variable node.Node, Expression node.Node) *BooleanOr { return &BooleanOr{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *BooleanOr) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *BooleanOr) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *BooleanOr) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_coalesce.go b/node/expr/binary/n_coalesce.go index 8339fdc..f852c26 100644 --- a/node/expr/binary/n_coalesce.go +++ b/node/expr/binary/n_coalesce.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Coalesce node type Coalesce struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewCoalesce node constructor func NewCoalesce(Variable node.Node, Expression node.Node) *Coalesce { return &Coalesce{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *Coalesce) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Coalesce) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Coalesce) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_concat.go b/node/expr/binary/n_concat.go index a5953c1..a2949cc 100644 --- a/node/expr/binary/n_concat.go +++ b/node/expr/binary/n_concat.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Concat node type Concat struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewConcat node constructor func NewConcat(Variable node.Node, Expression node.Node) *Concat { return &Concat{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *Concat) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Concat) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Concat) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_div.go b/node/expr/binary/n_div.go index d3f7a86..958c376 100644 --- a/node/expr/binary/n_div.go +++ b/node/expr/binary/n_div.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Div node type Div struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewDiv node constructor func NewDiv(Variable node.Node, Expression node.Node) *Div { return &Div{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *Div) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Div) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Div) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_equal.go b/node/expr/binary/n_equal.go index b266679..6db8bd5 100644 --- a/node/expr/binary/n_equal.go +++ b/node/expr/binary/n_equal.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Equal node type Equal struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewEqual node constructor func NewEqual(Variable node.Node, Expression node.Node) *Equal { return &Equal{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *Equal) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Equal) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Equal) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_greater.go b/node/expr/binary/n_greater.go index 58f24fe..58f81e8 100644 --- a/node/expr/binary/n_greater.go +++ b/node/expr/binary/n_greater.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Greater node type Greater struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewGreater node constructor func NewGreater(Variable node.Node, Expression node.Node) *Greater { return &Greater{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *Greater) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Greater) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Greater) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_greater_or_equal.go b/node/expr/binary/n_greater_or_equal.go index 921b84a..f42b82c 100644 --- a/node/expr/binary/n_greater_or_equal.go +++ b/node/expr/binary/n_greater_or_equal.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // GreaterOrEqual node type GreaterOrEqual struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewGreaterOrEqual node constructor func NewGreaterOrEqual(Variable node.Node, Expression node.Node) *GreaterOrEqual { return &GreaterOrEqual{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *GreaterOrEqual) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *GreaterOrEqual) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *GreaterOrEqual) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_identical.go b/node/expr/binary/n_identical.go index 06c1947..31d913f 100644 --- a/node/expr/binary/n_identical.go +++ b/node/expr/binary/n_identical.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Identical node type Identical struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewIdentical node constructor func NewIdentical(Variable node.Node, Expression node.Node) *Identical { return &Identical{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *Identical) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Identical) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Identical) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_logical_and.go b/node/expr/binary/n_logical_and.go index 7015a74..50b2749 100644 --- a/node/expr/binary/n_logical_and.go +++ b/node/expr/binary/n_logical_and.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // LogicalAnd node type LogicalAnd struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewLogicalAnd node constructor func NewLogicalAnd(Variable node.Node, Expression node.Node) *LogicalAnd { return &LogicalAnd{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *LogicalAnd) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *LogicalAnd) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *LogicalAnd) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_logical_or.go b/node/expr/binary/n_logical_or.go index 05dff50..17c9099 100644 --- a/node/expr/binary/n_logical_or.go +++ b/node/expr/binary/n_logical_or.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // LogicalOr node type LogicalOr struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewLogicalOr node constructor func NewLogicalOr(Variable node.Node, Expression node.Node) *LogicalOr { return &LogicalOr{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *LogicalOr) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *LogicalOr) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *LogicalOr) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_logical_xor.go b/node/expr/binary/n_logical_xor.go index 91e8408..6811160 100644 --- a/node/expr/binary/n_logical_xor.go +++ b/node/expr/binary/n_logical_xor.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // LogicalXor node type LogicalXor struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewLogicalXor node constructor func NewLogicalXor(Variable node.Node, Expression node.Node) *LogicalXor { return &LogicalXor{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *LogicalXor) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *LogicalXor) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *LogicalXor) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_minus.go b/node/expr/binary/n_minus.go index 6e42de6..1e76457 100644 --- a/node/expr/binary/n_minus.go +++ b/node/expr/binary/n_minus.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Minus node type Minus struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewMinus node constructor func NewMinus(Variable node.Node, Expression node.Node) *Minus { return &Minus{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *Minus) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Minus) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Minus) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_mod.go b/node/expr/binary/n_mod.go index 759737a..46d3f74 100644 --- a/node/expr/binary/n_mod.go +++ b/node/expr/binary/n_mod.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Mod node type Mod struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewMod node constructor func NewMod(Variable node.Node, Expression node.Node) *Mod { return &Mod{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *Mod) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Mod) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Mod) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_mul.go b/node/expr/binary/n_mul.go index c37d1c8..ea029a5 100644 --- a/node/expr/binary/n_mul.go +++ b/node/expr/binary/n_mul.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Mul node type Mul struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewMul node constructor func NewMul(Variable node.Node, Expression node.Node) *Mul { return &Mul{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *Mul) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Mul) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Mul) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_not_equal.go b/node/expr/binary/n_not_equal.go index 4cc6a89..21ef277 100644 --- a/node/expr/binary/n_not_equal.go +++ b/node/expr/binary/n_not_equal.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // NotEqual node type NotEqual struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewNotEqual node constructor func NewNotEqual(Variable node.Node, Expression node.Node) *NotEqual { return &NotEqual{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *NotEqual) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *NotEqual) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *NotEqual) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_not_identical.go b/node/expr/binary/n_not_identical.go index 172d56d..b013fbe 100644 --- a/node/expr/binary/n_not_identical.go +++ b/node/expr/binary/n_not_identical.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // NotIdentical node type NotIdentical struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewNotIdentical node constructor func NewNotIdentical(Variable node.Node, Expression node.Node) *NotIdentical { return &NotIdentical{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *NotIdentical) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *NotIdentical) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *NotIdentical) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_plus.go b/node/expr/binary/n_plus.go index 1e18553..2753099 100644 --- a/node/expr/binary/n_plus.go +++ b/node/expr/binary/n_plus.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Plus node type Plus struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewPlus node constructor func NewPlus(Variable node.Node, Expression node.Node) *Plus { return &Plus{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *Plus) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Plus) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Plus) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_pow.go b/node/expr/binary/n_pow.go index ee3d6da..371c6bd 100644 --- a/node/expr/binary/n_pow.go +++ b/node/expr/binary/n_pow.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Pow node type Pow struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewPow node constructor func NewPow(Variable node.Node, Expression node.Node) *Pow { return &Pow{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *Pow) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Pow) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Pow) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_shift_left.go b/node/expr/binary/n_shift_left.go index c1ed698..f48b559 100644 --- a/node/expr/binary/n_shift_left.go +++ b/node/expr/binary/n_shift_left.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // ShiftLeft node type ShiftLeft struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewShiftLeft node constructor func NewShiftLeft(Variable node.Node, Expression node.Node) *ShiftLeft { return &ShiftLeft{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *ShiftLeft) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *ShiftLeft) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *ShiftLeft) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_shift_right.go b/node/expr/binary/n_shift_right.go index f522721..2ff7ea8 100644 --- a/node/expr/binary/n_shift_right.go +++ b/node/expr/binary/n_shift_right.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // ShiftRight node type ShiftRight struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewShiftRight node constructor func NewShiftRight(Variable node.Node, Expression node.Node) *ShiftRight { return &ShiftRight{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *ShiftRight) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *ShiftRight) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *ShiftRight) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_smaller.go b/node/expr/binary/n_smaller.go index eff9eed..1e380a0 100644 --- a/node/expr/binary/n_smaller.go +++ b/node/expr/binary/n_smaller.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Smaller node type Smaller struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewSmaller node constructor func NewSmaller(Variable node.Node, Expression node.Node) *Smaller { return &Smaller{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *Smaller) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Smaller) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Smaller) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_smaller_or_equal.go b/node/expr/binary/n_smaller_or_equal.go index 38c4432..de00106 100644 --- a/node/expr/binary/n_smaller_or_equal.go +++ b/node/expr/binary/n_smaller_or_equal.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // SmallerOrEqual node type SmallerOrEqual struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewSmallerOrEqual node constructor func NewSmallerOrEqual(Variable node.Node, Expression node.Node) *SmallerOrEqual { return &SmallerOrEqual{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *SmallerOrEqual) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *SmallerOrEqual) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *SmallerOrEqual) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/n_spaceship.go b/node/expr/binary/n_spaceship.go index 5d307ef..955fc72 100644 --- a/node/expr/binary/n_spaceship.go +++ b/node/expr/binary/n_spaceship.go @@ -2,23 +2,35 @@ package binary import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Spaceship node type Spaceship struct { - Left node.Node - Right node.Node + Position *position.Position + Left node.Node + Right node.Node } // NewSpaceship node constructor func NewSpaceship(Variable node.Node, Expression node.Node) *Spaceship { return &Spaceship{ - Variable, - Expression, + Left: Variable, + Right: Expression, } } +// SetPosition sets node position +func (n *Spaceship) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Spaceship) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Spaceship) Attributes() map[string]interface{} { return nil diff --git a/node/expr/binary/t_binary_op_test.go b/node/expr/binary/t_binary_op_test.go index 3f316d0..ccca911 100644 --- a/node/expr/binary/t_binary_op_test.go +++ b/node/expr/binary/t_binary_op_test.go @@ -13,6 +13,7 @@ import ( "github.com/z7zmey/php-parser/node/stmt" "github.com/z7zmey/php-parser/php5" "github.com/z7zmey/php-parser/php7" + "github.com/z7zmey/php-parser/position" ) func assertEqual(t *testing.T, expected interface{}, actual interface{}) { @@ -31,11 +32,61 @@ func TestBitwiseAnd(t *testing.T) { src := `= $b;` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 12, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 12, + }, Expr: &binary.GreaterOrEqual{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 11, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 5, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 5, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 11, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 11, + }, + Value: "b", + }, + }, }, }, }, @@ -276,11 +777,61 @@ func TestGreater(t *testing.T) { src := ` $b;` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 11, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 11, + }, Expr: &binary.Greater{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 10, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 5, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 5, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 10, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 10, + }, + Value: "b", + }, + }, }, }, }, @@ -301,11 +852,61 @@ func TestIdentical(t *testing.T) { src := `> $b;` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 12, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 12, + }, Expr: &binary.ShiftRight{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 11, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 5, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 5, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 11, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 11, + }, + Value: "b", + }, + }, }, }, }, @@ -626,11 +1827,61 @@ func TestSmallerOrEqual(t *testing.T) { src := ` $b;` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 13, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 13, + }, Expr: &binary.Spaceship{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 12, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 5, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 5, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 12, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 12, + }, + Value: "b", + }, + }, }, }, }, diff --git a/node/expr/cast/n_cast_array.go b/node/expr/cast/n_cast_array.go index 0776331..fbaafd3 100644 --- a/node/expr/cast/n_cast_array.go +++ b/node/expr/cast/n_cast_array.go @@ -2,21 +2,33 @@ package cast import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Array node type Array struct { - Expr node.Node + Position *position.Position + Expr node.Node } // NewArray node constructor func NewArray(Expr node.Node) *Array { return &Array{ - Expr, + Expr: Expr, } } +// SetPosition sets node position +func (n *Array) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Array) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Array) Attributes() map[string]interface{} { return nil diff --git a/node/expr/cast/n_cast_bool.go b/node/expr/cast/n_cast_bool.go index 00e5409..e580328 100644 --- a/node/expr/cast/n_cast_bool.go +++ b/node/expr/cast/n_cast_bool.go @@ -2,21 +2,33 @@ package cast import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Bool node type Bool struct { - Expr node.Node + Position *position.Position + Expr node.Node } // NewBool node constructor func NewBool(Expr node.Node) *Bool { return &Bool{ - Expr, + Expr: Expr, } } +// SetPosition sets node position +func (n *Bool) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Bool) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Bool) Attributes() map[string]interface{} { return nil diff --git a/node/expr/cast/n_cast_double.go b/node/expr/cast/n_cast_double.go index 81c6c6a..2240d0d 100644 --- a/node/expr/cast/n_cast_double.go +++ b/node/expr/cast/n_cast_double.go @@ -2,21 +2,33 @@ package cast import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Double node type Double struct { - Expr node.Node + Position *position.Position + Expr node.Node } // NewDouble node constructor func NewDouble(Expr node.Node) *Double { return &Double{ - Expr, + Expr: Expr, } } +// SetPosition sets node position +func (n *Double) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Double) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Double) Attributes() map[string]interface{} { return nil diff --git a/node/expr/cast/n_cast_int.go b/node/expr/cast/n_cast_int.go index 0ad977d..d4ed5a3 100644 --- a/node/expr/cast/n_cast_int.go +++ b/node/expr/cast/n_cast_int.go @@ -2,21 +2,33 @@ package cast import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Int node type Int struct { - Expr node.Node + Position *position.Position + Expr node.Node } // NewInt node constructor func NewInt(Expr node.Node) *Int { return &Int{ - Expr, + Expr: Expr, } } +// SetPosition sets node position +func (n *Int) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Int) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Int) Attributes() map[string]interface{} { return nil diff --git a/node/expr/cast/n_cast_object.go b/node/expr/cast/n_cast_object.go index 7e38461..6497b77 100644 --- a/node/expr/cast/n_cast_object.go +++ b/node/expr/cast/n_cast_object.go @@ -2,21 +2,33 @@ package cast import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Object node type Object struct { - Expr node.Node + Position *position.Position + Expr node.Node } // NewObject node constructor func NewObject(Expr node.Node) *Object { return &Object{ - Expr, + Expr: Expr, } } +// SetPosition sets node position +func (n *Object) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Object) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Object) Attributes() map[string]interface{} { return nil diff --git a/node/expr/cast/n_cast_string.go b/node/expr/cast/n_cast_string.go index fab6637..3b026a9 100644 --- a/node/expr/cast/n_cast_string.go +++ b/node/expr/cast/n_cast_string.go @@ -2,21 +2,33 @@ package cast import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // String node type String struct { - Expr node.Node + Position *position.Position + Expr node.Node } // NewString node constructor func NewString(Expr node.Node) *String { return &String{ - Expr, + Expr: Expr, } } +// SetPosition sets node position +func (n *String) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *String) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *String) Attributes() map[string]interface{} { return nil diff --git a/node/expr/cast/n_cast_unset.go b/node/expr/cast/n_cast_unset.go index ea37f26..cdc8fea 100644 --- a/node/expr/cast/n_cast_unset.go +++ b/node/expr/cast/n_cast_unset.go @@ -2,21 +2,33 @@ package cast import ( "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/walker" ) // Unset node type Unset struct { - Expr node.Node + Position *position.Position + Expr node.Node } // NewUnset node constructor func NewUnset(Expr node.Node) *Unset { return &Unset{ - Expr, + Expr: Expr, } } +// SetPosition sets node position +func (n *Unset) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Unset) GetPosition() *position.Position { + return n.Position +} + // Attributes returns node attributes as map func (n *Unset) Attributes() map[string]interface{} { return nil diff --git a/node/expr/cast/t_cast_test.go b/node/expr/cast/t_cast_test.go index 4058f6c..85e6bca 100644 --- a/node/expr/cast/t_cast_test.go +++ b/node/expr/cast/t_cast_test.go @@ -13,6 +13,7 @@ import ( "github.com/z7zmey/php-parser/node/stmt" "github.com/z7zmey/php-parser/php5" "github.com/z7zmey/php-parser/php7" + "github.com/z7zmey/php-parser/position" ) func assertEqual(t *testing.T, expected interface{}, actual interface{}) { @@ -31,10 +32,44 @@ func TestArray(t *testing.T) { src := `1, &$b,);` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 21, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 21, + }, Expr: &expr.Array{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 20, + }, Items: []node.Node{ &expr.ArrayItem{ - Key: &scalar.Lnumber{Value: "1"}, - Val: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 13, + }, + Key: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 10, + }, + Value: "1", + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 13, + }, + Value: "1", + }, }, &expr.ArrayItem{ - Val: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 18, + }, + Val: &expr.Reference{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 18, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 17, + EndPos: 18, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 17, + EndPos: 18, + }, + Value: "b", + }, + }, + }, }, }, }, diff --git a/node/expr/t_bitwise_not_test.go b/node/expr/t_bitwise_not_test.go index a4c6456..ed65377 100644 --- a/node/expr/t_bitwise_not_test.go +++ b/node/expr/t_bitwise_not_test.go @@ -5,6 +5,7 @@ import ( "testing" "github.com/z7zmey/php-parser/node/expr" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/node" "github.com/z7zmey/php-parser/node/stmt" @@ -16,10 +17,44 @@ func TestBitwiseNot(t *testing.T) { src := `foo();` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 13, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 13, + }, Expr: &expr.MethodCall{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Method: &node.Identifier{Value: "foo"}, - ArgumentList: &node.ArgumentList{}, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 12, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 5, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 5, + }, + Value: "a", + }, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 10, + }, + Value: "foo", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 12, + }, + }, }, }, }, diff --git a/node/expr/t_new_test.go b/node/expr/t_new_test.go index cba3c88..f4abdf0 100644 --- a/node/expr/t_new_test.go +++ b/node/expr/t_new_test.go @@ -5,6 +5,7 @@ import ( "testing" "github.com/z7zmey/php-parser/node/name" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/node/expr" @@ -18,12 +19,44 @@ func TestNew(t *testing.T) { src := `foo;` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 11, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 11, + }, Expr: &expr.PropertyFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Property: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 10, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 5, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 5, + }, + Value: "a", + }, + }, + Property: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 10, + }, + Value: "foo", + }, }, }, }, diff --git a/node/expr/t_reference_test.go b/node/expr/t_reference_test.go index 9f83687..611c204 100644 --- a/node/expr/t_reference_test.go +++ b/node/expr/t_reference_test.go @@ -5,6 +5,7 @@ import ( "testing" "github.com/z7zmey/php-parser/node/expr" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/node" "github.com/z7zmey/php-parser/node/stmt" @@ -17,12 +18,86 @@ func TestForeachWithRef(t *testing.T) { src := ` &$v) {}` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 31, + }, Stmts: []node.Node{ &stmt.Foreach{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Key: &expr.Variable{VarName: &node.Identifier{Value: "k"}}, - Variable: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "v"}}}, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 31, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 14, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 14, + }, + Value: "a", + }, + }, + Key: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 20, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 20, + }, + Value: "k", + }, + }, + Variable: &expr.Reference{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 27, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 26, + EndPos: 27, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 26, + EndPos: 27, + }, + Value: "v", + }, + }, + }, Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 31, + }, Stmts: []node.Node{}, }, }, diff --git a/node/expr/t_shell_exec_test.go b/node/expr/t_shell_exec_test.go index 19f4ee9..be1c92f 100644 --- a/node/expr/t_shell_exec_test.go +++ b/node/expr/t_shell_exec_test.go @@ -5,6 +5,7 @@ import ( "testing" "github.com/z7zmey/php-parser/node/scalar" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/node/expr" @@ -18,12 +19,54 @@ func TestShellExec(t *testing.T) { src := "1, &$b,];` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 16, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 16, + }, Expr: &expr.ShortArray{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 15, + }, Items: []node.Node{ &expr.ArrayItem{ - Key: &scalar.Lnumber{Value: "1"}, - Val: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 5, + EndPos: 8, + }, + Key: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 5, + EndPos: 5, + }, + Value: "1", + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 8, + }, + Value: "1", + }, }, &expr.ArrayItem{ - Val: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 13, + }, + Val: &expr.Reference{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 13, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 13, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 13, + }, + Value: "b", + }, + }, + }, }, }, }, diff --git a/node/expr/t_short_list_test.go b/node/expr/t_short_list_test.go index 9492ef9..5041800 100644 --- a/node/expr/t_short_list_test.go +++ b/node/expr/t_short_list_test.go @@ -5,6 +5,7 @@ import ( "testing" "github.com/z7zmey/php-parser/node/expr/assign" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/node/expr" @@ -17,17 +18,79 @@ func TestShortList(t *testing.T) { src := ` $b;` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 18, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 18, + }, Expr: &expr.Yield{ - Key: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Value: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 17, + }, + Key: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 11, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 11, + }, + Value: "a", + }, + }, + Value: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 17, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 17, + }, + Value: "b", + }, + }, }, }, }, @@ -88,10 +192,36 @@ func TestYieldExpr(t *testing.T) { src := ` 1;` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 17, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 17, + }, Expr: &expr.Yield{ - Key: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Value: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 16, + }, + Key: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 11, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 11, + }, + Value: "a", + }, + }, + Value: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 16, + }, + Value: "1", + }, }, }, }, @@ -137,10 +309,44 @@ func TestYieldFrom(t *testing.T) { src := `bar()";` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 22, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 22, + }, Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 21, + }, Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.PropertyFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Property: &node.Identifier{Value: "bar"}, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 5, + EndPos: 9, + }, + Value: "test ", + }, + &expr.PropertyFetch{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 18, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 13, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 13, + }, + Value: "foo", + }, + }, + Property: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 18, + }, + Value: "bar", + }, + }, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 20, + }, + Value: "()", }, - &scalar.EncapsedStringPart{Value: "()"}, }, }, }, @@ -158,12 +415,54 @@ func TestDollarOpenCurlyBraces(t *testing.T) { src := `bar()}";` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 24, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 24, + }, Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 23, + }, Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 5, + EndPos: 9, + }, + Value: "test ", + }, &expr.MethodCall{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Method: &node.Identifier{Value: "bar"}, - ArgumentList: &node.ArgumentList{}, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 21, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 14, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 14, + }, + Value: "foo", + }, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 17, + EndPos: 19, + }, + Value: "bar", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 21, + }, + }, }, }, }, diff --git a/node/scalar/t_heredoc_test.go b/node/scalar/t_heredoc_test.go index 10ffb61..47d8bd8 100644 --- a/node/scalar/t_heredoc_test.go +++ b/node/scalar/t_heredoc_test.go @@ -5,6 +5,7 @@ import ( "testing" "github.com/z7zmey/php-parser/node/expr" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/node" "github.com/z7zmey/php-parser/node/scalar" @@ -20,14 +21,64 @@ LBL; ` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 3, + StartPos: 7, + EndPos: 24, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 3, + StartPos: 7, + EndPos: 24, + }, Expr: &scalar.Heredoc{ + Position: &position.Position{ + StartLine: 1, + EndLine: 3, + StartPos: 7, + EndPos: 23, + }, Label: "LBL", Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - &scalar.EncapsedStringPart{Value: "\n"}, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 11, + EndPos: 15, + }, + Value: "test ", + }, + &expr.Variable{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 16, + EndPos: 19, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 16, + EndPos: 19, + }, + Value: "var", + }, + }, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 20, + EndPos: 20, + }, + Value: "\n", + }, }, }, }, @@ -52,14 +103,64 @@ LBL; ` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 3, + StartPos: 7, + EndPos: 26, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 3, + StartPos: 7, + EndPos: 26, + }, Expr: &scalar.Heredoc{ + Position: &position.Position{ + StartLine: 1, + EndLine: 3, + StartPos: 7, + EndPos: 25, + }, Label: "\"LBL\"", Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - &scalar.EncapsedStringPart{Value: "\n"}, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 13, + EndPos: 17, + }, + Value: "test ", + }, + &expr.Variable{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 18, + EndPos: 21, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 18, + EndPos: 21, + }, + Value: "var", + }, + }, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 22, + EndPos: 22, + }, + Value: "\n", + }, }, }, }, @@ -84,12 +185,38 @@ LBL; ` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 3, + StartPos: 7, + EndPos: 26, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 3, + StartPos: 7, + EndPos: 26, + }, Expr: &scalar.Heredoc{ + Position: &position.Position{ + StartLine: 1, + EndLine: 3, + StartPos: 7, + EndPos: 25, + }, Label: "'LBL'", Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test $var\n"}, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 13, + EndPos: 22, + }, + Value: "test $var\n", + }, }, }, }, @@ -113,9 +240,27 @@ CAD; ` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 2, + StartPos: 7, + EndPos: 14, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 2, + StartPos: 7, + EndPos: 14, + }, Expr: &scalar.Heredoc{ + Position: &position.Position{ + StartLine: 1, + EndLine: 2, + StartPos: 7, + EndPos: 13, + }, Label: "CAD", }, }, @@ -140,12 +285,38 @@ CAD; ` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 3, + StartPos: 7, + EndPos: 21, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 3, + StartPos: 7, + EndPos: 21, + }, Expr: &scalar.Heredoc{ + Position: &position.Position{ + StartLine: 1, + EndLine: 3, + StartPos: 7, + EndPos: 20, + }, Label: "CAD", Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "\thello\n"}, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 11, + EndPos: 17, + }, + Value: "\thello\n", + }, }, }, }, diff --git a/node/scalar/t_magic_constant_test.go b/node/scalar/t_magic_constant_test.go index 0fbdfdb..e450dc8 100644 --- a/node/scalar/t_magic_constant_test.go +++ b/node/scalar/t_magic_constant_test.go @@ -9,6 +9,7 @@ import ( "github.com/z7zmey/php-parser/node/stmt" "github.com/z7zmey/php-parser/php5" "github.com/z7zmey/php-parser/php7" + "github.com/z7zmey/php-parser/position" ) func TestMagicConstant(t *testing.T) { @@ -16,9 +17,29 @@ func TestMagicConstant(t *testing.T) { src := ` $v) {}` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 30, + }, Stmts: []node.Node{ &stmt.Foreach{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Key: &expr.Variable{VarName: &node.Identifier{Value: "k"}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "v"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 30, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 14, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 14, + }, + Value: "a", + }, + }, + Key: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 20, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 20, + }, + Value: "k", + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 26, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 26, + }, + Value: "v", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, + }, + Stmts: []node.Node{}, + }, }, }, } @@ -113,12 +330,72 @@ func TestForeachExprWithKey(t *testing.T) { src := ` $v) {}` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 30, + }, Stmts: []node.Node{ &stmt.Foreach{ - Expr: &expr.ShortArray{Items: []node.Node{}}, - Key: &expr.Variable{VarName: &node.Identifier{Value: "k"}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "v"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 30, + }, + Expr: &expr.ShortArray{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 14, + }, + Items: []node.Node{}, + }, + Key: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 20, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 20, + }, + Value: "k", + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 26, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 26, + }, + Value: "v", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, + }, + Stmts: []node.Node{}, + }, }, }, } @@ -138,12 +415,88 @@ func TestForeachWithRef(t *testing.T) { src := ` &$v) {}` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 31, + }, Stmts: []node.Node{ &stmt.Foreach{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Key: &expr.Variable{VarName: &node.Identifier{Value: "k"}}, - Variable: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "v"}}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 31, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 14, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 14, + }, + Value: "a", + }, + }, + Key: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 20, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 20, + }, + Value: "k", + }, + }, + Variable: &expr.Reference{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 27, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 26, + EndPos: 27, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 26, + EndPos: 27, + }, + Value: "v", + }, + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 31, + }, + Stmts: []node.Node{}, + }, }, }, } @@ -163,18 +516,98 @@ func TestForeachWithList(t *testing.T) { src := ` list($v)) {}` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 36, + }, Stmts: []node.Node{ &stmt.Foreach{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Key: &expr.Variable{VarName: &node.Identifier{Value: "k"}}, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 36, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 14, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 14, + }, + Value: "a", + }, + }, + Key: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 20, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 20, + }, + Value: "k", + }, + }, Variable: &expr.List{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 32, + }, Items: []node.Node{ &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "v"}}, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 31, + }, + Val: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 31, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 31, + }, + Value: "v", + }, + }, }, }, }, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 35, + EndPos: 36, + }, + Stmts: []node.Node{}, + }, }, }, } diff --git a/node/stmt/t_function_test.go b/node/stmt/t_function_test.go index fb32180..3ff53e1 100644 --- a/node/stmt/t_function_test.go +++ b/node/stmt/t_function_test.go @@ -6,6 +6,7 @@ import ( "github.com/z7zmey/php-parser/node/name" "github.com/z7zmey/php-parser/node/scalar" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/node" "github.com/z7zmey/php-parser/node/expr" @@ -18,12 +19,32 @@ func TestSimpleFunction(t *testing.T) { src := `
` expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 17, + }, Stmts: []node.Node{ - &stmt.Nop{}, - &stmt.InlineHtml{Value: "
"}, + &stmt.Nop{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 5, + }, + }, + &stmt.InlineHtml{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 17, + }, + Value: "
", + }, }, } diff --git a/node/stmt/t_interface_test.go b/node/stmt/t_interface_test.go index 85a64d8..749e99a 100644 --- a/node/stmt/t_interface_test.go +++ b/node/stmt/t_interface_test.go @@ -2,9 +2,11 @@ package stmt_test import ( "bytes" - "github.com/z7zmey/php-parser/node/name" "testing" + "github.com/z7zmey/php-parser/node/name" + "github.com/z7zmey/php-parser/position" + "github.com/z7zmey/php-parser/node" "github.com/z7zmey/php-parser/node/stmt" "github.com/z7zmey/php-parser/php5" @@ -15,11 +17,31 @@ func TestInterface(t *testing.T) { src := ` 0 { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[4].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[4].list)) } else { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) } // save comments @@ -2987,8 +2988,8 @@ yydefault: yyVAL.node = stmt.NewAltIf(yyDollar[2].node, stmts, yyDollar[5].list, yyDollar[6].node) // save position - yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[4].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) + stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[4].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IfToken) @@ -3012,7 +3013,7 @@ yydefault: yyVAL.node = yyDollar[3].node // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.WhileToken) @@ -3026,7 +3027,7 @@ yydefault: yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[4].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DoToken) @@ -3053,7 +3054,7 @@ yydefault: yyVAL.node = yyDollar[9].node // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ForToken) @@ -3080,7 +3081,7 @@ yydefault: yyVAL.node = yyDollar[3].node // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.SwitchToken) @@ -3094,7 +3095,7 @@ yydefault: yyVAL.node = stmt.NewBreak(nil) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.BreakToken) @@ -3109,7 +3110,7 @@ yydefault: yyVAL.node = stmt.NewBreak(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.BreakToken) @@ -3124,7 +3125,7 @@ yydefault: yyVAL.node = stmt.NewContinue(nil) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ContinueToken) @@ -3139,7 +3140,7 @@ yydefault: yyVAL.node = stmt.NewContinue(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ContinueToken) @@ -3154,7 +3155,7 @@ yydefault: yyVAL.node = stmt.NewReturn(nil) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ReturnToken) @@ -3169,7 +3170,7 @@ yydefault: yyVAL.node = stmt.NewReturn(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ReturnToken) @@ -3184,7 +3185,7 @@ yydefault: yyVAL.node = stmt.NewReturn(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ReturnToken) @@ -3199,7 +3200,7 @@ yydefault: yyVAL.node = stmt.NewExpression(yyDollar[1].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SemiColonToken) @@ -3213,7 +3214,7 @@ yydefault: yyVAL.node = stmt.NewGlobal(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.GlobalToken) @@ -3228,7 +3229,7 @@ yydefault: yyVAL.node = stmt.NewStatic(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StaticToken) @@ -3243,7 +3244,7 @@ yydefault: yyVAL.node = stmt.NewEcho(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EchoToken) @@ -3258,7 +3259,7 @@ yydefault: yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.InlineHTMLToken) @@ -3272,7 +3273,7 @@ yydefault: yyVAL.node = stmt.NewExpression(yyDollar[1].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SemiColonToken) @@ -3286,7 +3287,7 @@ yydefault: yyVAL.node = stmt.NewUnset(yyDollar[3].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UnsetToken) @@ -3325,7 +3326,7 @@ yydefault: yyVAL.node = yyDollar[8].node // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ForeachToken) @@ -3364,7 +3365,7 @@ yydefault: // save position yyVAL.node = yyDollar[8].node - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ForeachToken) @@ -3381,7 +3382,7 @@ yydefault: yyVAL.node = stmt.NewDeclare(yyDollar[3].list, yyDollar[5].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DeclareToken) @@ -3397,7 +3398,7 @@ yydefault: yyVAL.node = stmt.NewNop() // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.SemiColonToken) @@ -3412,9 +3413,9 @@ yydefault: // save position if yyDollar[6].node == nil { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list)) } else { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) } // save comments @@ -3431,7 +3432,7 @@ yydefault: yyVAL.node = stmt.NewThrow(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ThrowToken) @@ -3447,8 +3448,8 @@ yydefault: yyVAL.node = stmt.NewGoto(label) // save position - yylex.(*Parser).positions.AddPosition(label, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + label.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.GotoToken) @@ -3475,9 +3476,9 @@ yydefault: yyVAL.list = append([]node.Node{catch}, yyDollar[9].list...) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - yylex.(*Parser).positions.AddPosition(catch, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + catch.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) // save comments yylex.(*Parser).comments.AddFromToken(catch, yyDollar[1].token, comment.CatchToken) @@ -3504,7 +3505,7 @@ yydefault: yyVAL.node = stmt.NewFinally(yyDollar[3].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FinallyToken) @@ -3554,9 +3555,9 @@ yydefault: yyVAL.node = stmt.NewCatch([]node.Node{yyDollar[3].node}, variable, yyDollar[7].list) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.CatchToken) @@ -3643,8 +3644,8 @@ yydefault: yyVAL.node = stmt.NewFunction(name, yyDollar[2].token != nil, yyDollar[5].list, nil, yyDollar[8].list, "") // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FunctionToken) @@ -3679,8 +3680,8 @@ yydefault: yyVAL.node = yyDollar[1].node // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token)) // save comments yylex.(*Parser).comments.AddFromToken(name, yyDollar[2].token, comment.StringToken) @@ -3697,8 +3698,8 @@ yydefault: yyVAL.node = stmt.NewInterface(name, yyDollar[3].InterfaceExtends, yyDollar[5].list, "") // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) // save comments yylex.(*Parser).comments.AddFromToken(name, yyDollar[2].token, comment.StringToken) @@ -3714,7 +3715,7 @@ yydefault: yyVAL.node = stmt.NewClass(nil, nil, nil, nil, nil, nil, "") // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ClassToken) @@ -3729,8 +3730,8 @@ yydefault: yyVAL.node = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") // save position - yylex.(*Parser).positions.AddPosition(classModifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + classModifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(classModifier, yyDollar[1].token, comment.AbstractToken) @@ -3745,7 +3746,7 @@ yydefault: yyVAL.node = stmt.NewTrait(nil, nil, "") // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.TraitToken) @@ -3760,8 +3761,8 @@ yydefault: yyVAL.node = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") // save position - yylex.(*Parser).positions.AddPosition(classModifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + classModifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(classModifier, yyDollar[1].token, comment.FinalToken) @@ -3784,7 +3785,7 @@ yydefault: yyVAL.ClassExtends = stmt.NewClassExtends(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.ClassExtends, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.ClassExtends.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.ClassExtends, yyDollar[1].token, comment.ExtendsToken) @@ -3812,7 +3813,7 @@ yydefault: yyVAL.InterfaceExtends = stmt.NewInterfaceExtends(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.InterfaceExtends, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yyVAL.InterfaceExtends.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.InterfaceExtends, yyDollar[1].token, comment.ExtendsToken) @@ -3834,7 +3835,7 @@ yydefault: yyVAL.ClassImplements = stmt.NewClassImplements(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.ClassImplements, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yyVAL.ClassImplements.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.ClassImplements, yyDollar[1].token, comment.ImplementsToken) @@ -3894,7 +3895,7 @@ yydefault: yyVAL.node = expr.NewReference(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyDollar[2].node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AmpersandToken) @@ -3908,7 +3909,7 @@ yydefault: yyVAL.node = expr.NewList(yyDollar[3].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ListToken) @@ -3924,7 +3925,7 @@ yydefault: yyVAL.node = stmt.NewFor(nil, nil, nil, yyDollar[1].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3936,8 +3937,8 @@ yydefault: yyVAL.node = stmt.NewAltFor(nil, nil, nil, stmtList) // save position - yylex.(*Parser).positions.AddPosition(stmtList, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ColonToken) @@ -3953,7 +3954,7 @@ yydefault: yyVAL.node = stmt.NewForeach(nil, nil, nil, yyDollar[1].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3965,8 +3966,8 @@ yydefault: yyVAL.node = stmt.NewAltForeach(nil, nil, nil, stmtList) // save position - yylex.(*Parser).positions.AddPosition(stmtList, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ColonToken) @@ -3990,7 +3991,7 @@ yydefault: yyVAL.node = stmt.NewStmtList(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ColonToken) @@ -4008,8 +4009,8 @@ yydefault: yyVAL.list = []node.Node{constant} // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(name, yyDollar[1].token, comment.StringToken) @@ -4026,8 +4027,8 @@ yydefault: yyVAL.list = append(yyDollar[1].list, constant) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) @@ -4044,8 +4045,8 @@ yydefault: yyVAL.node = stmt.NewSwitch(nil, caseList) // save position - yylex.(*Parser).positions.AddPosition(caseList, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + caseList.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[1].token, comment.OpenCurlyBracesToken) @@ -4061,8 +4062,8 @@ yydefault: yyVAL.node = stmt.NewSwitch(nil, caseList) // save position - yylex.(*Parser).positions.AddPosition(caseList, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + caseList.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[1].token, comment.OpenCurlyBracesToken) @@ -4079,8 +4080,8 @@ yydefault: yyVAL.node = stmt.NewAltSwitch(nil, caseList) // save position - yylex.(*Parser).positions.AddPosition(caseList, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + caseList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[1].token, comment.ColonToken) @@ -4098,8 +4099,8 @@ yydefault: yyVAL.node = stmt.NewAltSwitch(nil, caseList) // save position - yylex.(*Parser).positions.AddPosition(caseList, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[3].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) + caseList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[3].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) // save comments yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[1].token, comment.ColonToken) @@ -4125,7 +4126,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, _case) // save position - yylex.(*Parser).positions.AddPosition(_case, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) + _case.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) // save comments yylex.(*Parser).comments.AddFromToken(_case, yyDollar[2].token, comment.CaseToken) @@ -4141,7 +4142,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, _default) // save position - yylex.(*Parser).positions.AddPosition(_default, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) + _default.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) // save comments yylex.(*Parser).comments.AddFromToken(_default, yyDollar[2].token, comment.DefaultToken) @@ -4168,7 +4169,7 @@ yydefault: yyVAL.node = stmt.NewWhile(nil, yyDollar[1].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4180,8 +4181,8 @@ yydefault: yyVAL.node = stmt.NewAltWhile(nil, stmtList) // save position - yylex.(*Parser).positions.AddPosition(stmtList, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ColonToken) @@ -4206,7 +4207,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, _elseIf) // save position - yylex.(*Parser).positions.AddPosition(_elseIf, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node)) + _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node)) // save comments yylex.(*Parser).comments.AddFromToken(_elseIf, yyDollar[2].token, comment.ElseifToken) @@ -4230,8 +4231,8 @@ yydefault: yyVAL.list = append(yyDollar[1].list, _elseIf) // save position - yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[5].list)) - yylex.(*Parser).positions.AddPosition(_elseIf, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) + stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[5].list)) + _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) // save comments yylex.(*Parser).comments.AddFromToken(_elseIf, yyDollar[2].token, comment.ElseifToken) @@ -4254,7 +4255,7 @@ yydefault: yyVAL.node = stmt.NewElse(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ElseToken) @@ -4277,8 +4278,8 @@ yydefault: yyVAL.node = stmt.NewAltElse(stmts) // save position - yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[3].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[3].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ElseToken) @@ -4330,16 +4331,16 @@ yydefault: yyVAL.node = node.NewParameter(yyDollar[1].node, variable, nil, yyDollar[2].token != nil, yyDollar[3].token != nil) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) if yyDollar[1].node != nil { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) } else if yyDollar[2].token != nil { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token)) } else if yyDollar[3].token != nil { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token)) } else { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) } // save comments @@ -4362,16 +4363,16 @@ yydefault: yyVAL.node = node.NewParameter(yyDollar[1].node, variable, yyDollar[6].node, yyDollar[2].token != nil, yyDollar[3].token != nil) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) if yyDollar[1].node != nil { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node)) } else if yyDollar[2].token != nil { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node)) } else if yyDollar[3].token != nil { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[6].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[6].node)) } else { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node)) } // save comments @@ -4401,7 +4402,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ArrayToken) @@ -4415,7 +4416,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.CallableToken) @@ -4437,7 +4438,7 @@ yydefault: yyVAL.node = node.NewArgumentList(nil) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenParenthesisToken) @@ -4452,7 +4453,7 @@ yydefault: yyVAL.node = node.NewArgumentList(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenParenthesisToken) @@ -4468,8 +4469,8 @@ yydefault: yyVAL.node = node.NewArgumentList([]node.Node{arg}) // save position - yylex.(*Parser).positions.AddPosition(arg, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + arg.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenParenthesisToken) @@ -4503,7 +4504,7 @@ yydefault: yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4514,7 +4515,7 @@ yydefault: yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4525,7 +4526,7 @@ yydefault: yyVAL.node = node.NewArgument(yyDollar[2].node, false, true) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AmpersandToken) @@ -4539,7 +4540,7 @@ yydefault: yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EllipsisToken) @@ -4573,8 +4574,8 @@ yydefault: yyVAL.node = expr.NewVariable(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.VariableToken) @@ -4588,7 +4589,7 @@ yydefault: yyVAL.node = expr.NewVariable(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarToken) @@ -4602,7 +4603,7 @@ yydefault: yyVAL.node = expr.NewVariable(yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarToken) @@ -4621,9 +4622,9 @@ yydefault: yyVAL.list = append(yyDollar[1].list, staticVar) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(staticVar, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) @@ -4641,9 +4642,9 @@ yydefault: yyVAL.list = append(yyDollar[1].list, staticVar) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(staticVar, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) @@ -4662,9 +4663,9 @@ yydefault: yyVAL.list = []node.Node{staticVar} // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(staticVar, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) @@ -4681,9 +4682,9 @@ yydefault: yyVAL.list = []node.Node{staticVar} // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(staticVar, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) @@ -4714,7 +4715,7 @@ yydefault: yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) @@ -4728,7 +4729,7 @@ yydefault: yyVAL.node = yyDollar[1].node // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SemiColonToken) @@ -4751,11 +4752,11 @@ yydefault: yyVAL.node = stmt.NewClassMethod(name, yyDollar[1].list, yyDollar[3].token != nil, yyDollar[6].list, nil, yyDollar[8].node, "") // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) if yyDollar[1].list == nil { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node)) } else { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListNodePosition(yyDollar[1].list, yyDollar[8].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListNodePosition(yyDollar[1].list, yyDollar[8].node)) } // save comments @@ -4783,7 +4784,7 @@ yydefault: yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, adaptationList) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UseToken) @@ -4815,7 +4816,7 @@ yydefault: { yyVAL.node = stmt.NewNop() - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.SemiColonToken) @@ -4828,7 +4829,7 @@ yydefault: { yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) @@ -4897,7 +4898,7 @@ yydefault: yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.InsteadofToken) @@ -4931,8 +4932,8 @@ yydefault: yyVAL.node = stmt.NewTraitMethodRef(nil, name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(name, yyDollar[1].token, comment.IdentifierToken) @@ -4955,8 +4956,8 @@ yydefault: yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) // save position - yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) @@ -4972,8 +4973,8 @@ yydefault: yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) // save position - yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) @@ -4988,7 +4989,7 @@ yydefault: yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) @@ -5018,7 +5019,7 @@ yydefault: yyVAL.node = stmt.NewNop() // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.SemiColonToken) @@ -5032,7 +5033,7 @@ yydefault: yyVAL.node = stmt.NewStmtList(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) @@ -5056,7 +5057,7 @@ yydefault: yyVAL.list = []node.Node{modifier} // save position - yylex.(*Parser).positions.AddPosition(modifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + modifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(modifier, yyDollar[1].token, comment.VarToken) @@ -5102,7 +5103,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PublicToken) @@ -5116,7 +5117,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ProtectedToken) @@ -5130,7 +5131,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PrivateToken) @@ -5144,7 +5145,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StaticToken) @@ -5158,7 +5159,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AbstractToken) @@ -5172,7 +5173,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FinalToken) @@ -5189,9 +5190,9 @@ yydefault: yyVAL.list = append(yyDollar[1].list, property) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(property, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) @@ -5209,9 +5210,9 @@ yydefault: yyVAL.list = append(yyDollar[1].list, property) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(property, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) @@ -5230,9 +5231,9 @@ yydefault: yyVAL.list = []node.Node{property} // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(property, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) @@ -5249,9 +5250,9 @@ yydefault: yyVAL.list = []node.Node{property} // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(property, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) @@ -5270,9 +5271,9 @@ yydefault: yyVAL.node = yyDollar[1].node // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) - yylex.(*Parser).positions.AddPosition(yyDollar[1].node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) + yyDollar[1].node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(constList.Consts), yyDollar[2].token, comment.CommaToken) @@ -5290,9 +5291,9 @@ yydefault: yyVAL.node = stmt.NewClassConstList(nil, []node.Node{constant}) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ConstToken) @@ -5379,7 +5380,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, fetch) // save position - yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) + fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(fetch, yyDollar[2].token, comment.OpenSquareBracket) @@ -5395,7 +5396,7 @@ yydefault: yyVAL.list = []node.Node{fetch} // save position - yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node)) + fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(fetch, yyDollar[1].token, comment.OpenSquareBracket) @@ -5450,10 +5451,10 @@ yydefault: if yyDollar[3].node != nil { yyVAL.node = expr.NewNew(yyDollar[2].node, yyDollar[3].node.(*node.ArgumentList)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) } else { yyVAL.node = expr.NewNew(yyDollar[2].node, nil) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) } // save comments @@ -5469,8 +5470,8 @@ yydefault: yyVAL.node = assign.NewAssign(list, yyDollar[6].node) // save position - yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) + list.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) // save comments yylex.(*Parser).comments.AddFromToken(list, yyDollar[1].token, comment.ListToken) @@ -5487,7 +5488,7 @@ yydefault: yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EqualToken) @@ -5501,7 +5502,7 @@ yydefault: yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EqualToken) @@ -5524,11 +5525,11 @@ yydefault: // save position if yyDollar[6].node != nil { - yylex.(*Parser).positions.AddPosition(_new, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node)) + _new.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node)) } else { - yylex.(*Parser).positions.AddPosition(_new, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[5].node)) + _new.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[5].node)) } - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, _new)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, _new)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EqualToken) @@ -5544,7 +5545,7 @@ yydefault: yyVAL.node = expr.NewClone(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.CloneToken) @@ -5558,7 +5559,7 @@ yydefault: yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PlusEqualToken) @@ -5572,7 +5573,7 @@ yydefault: yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.MinusEqualToken) @@ -5586,7 +5587,7 @@ yydefault: yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.MulEqualToken) @@ -5600,7 +5601,7 @@ yydefault: yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PowEqualToken) @@ -5614,7 +5615,7 @@ yydefault: yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DivEqualToken) @@ -5628,7 +5629,7 @@ yydefault: yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ConcatEqualToken) @@ -5642,7 +5643,7 @@ yydefault: yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ModEqualToken) @@ -5656,7 +5657,7 @@ yydefault: yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AndEqualToken) @@ -5670,7 +5671,7 @@ yydefault: yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OrEqualToken) @@ -5684,7 +5685,7 @@ yydefault: yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.XorEqualToken) @@ -5698,7 +5699,7 @@ yydefault: yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SlEqualToken) @@ -5712,7 +5713,7 @@ yydefault: yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SrEqualToken) @@ -5726,7 +5727,7 @@ yydefault: yyVAL.node = expr.NewPostInc(yyDollar[1].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IncToken) @@ -5740,7 +5741,7 @@ yydefault: yyVAL.node = expr.NewPreInc(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IncToken) @@ -5754,7 +5755,7 @@ yydefault: yyVAL.node = expr.NewPostDec(yyDollar[1].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DecToken) @@ -5768,7 +5769,7 @@ yydefault: yyVAL.node = expr.NewPreDec(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DecToken) @@ -5782,7 +5783,7 @@ yydefault: yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.BooleanOrToken) @@ -5796,7 +5797,7 @@ yydefault: yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.BooleanAndToken) @@ -5810,7 +5811,7 @@ yydefault: yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LogicalOrToken) @@ -5824,7 +5825,7 @@ yydefault: yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LogicalAndToken) @@ -5838,7 +5839,7 @@ yydefault: yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LogicalXorToken) @@ -5852,7 +5853,7 @@ yydefault: yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.VerticalBarToken) @@ -5866,7 +5867,7 @@ yydefault: yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AmpersandToken) @@ -5880,7 +5881,7 @@ yydefault: yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.CaretToken) @@ -5894,7 +5895,7 @@ yydefault: yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DotToken) @@ -5908,7 +5909,7 @@ yydefault: yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PlusToken) @@ -5922,7 +5923,7 @@ yydefault: yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.MinusToken) @@ -5936,7 +5937,7 @@ yydefault: yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsteriskToken) @@ -5950,7 +5951,7 @@ yydefault: yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PowToken) @@ -5964,7 +5965,7 @@ yydefault: yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SlashToken) @@ -5978,7 +5979,7 @@ yydefault: yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PercentToken) @@ -5992,7 +5993,7 @@ yydefault: yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SlToken) @@ -6006,7 +6007,7 @@ yydefault: yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SrToken) @@ -6020,7 +6021,7 @@ yydefault: yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PlusToken) @@ -6034,7 +6035,7 @@ yydefault: yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.MinusToken) @@ -6048,7 +6049,7 @@ yydefault: yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ExclamationMarkToken) @@ -6062,7 +6063,7 @@ yydefault: yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.TildeToken) @@ -6076,7 +6077,7 @@ yydefault: yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsIdenticalToken) @@ -6090,7 +6091,7 @@ yydefault: yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsNotIdenticalToken) @@ -6104,7 +6105,7 @@ yydefault: yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsEqualToken) @@ -6118,7 +6119,7 @@ yydefault: yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsNotEqualToken) @@ -6132,7 +6133,7 @@ yydefault: yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LessToken) @@ -6146,7 +6147,7 @@ yydefault: yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsSmallerOrEqualToken) @@ -6160,7 +6161,7 @@ yydefault: yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.GreaterToken) @@ -6174,7 +6175,7 @@ yydefault: yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsGreaterOrEqualToken) @@ -6188,7 +6189,7 @@ yydefault: yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.InstanceofToken) @@ -6233,7 +6234,7 @@ yydefault: } // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, n)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, n)) } // save comments @@ -6249,7 +6250,7 @@ yydefault: yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.QuestionMarkToken) @@ -6264,7 +6265,7 @@ yydefault: yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.QuestionMarkToken) @@ -6287,7 +6288,7 @@ yydefault: yyVAL.node = cast.NewInt(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IntCastToken) @@ -6301,7 +6302,7 @@ yydefault: yyVAL.node = cast.NewDouble(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DoubleCastToken) @@ -6315,7 +6316,7 @@ yydefault: yyVAL.node = cast.NewString(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StringCastToken) @@ -6329,7 +6330,7 @@ yydefault: yyVAL.node = cast.NewArray(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ArrayCastToken) @@ -6343,7 +6344,7 @@ yydefault: yyVAL.node = cast.NewObject(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ObjectCastToken) @@ -6357,7 +6358,7 @@ yydefault: yyVAL.node = cast.NewBool(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.BoolCastToken) @@ -6371,7 +6372,7 @@ yydefault: yyVAL.node = cast.NewUnset(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UnsetCastToken) @@ -6396,9 +6397,9 @@ yydefault: // save position if yyDollar[2].node == nil { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) } else { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) } // save comments @@ -6417,7 +6418,7 @@ yydefault: yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AtToken) @@ -6455,7 +6456,7 @@ yydefault: yyVAL.node = expr.NewShellExec(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.BackquoteToken) @@ -6470,7 +6471,7 @@ yydefault: yyVAL.node = expr.NewPrint(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PrintToken) @@ -6484,7 +6485,7 @@ yydefault: yyVAL.node = expr.NewYield(nil, nil) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldToken) @@ -6498,7 +6499,7 @@ yydefault: yyVAL.node = expr.NewClosure(yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list, false, yyDollar[2].token != nil, "") // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FunctionToken) @@ -6519,7 +6520,7 @@ yydefault: yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list, true, yyDollar[3].token != nil, "") // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[10].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[10].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StaticToken) @@ -6541,7 +6542,7 @@ yydefault: yyVAL.node = expr.NewYield(nil, yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldToken) @@ -6555,7 +6556,7 @@ yydefault: yyVAL.node = expr.NewYield(nil, yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldToken) @@ -6569,7 +6570,7 @@ yydefault: yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldToken) @@ -6584,7 +6585,7 @@ yydefault: yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldToken) @@ -6599,7 +6600,7 @@ yydefault: yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) @@ -6614,7 +6615,7 @@ yydefault: yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) @@ -6630,8 +6631,8 @@ yydefault: yyVAL.node = expr.NewArrayDimFetch(str, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(str, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(str, yyDollar[4].token)) + str.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(str, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) @@ -6646,7 +6647,7 @@ yydefault: yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) @@ -6661,7 +6662,7 @@ yydefault: yyVAL.node = expr.NewArray(yyDollar[3].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ArrayToken) @@ -6677,7 +6678,7 @@ yydefault: yyVAL.node = expr.NewShortArray(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenSquareBracket) @@ -6705,7 +6706,7 @@ yydefault: { yyVAL.ClosureUse = expr.NewClosureUse(yyDollar[3].list) - yylex.(*Parser).positions.AddPosition(yyVAL.ClosureUse, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.ClosureUse.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6718,8 +6719,8 @@ yydefault: yyVAL.list = append(yyDollar[1].list, variable) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) @@ -6737,8 +6738,9 @@ yydefault: yyVAL.list = append(yyDollar[1].list, reference) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) @@ -6749,15 +6751,15 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4368 + //line php5/php5.y:4369 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) yyVAL.list = []node.Node{variable} // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) @@ -6766,7 +6768,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4383 + //line php5/php5.y:4384 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[2].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6774,9 +6776,9 @@ yydefault: yyVAL.list = []node.Node{reference} // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yylex.(*Parser).positions.AddPosition(reference, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(reference, yyDollar[1].token, comment.VariableToken) @@ -6786,27 +6788,27 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4404 + //line php5/php5.y:4405 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewFunctionCall(name, yyDollar[2].node.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(name, yyDollar[2].node)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(name, yyDollar[2].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 324: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4415 + //line php5/php5.y:4416 { funcName := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[4].node.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition(funcName, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, yyDollar[4].node)) + funcName.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, yyDollar[4].node)) // save comments yylex.(*Parser).comments.AddFromToken(funcName, yyDollar[1].token, comment.NamespaceToken) @@ -6816,14 +6818,14 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4430 + //line php5/php5.y:4431 { funcName := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[3].node.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition(funcName, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, yyDollar[3].node)) + funcName.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(funcName, yyDollar[1].token, comment.NsSeparatorToken) @@ -6832,12 +6834,12 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4444 + //line php5/php5.y:4445 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) @@ -6846,12 +6848,12 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4456 + //line php5/php5.y:4457 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) @@ -6860,12 +6862,12 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4468 + //line php5/php5.y:4469 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) @@ -6874,12 +6876,12 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4480 + //line php5/php5.y:4481 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) @@ -6888,23 +6890,23 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4492 + //line php5/php5.y:4493 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 331: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4504 + //line php5/php5.y:4505 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StaticToken) @@ -6913,23 +6915,23 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4516 + //line php5/php5.y:4517 { yyVAL.node = name.NewName(yyDollar[1].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 333: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4525 + //line php5/php5.y:4526 { yyVAL.node = name.NewRelative(yyDollar[3].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) @@ -6939,12 +6941,12 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4538 + //line php5/php5.y:4539 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) @@ -6953,23 +6955,23 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4553 + //line php5/php5.y:4554 { yyVAL.node = name.NewName(yyDollar[1].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 336: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4562 + //line php5/php5.y:4563 { yyVAL.node = name.NewRelative(yyDollar[3].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) @@ -6979,12 +6981,12 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4575 + //line php5/php5.y:4576 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) @@ -6993,7 +6995,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4590 + //line php5/php5.y:4591 { yyVAL.node = yyDollar[1].node @@ -7001,7 +7003,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4596 + //line php5/php5.y:4597 { yyVAL.node = yyDollar[1].node @@ -7009,7 +7011,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4605 + //line php5/php5.y:4606 { yyVAL.node = yyDollar[1].node @@ -7020,12 +7022,12 @@ yydefault: switch nn := n.(type) { case *expr.ArrayDimFetch: nn.Variable = yyVAL.node - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) yyVAL.node = nn case *expr.PropertyFetch: nn.Variable = yyVAL.node - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) yyVAL.node = nn } } @@ -7034,12 +7036,12 @@ yydefault: switch nn := n.(type) { case *expr.ArrayDimFetch: nn.Variable = yyVAL.node - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) yyVAL.node = nn case *expr.PropertyFetch: nn.Variable = yyVAL.node - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) yyVAL.node = nn } } @@ -7048,7 +7050,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4642 + //line php5/php5.y:4643 { yyVAL.node = yyDollar[1].node @@ -7056,7 +7058,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4652 + //line php5/php5.y:4653 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7064,7 +7066,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4658 + //line php5/php5.y:4659 { yyVAL.list = []node.Node{} @@ -7072,7 +7074,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4668 + //line php5/php5.y:4669 { yyVAL.list = yyDollar[2].list @@ -7083,7 +7085,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4680 + //line php5/php5.y:4681 { yyVAL.node = nil @@ -7091,12 +7093,12 @@ yydefault: } case 346: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4686 + //line php5/php5.y:4687 { yyVAL.node = expr.NewExit(nil) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenParenthesisToken) @@ -7106,18 +7108,18 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4699 + //line php5/php5.y:4700 { yyVAL.node = expr.NewExit(yyDollar[1].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 348: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4711 + //line php5/php5.y:4712 { yyVAL.list = []node.Node{} @@ -7125,7 +7127,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4717 + //line php5/php5.y:4718 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token.Value)} @@ -7133,7 +7135,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4723 + //line php5/php5.y:4724 { yyVAL.list = yyDollar[1].list @@ -7141,7 +7143,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4732 + //line php5/php5.y:4733 { yyVAL.node = nil @@ -7149,7 +7151,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4738 + //line php5/php5.y:4739 { yyVAL.node = yyDollar[1].node @@ -7157,12 +7159,12 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4747 + //line php5/php5.y:4748 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.LnumberToken) @@ -7171,12 +7173,12 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4759 + //line php5/php5.y:4760 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DnumberToken) @@ -7185,12 +7187,12 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4771 + //line php5/php5.y:4772 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ConstantEncapsedStringToken) @@ -7199,12 +7201,12 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4783 + //line php5/php5.y:4784 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.LineToken) @@ -7213,12 +7215,12 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4795 + //line php5/php5.y:4796 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FileToken) @@ -7227,12 +7229,12 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4807 + //line php5/php5.y:4808 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DirToken) @@ -7241,12 +7243,12 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4819 + //line php5/php5.y:4820 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.TraitCToken) @@ -7255,12 +7257,12 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4831 + //line php5/php5.y:4832 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.MethodCToken) @@ -7269,12 +7271,12 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4843 + //line php5/php5.y:4844 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FuncCToken) @@ -7283,12 +7285,12 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4855 + //line php5/php5.y:4856 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsCToken) @@ -7297,14 +7299,14 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4867 + //line php5/php5.y:4868 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) // save position - yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StartHeredocToken) @@ -7313,12 +7315,12 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4881 + //line php5/php5.y:4882 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StartHeredocToken) @@ -7327,14 +7329,14 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4896 + //line php5/php5.y:4897 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) // save position - yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) @@ -7344,7 +7346,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4914 + //line php5/php5.y:4915 { yyVAL.node = yyDollar[1].node @@ -7352,7 +7354,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4923 + //line php5/php5.y:4924 { yyVAL.node = yyDollar[1].node @@ -7360,7 +7362,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4929 + //line php5/php5.y:4930 { yyVAL.node = yyDollar[1].node @@ -7368,27 +7370,27 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4935 + //line php5/php5.y:4936 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewConstFetch(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(name)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 370: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4946 + //line php5/php5.y:4947 { name := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewConstFetch(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) @@ -7398,14 +7400,14 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4961 + //line php5/php5.y:4962 { name := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewConstFetch(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) @@ -7414,12 +7416,12 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4975 + //line php5/php5.y:4976 { yyVAL.node = expr.NewArray(yyDollar[3].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ArrayToken) @@ -7430,12 +7432,12 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4989 + //line php5/php5.y:4990 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenSquareBracket) @@ -7445,7 +7447,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5002 + //line php5/php5.y:5003 { yyVAL.node = yyDollar[1].node @@ -7453,12 +7455,12 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5008 + //line php5/php5.y:5009 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ClassCToken) @@ -7467,7 +7469,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5020 + //line php5/php5.y:5021 { yyVAL.node = yyDollar[1].node @@ -7475,12 +7477,12 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5029 + //line php5/php5.y:5030 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) @@ -7490,12 +7492,12 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5042 + //line php5/php5.y:5043 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PlusToken) @@ -7504,12 +7506,12 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5054 + //line php5/php5.y:5055 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.MinusToken) @@ -7518,12 +7520,12 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5066 + //line php5/php5.y:5067 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsteriskToken) @@ -7532,12 +7534,12 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5078 + //line php5/php5.y:5079 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PowToken) @@ -7546,12 +7548,12 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5090 + //line php5/php5.y:5091 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SlashToken) @@ -7560,12 +7562,12 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5102 + //line php5/php5.y:5103 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PercentToken) @@ -7574,12 +7576,12 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5114 + //line php5/php5.y:5115 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ExclamationMarkToken) @@ -7588,12 +7590,12 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5126 + //line php5/php5.y:5127 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.TildeToken) @@ -7602,12 +7604,12 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5138 + //line php5/php5.y:5139 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.VerticalBarToken) @@ -7616,12 +7618,12 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5150 + //line php5/php5.y:5151 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AmpersandToken) @@ -7630,12 +7632,12 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5162 + //line php5/php5.y:5163 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.CaretToken) @@ -7644,12 +7646,12 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5174 + //line php5/php5.y:5175 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SlToken) @@ -7658,12 +7660,12 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5186 + //line php5/php5.y:5187 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SrToken) @@ -7672,12 +7674,12 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5198 + //line php5/php5.y:5199 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DotToken) @@ -7686,12 +7688,12 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5210 + //line php5/php5.y:5211 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LogicalXorToken) @@ -7700,12 +7702,12 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5222 + //line php5/php5.y:5223 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LogicalAndToken) @@ -7714,12 +7716,12 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5234 + //line php5/php5.y:5235 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LogicalOrToken) @@ -7728,12 +7730,12 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5246 + //line php5/php5.y:5247 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.BooleanAndToken) @@ -7742,12 +7744,12 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5258 + //line php5/php5.y:5259 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.BooleanOrToken) @@ -7756,12 +7758,12 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5270 + //line php5/php5.y:5271 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsIdenticalToken) @@ -7770,12 +7772,12 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5282 + //line php5/php5.y:5283 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsNotIdenticalToken) @@ -7784,12 +7786,12 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5294 + //line php5/php5.y:5295 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsEqualToken) @@ -7798,12 +7800,12 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5306 + //line php5/php5.y:5307 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsNotEqualToken) @@ -7812,12 +7814,12 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5318 + //line php5/php5.y:5319 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LessToken) @@ -7826,12 +7828,12 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5330 + //line php5/php5.y:5331 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.GreaterToken) @@ -7840,12 +7842,12 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5342 + //line php5/php5.y:5343 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsSmallerOrEqualToken) @@ -7854,12 +7856,12 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5354 + //line php5/php5.y:5355 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsGreaterOrEqualToken) @@ -7868,12 +7870,12 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5366 + //line php5/php5.y:5367 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.QuestionMarkToken) @@ -7883,12 +7885,12 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5379 + //line php5/php5.y:5380 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.QuestionMarkToken) @@ -7898,12 +7900,12 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5392 + //line php5/php5.y:5393 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PlusToken) @@ -7912,12 +7914,12 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5404 + //line php5/php5.y:5405 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.MinusToken) @@ -7926,7 +7928,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5416 + //line php5/php5.y:5417 { yyVAL.node = yyDollar[2].node @@ -7938,7 +7940,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5429 + //line php5/php5.y:5430 { yyVAL.node = yyDollar[1].node @@ -7946,25 +7948,25 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5435 + //line php5/php5.y:5436 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewConstFetch(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(name)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 412: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5446 + //line php5/php5.y:5447 { name := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewConstFetch(name) - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(name)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) @@ -7974,14 +7976,14 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5459 + //line php5/php5.y:5460 { name := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewConstFetch(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(name)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) @@ -7990,14 +7992,14 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5476 + //line php5/php5.y:5477 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = expr.NewVariable(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(name, yyDollar[1].token, comment.StringVarnameToken) @@ -8006,7 +8008,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5490 + //line php5/php5.y:5491 { yyVAL.node = yyDollar[1].node @@ -8014,7 +8016,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5496 + //line php5/php5.y:5497 { yyVAL.node = yyDollar[1].node @@ -8022,7 +8024,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5502 + //line php5/php5.y:5503 { yyVAL.node = yyDollar[1].node @@ -8030,12 +8032,12 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5508 + //line php5/php5.y:5509 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DoubleQuoteToken) @@ -8044,12 +8046,12 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5520 + //line php5/php5.y:5521 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StartHeredocToken) @@ -8058,12 +8060,12 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5532 + //line php5/php5.y:5533 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ClassCToken) @@ -8072,7 +8074,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5547 + //line php5/php5.y:5548 { yyVAL.list = nil @@ -8080,7 +8082,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5553 + //line php5/php5.y:5554 { yyVAL.list = yyDollar[1].list @@ -8093,25 +8095,25 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5567 + //line php5/php5.y:5568 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5571 + //line php5/php5.y:5572 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5578 + //line php5/php5.y:5579 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node) yyVAL.list = append(yyDollar[1].list, arrayItem) // save position - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) @@ -8121,13 +8123,13 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5592 + //line php5/php5.y:5593 { arrayItem := expr.NewArrayItem(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, arrayItem) // save position - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) @@ -8136,13 +8138,13 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5605 + //line php5/php5.y:5606 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) yyVAL.list = []node.Node{arrayItem} // save position - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(arrayItem, yyDollar[2].token, comment.DoubleArrowToken) @@ -8151,19 +8153,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5618 + //line php5/php5.y:5619 { arrayItem := expr.NewArrayItem(nil, yyDollar[1].node) yyVAL.list = []node.Node{arrayItem} // save position - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 429: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5631 + //line php5/php5.y:5632 { yyVAL.node = yyDollar[1].node @@ -8171,7 +8173,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5637 + //line php5/php5.y:5638 { yyVAL.node = yyDollar[1].node @@ -8179,7 +8181,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5646 + //line php5/php5.y:5647 { yyVAL.node = yyDollar[2].node @@ -8187,7 +8189,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5652 + //line php5/php5.y:5653 { yyVAL.node = yyDollar[2].node @@ -8195,7 +8197,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5662 + //line php5/php5.y:5663 { yyVAL.node = yyDollar[1].node @@ -8203,7 +8205,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5672 + //line php5/php5.y:5673 { yyVAL.node = yyDollar[1].node @@ -8211,7 +8213,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5681 + //line php5/php5.y:5682 { yyVAL.node = yyDollar[1].node @@ -8219,7 +8221,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5690 + //line php5/php5.y:5691 { yyVAL.node = yyDollar[1].node @@ -8235,17 +8237,17 @@ yydefault: switch nn := n.(type) { case *expr.ArrayDimFetch: nn.Variable = yyVAL.node - yylex.(*Parser).positions.AddPosition(nn, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) yyVAL.node = nn case *expr.PropertyFetch: nn.Variable = yyVAL.node - yylex.(*Parser).positions.AddPosition(nn, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) yyVAL.node = nn case *expr.MethodCall: nn.Variable = yyVAL.node - yylex.(*Parser).positions.AddPosition(nn, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) yyVAL.node = nn } } @@ -8254,17 +8256,17 @@ yydefault: switch nn := n.(type) { case *expr.ArrayDimFetch: nn.Variable = yyVAL.node - yylex.(*Parser).positions.AddPosition(nn, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) yyVAL.node = nn case *expr.PropertyFetch: nn.Variable = yyVAL.node - yylex.(*Parser).positions.AddPosition(nn, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) yyVAL.node = nn case *expr.MethodCall: nn.Variable = yyVAL.node - yylex.(*Parser).positions.AddPosition(nn, yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) yyVAL.node = nn } } @@ -8273,7 +8275,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5742 + //line php5/php5.y:5743 { yyVAL.node = yyDollar[1].node @@ -8281,7 +8283,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5751 + //line php5/php5.y:5752 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8289,7 +8291,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5757 + //line php5/php5.y:5758 { yyVAL.list = []node.Node{} @@ -8297,7 +8299,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5767 + //line php5/php5.y:5768 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*expr.MethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*expr.PropertyFetch).Property @@ -8313,13 +8315,13 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5784 + //line php5/php5.y:5785 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) // save position - yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) + fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(fetch, yyDollar[2].token, comment.OpenSquareBracket) @@ -8329,13 +8331,13 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5798 + //line php5/php5.y:5799 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = []node.Node{yyDollar[1].node, fetch} // save position - yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) + fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(fetch, yyDollar[2].token, comment.OpenSquareBracket) @@ -8345,18 +8347,18 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5815 + //line php5/php5.y:5816 { yyVAL.node = expr.NewMethodCall(nil, nil, yyDollar[1].node.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 444: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5827 + //line php5/php5.y:5828 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -8364,7 +8366,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5833 + //line php5/php5.y:5834 { yyVAL.list = yyDollar[1].list @@ -8372,7 +8374,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5839 + //line php5/php5.y:5840 { yyVAL.list = nil @@ -8380,7 +8382,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5848 + //line php5/php5.y:5849 { yyVAL.node = yyDollar[1].node @@ -8388,12 +8390,12 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5854 + //line php5/php5.y:5855 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) for _, n := range yyDollar[1].simpleIndirectReference.all { - yylex.(*Parser).positions[n] = yylex.(*Parser).positionBuilder.NewNodesPosition(n, yyDollar[2].node) + n.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(n, yyDollar[2].node)) } yyVAL.node = yyDollar[1].simpleIndirectReference.all[0] @@ -8402,12 +8404,12 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5869 + //line php5/php5.y:5870 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) @@ -8416,12 +8418,12 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5881 + //line php5/php5.y:5882 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) @@ -8430,7 +8432,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5896 + //line php5/php5.y:5897 { yyVAL.node = yyDollar[1].node @@ -8438,12 +8440,12 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5905 + //line php5/php5.y:5906 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) @@ -8453,12 +8455,12 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5918 + //line php5/php5.y:5919 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) @@ -8468,7 +8470,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5934 + //line php5/php5.y:5935 { yyVAL.node = yyDollar[1].node @@ -8476,7 +8478,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5940 + //line php5/php5.y:5941 { yyVAL.node = yyDollar[1].node @@ -8484,7 +8486,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5946 + //line php5/php5.y:5947 { yyVAL.node = yyDollar[1].node @@ -8492,7 +8494,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5956 + //line php5/php5.y:5957 { yyVAL.node = yyDollar[1].node @@ -8500,12 +8502,12 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5962 + //line php5/php5.y:5963 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) for _, n := range yyDollar[1].simpleIndirectReference.all { - yylex.(*Parser).positions[n] = yylex.(*Parser).positionBuilder.NewNodesPosition(n, yyDollar[2].node) + n.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(n, yyDollar[2].node)) } yyVAL.node = yyDollar[1].simpleIndirectReference.all[0] @@ -8514,7 +8516,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5974 + //line php5/php5.y:5975 { yyVAL.node = yyDollar[1].node @@ -8522,12 +8524,12 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5983 + //line php5/php5.y:5984 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) @@ -8537,12 +8539,12 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5996 + //line php5/php5.y:5997 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenCurlyBracesToken) @@ -8552,7 +8554,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6009 + //line php5/php5.y:6010 { yyVAL.node = yyDollar[1].node @@ -8560,14 +8562,14 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6019 + //line php5/php5.y:6020 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.VariableToken) @@ -8576,12 +8578,12 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6033 + //line php5/php5.y:6034 { yyVAL.node = expr.NewVariable(yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarToken) @@ -8592,7 +8594,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6050 + //line php5/php5.y:6051 { yyVAL.node = nil @@ -8600,7 +8602,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6056 + //line php5/php5.y:6057 { yyVAL.node = yyDollar[1].node @@ -8608,7 +8610,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6066 + //line php5/php5.y:6067 { yyVAL.list = yyDollar[1].list @@ -8616,25 +8618,25 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6072 + //line php5/php5.y:6073 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yyVAL.list = []node.Node{fetch} // save position - yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 469: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6085 + //line php5/php5.y:6086 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) // save position - yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) + fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(fetch, yyDollar[2].token, comment.OpenSquareBracket) @@ -8644,13 +8646,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6099 + //line php5/php5.y:6100 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) // save position - yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) + fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(fetch, yyDollar[2].token, comment.OpenCurlyBracesToken) @@ -8660,24 +8662,24 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6113 + //line php5/php5.y:6114 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yyVAL.list = []node.Node{fetch} // save position - yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 472: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6126 + //line php5/php5.y:6127 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StringToken) @@ -8686,12 +8688,12 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6138 + //line php5/php5.y:6139 { yyVAL.node = yyDollar[2].node // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) @@ -8701,13 +8703,13 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6154 + //line php5/php5.y:6155 { n := expr.NewVariable(nil) yyVAL.simpleIndirectReference = simpleIndirectReference{[]*expr.Variable{n}, n} // save position - yylex.(*Parser).positions.AddPosition(n, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + n.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(n, yyDollar[1].token, comment.DollarToken) @@ -8716,7 +8718,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6167 + //line php5/php5.y:6168 { n := expr.NewVariable(nil) @@ -8726,7 +8728,7 @@ yydefault: yyVAL.simpleIndirectReference = yyDollar[1].simpleIndirectReference // save position - yylex.(*Parser).positions.AddPosition(n, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + n.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(n, yyDollar[2].token, comment.DollarToken) @@ -8735,7 +8737,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6187 + //line php5/php5.y:6188 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8746,7 +8748,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6196 + //line php5/php5.y:6197 { if yyDollar[1].node == nil { yyVAL.list = []node.Node{} @@ -8758,25 +8760,25 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6210 + //line php5/php5.y:6211 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 479: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6219 + //line php5/php5.y:6220 { item := expr.NewList(yyDollar[3].list) yyVAL.node = expr.NewArrayItem(nil, item) // save position - yylex.(*Parser).positions.AddPosition(item, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(item)) + item.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(item)) // save comments yylex.(*Parser).comments.AddFromToken(item, yyDollar[1].token, comment.ListToken) @@ -8787,7 +8789,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6235 + //line php5/php5.y:6236 { yyVAL.node = nil @@ -8795,7 +8797,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6245 + //line php5/php5.y:6246 { yyVAL.list = []node.Node{} @@ -8803,7 +8805,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6251 + //line php5/php5.y:6252 { yyVAL.list = yyDollar[1].list @@ -8816,13 +8818,13 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:6265 + //line php5/php5.y:6266 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node) yyVAL.list = append(yyDollar[1].list, arrayItem) // save position - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) @@ -8832,13 +8834,13 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6279 + //line php5/php5.y:6280 { arrayItem := expr.NewArrayItem(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, arrayItem) // save position - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) @@ -8847,13 +8849,13 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6292 + //line php5/php5.y:6293 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) yyVAL.list = []node.Node{arrayItem} // save position - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(arrayItem, yyDollar[2].token, comment.DoubleArrowToken) @@ -8862,27 +8864,27 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6305 + //line php5/php5.y:6306 { arrayItem := expr.NewArrayItem(nil, yyDollar[1].node) yyVAL.list = []node.Node{arrayItem} // save position - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 487: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:6315 + //line php5/php5.y:6316 { reference := expr.NewReference(yyDollar[6].node) arrayItem := expr.NewArrayItem(yyDollar[3].node, reference) yyVAL.list = append(yyDollar[1].list, arrayItem) // save position - yylex.(*Parser).positions.AddPosition(reference, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[5].token, yyDollar[6].node)) - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node)) + reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[5].token, yyDollar[6].node)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) @@ -8893,15 +8895,15 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6332 + //line php5/php5.y:6333 { reference := expr.NewReference(yyDollar[4].node) arrayItem := expr.NewArrayItem(nil, reference) yyVAL.list = append(yyDollar[1].list, arrayItem) // save position - yylex.(*Parser).positions.AddPosition(reference, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node)) - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node)) + reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) @@ -8911,15 +8913,15 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6348 + //line php5/php5.y:6349 { reference := expr.NewReference(yyDollar[4].node) arrayItem := expr.NewArrayItem(yyDollar[1].node, reference) yyVAL.list = []node.Node{arrayItem} // save position - yylex.(*Parser).positions.AddPosition(reference, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node)) - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments yylex.(*Parser).comments.AddFromToken(arrayItem, yyDollar[2].token, comment.DoubleArrowToken) @@ -8929,15 +8931,15 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6364 + //line php5/php5.y:6365 { reference := expr.NewReference(yyDollar[2].node) arrayItem := expr.NewArrayItem(nil, reference) yyVAL.list = []node.Node{arrayItem} // save position - yylex.(*Parser).positions.AddPosition(reference, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(reference, yyDollar[1].token, comment.AmpersandToken) @@ -8946,7 +8948,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6382 + //line php5/php5.y:6383 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -8954,13 +8956,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6388 + //line php5/php5.y:6389 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.list = append(yyDollar[1].list, encapsed) // save position - yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(encapsed, yyDollar[2].token, comment.EncapsedAndWhitespaceToken) @@ -8969,7 +8971,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6401 + //line php5/php5.y:6402 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -8977,13 +8979,13 @@ yydefault: } case 494: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6407 + //line php5/php5.y:6408 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} // save position - yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(encapsed, yyDollar[1].token, comment.EncapsedAndWhitespaceToken) @@ -8992,14 +8994,14 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6423 + //line php5/php5.y:6424 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.VariableToken) @@ -9008,16 +9010,16 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6437 + //line php5/php5.y:6438 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) @@ -9028,7 +9030,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6455 + //line php5/php5.y:6456 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -9036,10 +9038,10 @@ yydefault: yyVAL.node = expr.NewPropertyFetch(variable, fetch) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + fetch.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) @@ -9050,12 +9052,12 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6475 + //line php5/php5.y:6476 { yyVAL.node = expr.NewVariable(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarOpenCurlyBracesToken) @@ -9065,14 +9067,14 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6488 + //line php5/php5.y:6489 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = expr.NewVariable(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarOpenCurlyBracesToken) @@ -9083,16 +9085,16 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:6504 + //line php5/php5.y:6505 { identifier := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(identifier) yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[4].node) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarOpenCurlyBracesToken) @@ -9105,7 +9107,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6524 + //line php5/php5.y:6525 { yyVAL.node = yyDollar[2].node @@ -9113,12 +9115,12 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6533 + //line php5/php5.y:6534 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StringToken) @@ -9127,7 +9129,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6545 + //line php5/php5.y:6546 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -9137,7 +9139,7 @@ yydefault: } // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NumStringToken) @@ -9146,14 +9148,14 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6562 + //line php5/php5.y:6563 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.VariableToken) @@ -9162,12 +9164,12 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6579 + //line php5/php5.y:6580 { yyVAL.node = expr.NewIsset(yyDollar[3].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IssetToken) @@ -9178,12 +9180,12 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6593 + //line php5/php5.y:6594 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EmptyToken) @@ -9194,12 +9196,12 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6607 + //line php5/php5.y:6608 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EmptyToken) @@ -9210,12 +9212,12 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6621 + //line php5/php5.y:6622 { yyVAL.node = expr.NewInclude(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IncludeToken) @@ -9224,12 +9226,12 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6633 + //line php5/php5.y:6634 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IncludeOnceToken) @@ -9238,12 +9240,12 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6645 + //line php5/php5.y:6646 { yyVAL.node = expr.NewEval(yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EvalToken) @@ -9254,12 +9256,12 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6659 + //line php5/php5.y:6660 { yyVAL.node = expr.NewRequire(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.RequireToken) @@ -9268,12 +9270,12 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6671 + //line php5/php5.y:6672 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.RequireOnceToken) @@ -9282,7 +9284,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6686 + //line php5/php5.y:6687 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -9290,7 +9292,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6692 + //line php5/php5.y:6693 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9301,7 +9303,7 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6704 + //line php5/php5.y:6705 { yyVAL.node = yyDollar[1].node @@ -9309,7 +9311,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6710 + //line php5/php5.y:6711 { yyVAL.node = yyDollar[1].node @@ -9317,14 +9319,14 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6719 + //line php5/php5.y:6720 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) // save position - yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) @@ -9333,14 +9335,14 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6733 + //line php5/php5.y:6734 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) // save position - yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) @@ -9349,14 +9351,14 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6750 + //line php5/php5.y:6751 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) // save position - yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) @@ -9365,14 +9367,14 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6767 + //line php5/php5.y:6768 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) // save position - yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) diff --git a/php5/php5.y b/php5/php5.y index 0ab1482..c923ef8 100644 --- a/php5/php5.y +++ b/php5/php5.y @@ -280,7 +280,7 @@ start: top_statement_list { yylex.(*Parser).rootNode = node.NewRoot($1) - yylex.(*Parser).positions.AddPosition(yylex.(*Parser).rootNode, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).rootNode.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -310,7 +310,7 @@ namespace_name: $$ = []node.Node{namePart} // save position - yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken(namePart, $1, comment.StringToken) @@ -323,7 +323,7 @@ namespace_name: $$ = append($1, namePart) // save position - yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.NsSeparatorToken) @@ -364,7 +364,7 @@ top_statement: $$ = stmt.NewHaltCompiler() // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.HaltCompilerToken) @@ -380,8 +380,8 @@ top_statement: $$ = stmt.NewNamespace(name, nil) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) @@ -395,8 +395,8 @@ top_statement: $$ = stmt.NewNamespace(name, $4) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) @@ -410,7 +410,7 @@ top_statement: $$ = stmt.NewNamespace(nil, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) @@ -424,7 +424,7 @@ top_statement: $$ = stmt.NewUseList(nil, $2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) @@ -438,8 +438,8 @@ top_statement: $$ = stmt.NewUseList(useType, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + useType.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) @@ -454,8 +454,8 @@ top_statement: $$ = stmt.NewUseList(useType, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + useType.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) @@ -469,7 +469,7 @@ top_statement: $$ = $1 // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SemiColonToken) @@ -503,8 +503,8 @@ use_declaration: $$ = stmt.NewUse(nil, name, nil) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -515,9 +515,9 @@ use_declaration: $$ = stmt.NewUse(nil, name, alias) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) @@ -531,8 +531,8 @@ use_declaration: $$ = stmt.NewUse(nil, name, nil) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) @@ -546,9 +546,9 @@ use_declaration: $$ = stmt.NewUse(nil, name, alias) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) @@ -584,8 +584,8 @@ use_function_declaration: $$ = stmt.NewUse(nil, name, nil) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -596,9 +596,9 @@ use_function_declaration: $$ = stmt.NewUse(nil, name, alias) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) @@ -612,8 +612,8 @@ use_function_declaration: $$ = stmt.NewUse(nil, name, nil) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) @@ -627,9 +627,9 @@ use_function_declaration: $$ = stmt.NewUse(nil, name, alias) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) @@ -665,8 +665,8 @@ use_const_declaration: $$ = stmt.NewUse(nil, name, nil) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -677,9 +677,9 @@ use_const_declaration: $$ = stmt.NewUse(nil, name, alias) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) @@ -693,8 +693,8 @@ use_const_declaration: $$ = stmt.NewUse(nil, name, nil) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) @@ -708,9 +708,9 @@ use_const_declaration: $$ = stmt.NewUse(nil, name, alias) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) @@ -731,9 +731,9 @@ constant_declaration: $$ = $1 // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, constList.Consts)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, constList.Consts)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(constList.Consts), $2, comment.CommaToken) @@ -750,9 +750,9 @@ constant_declaration: $$ = stmt.NewConstList(constList) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $4)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, constList)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, constList)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ConstToken) @@ -812,7 +812,7 @@ inner_statement: $$ = stmt.NewHaltCompiler() // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.HaltCompilerToken) @@ -838,8 +838,8 @@ statement: $$ = stmt.NewLabel(label) // save position - yylex.(*Parser).positions.AddPosition(label, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + label.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken(label, $1, comment.StringToken) @@ -855,7 +855,7 @@ unticked_statement: $$ = stmt.NewStmtList($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) @@ -869,11 +869,11 @@ unticked_statement: // save position if $5 != nil { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) } else if len($4) > 0 { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $4)) } else { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) } // save comments @@ -887,8 +887,8 @@ unticked_statement: $$ = stmt.NewAltIf($2, stmts, $5, $6) // save position - yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition($4)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) + stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IfToken) @@ -910,7 +910,7 @@ unticked_statement: $$ = $3 // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.WhileToken) @@ -922,7 +922,7 @@ unticked_statement: $$ = stmt.NewDo($2, $4) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DoToken) @@ -947,7 +947,7 @@ unticked_statement: $$ = $9 // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ForToken) @@ -972,7 +972,7 @@ unticked_statement: $$ = $3 // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.SwitchToken) @@ -984,7 +984,7 @@ unticked_statement: $$ = stmt.NewBreak(nil) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.BreakToken) @@ -997,7 +997,7 @@ unticked_statement: $$ = stmt.NewBreak($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.BreakToken) @@ -1010,7 +1010,7 @@ unticked_statement: $$ = stmt.NewContinue(nil) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ContinueToken) @@ -1023,7 +1023,7 @@ unticked_statement: $$ = stmt.NewContinue($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ContinueToken) @@ -1036,7 +1036,7 @@ unticked_statement: $$ = stmt.NewReturn(nil) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ReturnToken) @@ -1049,7 +1049,7 @@ unticked_statement: $$ = stmt.NewReturn($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ReturnToken) @@ -1062,7 +1062,7 @@ unticked_statement: $$ = stmt.NewReturn($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ReturnToken) @@ -1075,7 +1075,7 @@ unticked_statement: $$ = stmt.NewExpression($1) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SemiColonToken) @@ -1087,7 +1087,7 @@ unticked_statement: $$ = stmt.NewGlobal($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.GlobalToken) @@ -1100,7 +1100,7 @@ unticked_statement: $$ = stmt.NewStatic($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StaticToken) @@ -1113,7 +1113,7 @@ unticked_statement: $$ = stmt.NewEcho($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.EchoToken) @@ -1126,7 +1126,7 @@ unticked_statement: $$ = stmt.NewInlineHtml($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.InlineHTMLToken) @@ -1138,7 +1138,7 @@ unticked_statement: $$ = stmt.NewExpression($1) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SemiColonToken) @@ -1150,7 +1150,7 @@ unticked_statement: $$ = stmt.NewUnset($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UnsetToken) @@ -1187,7 +1187,7 @@ unticked_statement: $$ = $8 // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $8)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $8)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ForeachToken) @@ -1224,7 +1224,7 @@ unticked_statement: // save position $$ = $8 - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $8)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $8)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ForeachToken) @@ -1239,7 +1239,7 @@ unticked_statement: $$ = stmt.NewDeclare($3, $5) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DeclareToken) @@ -1253,7 +1253,7 @@ unticked_statement: $$ = stmt.NewNop() // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.SemiColonToken) @@ -1266,9 +1266,9 @@ unticked_statement: // save position if $6 == nil { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $5)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $5)) } else { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6)) } // save comments @@ -1283,7 +1283,7 @@ unticked_statement: $$ = stmt.NewThrow($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ThrowToken) @@ -1297,8 +1297,8 @@ unticked_statement: $$ = stmt.NewGoto(label) // save position - yylex.(*Parser).positions.AddPosition(label, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + label.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.GotoToken) @@ -1324,9 +1324,9 @@ catch_statement: $$ = append([]node.Node{catch}, $9...) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - yylex.(*Parser).positions.AddPosition(catch, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + catch.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) // save comments yylex.(*Parser).comments.AddFromToken(catch, $1, comment.CatchToken) @@ -1352,7 +1352,7 @@ finally_statement: $$ = stmt.NewFinally($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.FinallyToken) @@ -1401,9 +1401,9 @@ additional_catch: $$ = stmt.NewCatch([]node.Node{$3}, variable, $7) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.CatchToken) @@ -1491,8 +1491,8 @@ unticked_function_declaration_statement: $$ = stmt.NewFunction(name, $2 != nil, $5, nil, $8, "") // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $9)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $9)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.FunctionToken) @@ -1528,8 +1528,8 @@ unticked_class_declaration_statement: $$ = $1 // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $7)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $7)) // save comments yylex.(*Parser).comments.AddFromToken(name, $2, comment.StringToken) @@ -1544,8 +1544,8 @@ unticked_class_declaration_statement: $$ = stmt.NewInterface(name, $3, $5, "") // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) // save comments yylex.(*Parser).comments.AddFromToken(name, $2, comment.StringToken) @@ -1563,7 +1563,7 @@ class_entry_type: $$ = stmt.NewClass(nil, nil, nil, nil, nil, nil, "") // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ClassToken) @@ -1576,8 +1576,8 @@ class_entry_type: $$ = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") // save position - yylex.(*Parser).positions.AddPosition(classModifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + classModifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken(classModifier, $1, comment.AbstractToken) @@ -1590,7 +1590,7 @@ class_entry_type: $$ = stmt.NewTrait(nil, nil, "") // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.TraitToken) @@ -1603,8 +1603,8 @@ class_entry_type: $$ = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") // save position - yylex.(*Parser).positions.AddPosition(classModifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + classModifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken(classModifier, $1, comment.FinalToken) @@ -1626,7 +1626,7 @@ extends_from: $$ = stmt.NewClassExtends($2); // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ExtendsToken) @@ -1654,7 +1654,7 @@ interface_extends_list: $$ = stmt.NewInterfaceExtends($2); // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ExtendsToken) @@ -1675,7 +1675,7 @@ implements_list: $$ = stmt.NewClassImplements($2); // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ImplementsToken) @@ -1732,7 +1732,7 @@ foreach_variable: $$ = expr.NewReference($2) // save position - yylex.(*Parser).positions.AddPosition($2, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.AmpersandToken) @@ -1744,7 +1744,7 @@ foreach_variable: $$ = expr.NewList($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ListToken) @@ -1761,7 +1761,7 @@ for_statement: $$ = stmt.NewFor(nil, nil, nil, $1) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1771,8 +1771,8 @@ for_statement: $$ = stmt.NewAltFor(nil, nil, nil, stmtList) // save position - yylex.(*Parser).positions.AddPosition(stmtList, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ColonToken) @@ -1789,7 +1789,7 @@ foreach_statement: $$ = stmt.NewForeach(nil, nil, nil, $1) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1799,8 +1799,8 @@ foreach_statement: $$ = stmt.NewAltForeach(nil, nil, nil, stmtList) // save position - yylex.(*Parser).positions.AddPosition(stmtList, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ColonToken) @@ -1824,7 +1824,7 @@ declare_statement: $$ = stmt.NewStmtList($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ColonToken) @@ -1844,8 +1844,8 @@ declare_list: $$ = []node.Node{constant} // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken(name, $1, comment.StringToken) @@ -1860,8 +1860,8 @@ declare_list: $$ = append($1, constant) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) @@ -1880,8 +1880,8 @@ switch_case_list: $$ = stmt.NewSwitch(nil, caseList) // save position - yylex.(*Parser).positions.AddPosition(caseList, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + caseList.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken(caseList, $1, comment.OpenCurlyBracesToken) @@ -1895,8 +1895,8 @@ switch_case_list: $$ = stmt.NewSwitch(nil, caseList) // save position - yylex.(*Parser).positions.AddPosition(caseList, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + caseList.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken(caseList, $1, comment.OpenCurlyBracesToken) @@ -1911,8 +1911,8 @@ switch_case_list: $$ = stmt.NewAltSwitch(nil, caseList) // save position - yylex.(*Parser).positions.AddPosition(caseList, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + caseList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken(caseList, $1, comment.ColonToken) @@ -1928,8 +1928,8 @@ switch_case_list: $$ = stmt.NewAltSwitch(nil, caseList) // save position - yylex.(*Parser).positions.AddPosition(caseList, yylex.(*Parser).positionBuilder.NewNodeListPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) + caseList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) // save comments yylex.(*Parser).comments.AddFromToken(caseList, $1, comment.ColonToken) @@ -1955,7 +1955,7 @@ case_list: $$ = append($1, _case) // save position - yylex.(*Parser).positions.AddPosition(_case, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5)) + _case.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5)) // save comments yylex.(*Parser).comments.AddFromToken(_case, $2, comment.CaseToken) @@ -1969,7 +1969,7 @@ case_list: $$ = append($1, _default) // save position - yylex.(*Parser).positions.AddPosition(_default, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4)) + _default.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4)) // save comments yylex.(*Parser).comments.AddFromToken(_default, $2, comment.DefaultToken) @@ -1998,7 +1998,7 @@ while_statement: $$ = stmt.NewWhile(nil, $1) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2008,8 +2008,8 @@ while_statement: $$ = stmt.NewAltWhile(nil, stmtList) // save position - yylex.(*Parser).positions.AddPosition(stmtList, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ColonToken) @@ -2035,7 +2035,7 @@ elseif_list: $$ = append($1, _elseIf) // save position - yylex.(*Parser).positions.AddPosition(_elseIf, yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $4)) + _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $4)) // save comments yylex.(*Parser).comments.AddFromToken(_elseIf, $2, comment.ElseifToken) @@ -2059,8 +2059,8 @@ new_elseif_list: $$ = append($1, _elseIf) // save position - yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition($5)) - yylex.(*Parser).positions.AddPosition(_elseIf, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5)) + stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($5)) + _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5)) // save comments yylex.(*Parser).comments.AddFromToken(_elseIf, $2, comment.ElseifToken) @@ -2083,7 +2083,7 @@ else_single: $$ = stmt.NewElse($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ElseToken) @@ -2106,8 +2106,8 @@ new_else_single: $$ = stmt.NewAltElse(stmts) // save position - yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) + stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ElseToken) @@ -2159,16 +2159,16 @@ parameter: $$ = node.NewParameter($1, variable, nil, $2 != nil, $3 != nil) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) if $1 != nil { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) } else if $2 != nil { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($2, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($2, $4)) } else if $3 != nil { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($3, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($3, $4)) } else { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) } // save comments @@ -2189,16 +2189,16 @@ parameter: $$ = node.NewParameter($1, variable, $6, $2 != nil, $3 != nil) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) if $1 != nil { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $6)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $6)) } else if $2 != nil { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $6)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $6)) } else if $3 != nil { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $6)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $6)) } else { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $6)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $6)) } // save comments @@ -2228,7 +2228,7 @@ optional_class_type: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ArrayToken) @@ -2240,7 +2240,7 @@ optional_class_type: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.CallableToken) @@ -2262,7 +2262,7 @@ function_call_parameter_list: $$ = node.NewArgumentList(nil) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenParenthesisToken) @@ -2275,7 +2275,7 @@ function_call_parameter_list: $$ = node.NewArgumentList($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenParenthesisToken) @@ -2289,8 +2289,8 @@ function_call_parameter_list: $$ = node.NewArgumentList([]node.Node{arg}) // save position - yylex.(*Parser).positions.AddPosition(arg, yylex.(*Parser).positionBuilder.NewNodePosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + arg.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenParenthesisToken) @@ -2325,7 +2325,7 @@ function_call_parameter: $$ = node.NewArgument($1, false, false) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2334,7 +2334,7 @@ function_call_parameter: $$ = node.NewArgument($1, false, false) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2343,7 +2343,7 @@ function_call_parameter: $$ = node.NewArgument($2, false, true) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.AmpersandToken) @@ -2355,7 +2355,7 @@ function_call_parameter: $$ = node.NewArgument($2, true, false) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.EllipsisToken) @@ -2390,8 +2390,8 @@ global_var: $$ = expr.NewVariable(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.VariableToken) @@ -2403,7 +2403,7 @@ global_var: $$ = expr.NewVariable($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarToken) @@ -2415,7 +2415,7 @@ global_var: $$ = expr.NewVariable($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarToken) @@ -2436,9 +2436,9 @@ static_var_list: $$ = append($1, staticVar) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition(staticVar, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) @@ -2454,9 +2454,9 @@ static_var_list: $$ = append($1, staticVar) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition(staticVar, yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) @@ -2473,9 +2473,9 @@ static_var_list: $$ = []node.Node{staticVar} // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition(staticVar, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) @@ -2490,9 +2490,9 @@ static_var_list: $$ = []node.Node{staticVar} // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition(staticVar, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) @@ -2525,7 +2525,7 @@ class_statement: $$ = stmt.NewPropertyList($1, $2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) @@ -2537,7 +2537,7 @@ class_statement: $$ = $1 // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SemiColonToken) @@ -2556,11 +2556,11 @@ class_statement: $$ = stmt.NewClassMethod(name, $1, $3 != nil, $6, nil, $8, "") // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) if $1 == nil { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $8)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $8)) } else { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListNodePosition($1, $8)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListNodePosition($1, $8)) } // save comments @@ -2589,7 +2589,7 @@ trait_use_statement: $$ = stmt.NewTraitUse($2, adaptationList) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) @@ -2621,7 +2621,7 @@ trait_adaptations: { $$ = stmt.NewNop() - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.SemiColonToken) @@ -2633,7 +2633,7 @@ trait_adaptations: { $$ = stmt.NewTraitAdaptationList($2) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) @@ -2700,7 +2700,7 @@ trait_precedence: $$ = stmt.NewTraitUsePrecedence($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.InsteadofToken) @@ -2734,8 +2734,8 @@ trait_method_reference: $$ = stmt.NewTraitMethodRef(nil, name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken(name, $1, comment.IdentifierToken) @@ -2757,8 +2757,8 @@ trait_method_reference_fully_qualified: $$ = stmt.NewTraitMethodRef($1, target) // save position - yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) + target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) @@ -2775,8 +2775,8 @@ trait_alias: $$ = stmt.NewTraitUseAlias($1, $3, alias) // save position - yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) @@ -2789,7 +2789,7 @@ trait_alias: $$ = stmt.NewTraitUseAlias($1, $3, nil) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) @@ -2819,7 +2819,7 @@ method_body: $$ = stmt.NewNop() // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.SemiColonToken) @@ -2831,7 +2831,7 @@ method_body: $$ = stmt.NewStmtList($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) @@ -2854,7 +2854,7 @@ variable_modifiers: $$ = []node.Node{modifier} // save position - yylex.(*Parser).positions.AddPosition(modifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + modifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken(modifier, $1, comment.VarToken) @@ -2899,7 +2899,7 @@ member_modifier: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.PublicToken) @@ -2911,7 +2911,7 @@ member_modifier: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ProtectedToken) @@ -2923,7 +2923,7 @@ member_modifier: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.PrivateToken) @@ -2935,7 +2935,7 @@ member_modifier: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StaticToken) @@ -2947,7 +2947,7 @@ member_modifier: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.AbstractToken) @@ -2959,7 +2959,7 @@ member_modifier: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.FinalToken) @@ -2977,9 +2977,9 @@ class_variable_declaration: $$ = append($1, property) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition(property, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) @@ -2995,9 +2995,9 @@ class_variable_declaration: $$ = append($1, property) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition(property, yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) @@ -3014,9 +3014,9 @@ class_variable_declaration: $$ = []node.Node{property} // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition(property, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) @@ -3031,9 +3031,9 @@ class_variable_declaration: $$ = []node.Node{property} // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition(property, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) @@ -3053,9 +3053,9 @@ class_constant_declaration: $$ = $1 // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) - yylex.(*Parser).positions.AddPosition($1, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) + $1.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(constList.Consts), $2, comment.CommaToken) @@ -3071,9 +3071,9 @@ class_constant_declaration: $$ = stmt.NewClassConstList(nil, []node.Node{constant}) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition(constant, yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $4)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ConstToken) @@ -3158,7 +3158,7 @@ chaining_dereference: $$ = append($1, fetch) // save position - yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition($3)) + fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($3)) // save comments yylex.(*Parser).comments.AddFromToken(fetch, $2, comment.OpenSquareBracket) @@ -3172,7 +3172,7 @@ chaining_dereference: $$ = []node.Node{fetch} // save position - yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition($2)) + fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($2)) // save comments yylex.(*Parser).comments.AddFromToken(fetch, $1, comment.OpenSquareBracket) @@ -3224,10 +3224,10 @@ new_expr: if $3 != nil { $$ = expr.NewNew($2, $3.(*node.ArgumentList)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) } else { $$ = expr.NewNew($2, nil) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) } // save comments @@ -3244,8 +3244,8 @@ expr_without_variable: $$ = assign.NewAssign(list, $6) // save position - yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6)) + list.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6)) // save comments yylex.(*Parser).comments.AddFromToken(list, $1, comment.ListToken) @@ -3260,7 +3260,7 @@ expr_without_variable: $$ = assign.NewAssign($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.EqualToken) @@ -3272,7 +3272,7 @@ expr_without_variable: $$ = assign.NewReference($1, $4) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.EqualToken) @@ -3293,11 +3293,11 @@ expr_without_variable: // save position if $6 != nil { - yylex.(*Parser).positions.AddPosition(_new, yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $6)) + _new.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $6)) } else { - yylex.(*Parser).positions.AddPosition(_new, yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $5)) + _new.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $5)) } - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, _new)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, _new)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.EqualToken) @@ -3311,7 +3311,7 @@ expr_without_variable: $$ = expr.NewClone($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.CloneToken) @@ -3323,7 +3323,7 @@ expr_without_variable: $$ = assign.NewPlus($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PlusEqualToken) @@ -3335,7 +3335,7 @@ expr_without_variable: $$ = assign.NewMinus($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.MinusEqualToken) @@ -3347,7 +3347,7 @@ expr_without_variable: $$ = assign.NewMul($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.MulEqualToken) @@ -3359,7 +3359,7 @@ expr_without_variable: $$ = assign.NewPow($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PowEqualToken) @@ -3371,7 +3371,7 @@ expr_without_variable: $$ = assign.NewDiv($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.DivEqualToken) @@ -3383,7 +3383,7 @@ expr_without_variable: $$ = assign.NewConcat($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.ConcatEqualToken) @@ -3395,7 +3395,7 @@ expr_without_variable: $$ = assign.NewMod($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.ModEqualToken) @@ -3407,7 +3407,7 @@ expr_without_variable: $$ = assign.NewBitwiseAnd($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AndEqualToken) @@ -3419,7 +3419,7 @@ expr_without_variable: $$ = assign.NewBitwiseOr($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OrEqualToken) @@ -3431,7 +3431,7 @@ expr_without_variable: $$ = assign.NewBitwiseXor($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.XorEqualToken) @@ -3443,7 +3443,7 @@ expr_without_variable: $$ = assign.NewShiftLeft($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SlEqualToken) @@ -3455,7 +3455,7 @@ expr_without_variable: $$ = assign.NewShiftRight($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SrEqualToken) @@ -3467,7 +3467,7 @@ expr_without_variable: $$ = expr.NewPostInc($1) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IncToken) @@ -3479,7 +3479,7 @@ expr_without_variable: $$ = expr.NewPreInc($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IncToken) @@ -3491,7 +3491,7 @@ expr_without_variable: $$ = expr.NewPostDec($1) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.DecToken) @@ -3503,7 +3503,7 @@ expr_without_variable: $$ = expr.NewPreDec($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DecToken) @@ -3515,7 +3515,7 @@ expr_without_variable: $$ = binary.NewBooleanOr($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.BooleanOrToken) @@ -3527,7 +3527,7 @@ expr_without_variable: $$ = binary.NewBooleanAnd($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.BooleanAndToken) @@ -3539,7 +3539,7 @@ expr_without_variable: $$ = binary.NewLogicalOr($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LogicalOrToken) @@ -3551,7 +3551,7 @@ expr_without_variable: $$ = binary.NewLogicalAnd($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LogicalAndToken) @@ -3563,7 +3563,7 @@ expr_without_variable: $$ = binary.NewLogicalXor($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LogicalXorToken) @@ -3575,7 +3575,7 @@ expr_without_variable: $$ = binary.NewBitwiseOr($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.VerticalBarToken) @@ -3587,7 +3587,7 @@ expr_without_variable: $$ = binary.NewBitwiseAnd($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AmpersandToken) @@ -3599,7 +3599,7 @@ expr_without_variable: $$ = binary.NewBitwiseXor($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.CaretToken) @@ -3611,7 +3611,7 @@ expr_without_variable: $$ = binary.NewConcat($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.DotToken) @@ -3623,7 +3623,7 @@ expr_without_variable: $$ = binary.NewPlus($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PlusToken) @@ -3635,7 +3635,7 @@ expr_without_variable: $$ = binary.NewMinus($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.MinusToken) @@ -3647,7 +3647,7 @@ expr_without_variable: $$ = binary.NewMul($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsteriskToken) @@ -3659,7 +3659,7 @@ expr_without_variable: $$ = binary.NewPow($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PowToken) @@ -3671,7 +3671,7 @@ expr_without_variable: $$ = binary.NewDiv($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SlashToken) @@ -3683,7 +3683,7 @@ expr_without_variable: $$ = binary.NewMod($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PercentToken) @@ -3695,7 +3695,7 @@ expr_without_variable: $$ = binary.NewShiftLeft($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SlToken) @@ -3707,7 +3707,7 @@ expr_without_variable: $$ = binary.NewShiftRight($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SrToken) @@ -3719,7 +3719,7 @@ expr_without_variable: $$ = expr.NewUnaryPlus($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.PlusToken) @@ -3731,7 +3731,7 @@ expr_without_variable: $$ = expr.NewUnaryMinus($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.MinusToken) @@ -3743,7 +3743,7 @@ expr_without_variable: $$ = expr.NewBooleanNot($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ExclamationMarkToken) @@ -3755,7 +3755,7 @@ expr_without_variable: $$ = expr.NewBitwiseNot($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.TildeToken) @@ -3767,7 +3767,7 @@ expr_without_variable: $$ = binary.NewIdentical($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsIdenticalToken) @@ -3779,7 +3779,7 @@ expr_without_variable: $$ = binary.NewNotIdentical($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsNotIdenticalToken) @@ -3791,7 +3791,7 @@ expr_without_variable: $$ = binary.NewEqual($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsEqualToken) @@ -3803,7 +3803,7 @@ expr_without_variable: $$ = binary.NewNotEqual($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsNotEqualToken) @@ -3815,7 +3815,7 @@ expr_without_variable: $$ = binary.NewSmaller($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LessToken) @@ -3827,7 +3827,7 @@ expr_without_variable: $$ = binary.NewSmallerOrEqual($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsSmallerOrEqualToken) @@ -3839,7 +3839,7 @@ expr_without_variable: $$ = binary.NewGreater($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.GreaterToken) @@ -3851,7 +3851,7 @@ expr_without_variable: $$ = binary.NewGreaterOrEqual($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsGreaterOrEqualToken) @@ -3863,7 +3863,7 @@ expr_without_variable: $$ = expr.NewInstanceOf($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.InstanceofToken) @@ -3902,7 +3902,7 @@ expr_without_variable: } // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($$, n)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, n)) } // save comments @@ -3916,7 +3916,7 @@ expr_without_variable: $$ = expr.NewTernary($1, $3, $5) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.QuestionMarkToken) @@ -3929,7 +3929,7 @@ expr_without_variable: $$ = expr.NewTernary($1, nil, $4) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.QuestionMarkToken) @@ -3948,7 +3948,7 @@ expr_without_variable: $$ = cast.NewInt($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IntCastToken) @@ -3960,7 +3960,7 @@ expr_without_variable: $$ = cast.NewDouble($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DoubleCastToken) @@ -3972,7 +3972,7 @@ expr_without_variable: $$ = cast.NewString($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StringCastToken) @@ -3984,7 +3984,7 @@ expr_without_variable: $$ = cast.NewArray($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ArrayCastToken) @@ -3996,7 +3996,7 @@ expr_without_variable: $$ = cast.NewObject($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ObjectCastToken) @@ -4008,7 +4008,7 @@ expr_without_variable: $$ = cast.NewBool($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.BoolCastToken) @@ -4020,7 +4020,7 @@ expr_without_variable: $$ = cast.NewUnset($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UnsetCastToken) @@ -4043,9 +4043,9 @@ expr_without_variable: // save position if $2 == nil { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) } else { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) } // save comments @@ -4062,7 +4062,7 @@ expr_without_variable: $$ = expr.NewErrorSuppress($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.AtToken) @@ -4092,7 +4092,7 @@ expr_without_variable: $$ = expr.NewShellExec($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.BackquoteToken) @@ -4105,7 +4105,7 @@ expr_without_variable: $$ = expr.NewPrint($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.PrintToken) @@ -4117,7 +4117,7 @@ expr_without_variable: $$ = expr.NewYield(nil, nil) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldToken) @@ -4129,7 +4129,7 @@ expr_without_variable: $$ = expr.NewClosure($4, $6, nil, $8, false, $2 != nil, "") // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $9)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $9)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.FunctionToken) @@ -4148,7 +4148,7 @@ expr_without_variable: $$ = expr.NewClosure($5, $7, nil, $9, true, $3 != nil, "") // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $10)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $10)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StaticToken) @@ -4171,7 +4171,7 @@ yield_expr: $$ = expr.NewYield(nil, $2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldToken) @@ -4183,7 +4183,7 @@ yield_expr: $$ = expr.NewYield(nil, $2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldToken) @@ -4195,7 +4195,7 @@ yield_expr: $$ = expr.NewYield($2, $4) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldToken) @@ -4208,7 +4208,7 @@ yield_expr: $$ = expr.NewYield($2, $4) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldToken) @@ -4224,7 +4224,7 @@ combined_scalar_offset: $$ = expr.NewArrayDimFetch($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) @@ -4237,7 +4237,7 @@ combined_scalar_offset: $$ = expr.NewArrayDimFetch($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) @@ -4251,8 +4251,8 @@ combined_scalar_offset: $$ = expr.NewArrayDimFetch(str, $3) // save position - yylex.(*Parser).positions.AddPosition(str, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(str, $4)) + str.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(str, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) @@ -4265,7 +4265,7 @@ combined_scalar_offset: $$ = expr.NewArrayDimFetch($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) @@ -4281,7 +4281,7 @@ combined_scalar: $$ = expr.NewArray($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ArrayToken) @@ -4295,7 +4295,7 @@ combined_scalar: $$ = expr.NewShortArray($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenSquareBracket) @@ -4323,7 +4323,7 @@ lexical_vars: { $$ = expr.NewClosureUse($3) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4337,8 +4337,8 @@ lexical_var_list: $$ = append($1, variable) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) @@ -4354,8 +4354,9 @@ lexical_var_list: $$ = append($1, reference) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($3, $4)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) @@ -4371,8 +4372,8 @@ lexical_var_list: $$ = []node.Node{variable} // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) @@ -4387,9 +4388,9 @@ lexical_var_list: $$ = []node.Node{reference} // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition(reference, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken(reference, $1, comment.VariableToken) @@ -4406,8 +4407,8 @@ function_call: $$ = expr.NewFunctionCall(name, $2.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition(name, $2)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(name, $2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4417,8 +4418,8 @@ function_call: $$ = expr.NewFunctionCall(funcName, $4.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition(funcName, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, $4)) + funcName.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, $4)) // save comments yylex.(*Parser).comments.AddFromToken(funcName, $1, comment.NamespaceToken) @@ -4432,8 +4433,8 @@ function_call: $$ = expr.NewFunctionCall(funcName, $3.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition(funcName, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, $3)) + funcName.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, $3)) // save comments yylex.(*Parser).comments.AddFromToken(funcName, $1, comment.NsSeparatorToken) @@ -4445,7 +4446,7 @@ function_call: $$ = expr.NewStaticCall($1, $3, $4.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) @@ -4457,7 +4458,7 @@ function_call: $$ = expr.NewStaticCall($1, $3, $4.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) @@ -4469,7 +4470,7 @@ function_call: $$ = expr.NewStaticCall($1, $3, $4.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) @@ -4481,7 +4482,7 @@ function_call: $$ = expr.NewStaticCall($1, $3, $4.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) @@ -4493,7 +4494,7 @@ function_call: $$ = expr.NewFunctionCall($1, $2.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4505,7 +4506,7 @@ class_name: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StaticToken) @@ -4517,7 +4518,7 @@ class_name: $$ = name.NewName($1) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4526,7 +4527,7 @@ class_name: $$ = name.NewRelative($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) @@ -4539,7 +4540,7 @@ class_name: $$ = name.NewFullyQualified($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) @@ -4554,7 +4555,7 @@ fully_qualified_class_name: $$ = name.NewName($1) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4563,7 +4564,7 @@ fully_qualified_class_name: $$ = name.NewRelative($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) @@ -4576,7 +4577,7 @@ fully_qualified_class_name: $$ = name.NewFullyQualified($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) @@ -4612,12 +4613,12 @@ dynamic_class_name_reference: switch nn := n.(type) { case *expr.ArrayDimFetch: nn.Variable = $$ - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) $$ = nn case *expr.PropertyFetch: nn.Variable = $$ - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) $$ = nn } } @@ -4626,12 +4627,12 @@ dynamic_class_name_reference: switch nn := n.(type) { case *expr.ArrayDimFetch: nn.Variable = $$ - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) $$ = nn case *expr.PropertyFetch: nn.Variable = $$ - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) $$ = nn } } @@ -4687,7 +4688,7 @@ exit_expr: $$ = expr.NewExit(nil); // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenParenthesisToken) @@ -4700,7 +4701,7 @@ exit_expr: $$ = expr.NewExit($1); // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4748,7 +4749,7 @@ common_scalar: $$ = scalar.NewLnumber($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.LnumberToken) @@ -4760,7 +4761,7 @@ common_scalar: $$ = scalar.NewDnumber($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DnumberToken) @@ -4772,7 +4773,7 @@ common_scalar: $$ = scalar.NewString($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ConstantEncapsedStringToken) @@ -4784,7 +4785,7 @@ common_scalar: $$ = scalar.NewMagicConstant($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.LineToken) @@ -4796,7 +4797,7 @@ common_scalar: $$ = scalar.NewMagicConstant($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.FileToken) @@ -4808,7 +4809,7 @@ common_scalar: $$ = scalar.NewMagicConstant($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DirToken) @@ -4820,7 +4821,7 @@ common_scalar: $$ = scalar.NewMagicConstant($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.TraitCToken) @@ -4832,7 +4833,7 @@ common_scalar: $$ = scalar.NewMagicConstant($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.MethodCToken) @@ -4844,7 +4845,7 @@ common_scalar: $$ = scalar.NewMagicConstant($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.FuncCToken) @@ -4856,7 +4857,7 @@ common_scalar: $$ = scalar.NewMagicConstant($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsCToken) @@ -4869,8 +4870,8 @@ common_scalar: $$ = scalar.NewHeredoc($1.Value, []node.Node{encapsed}) // save position - yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StartHeredocToken) @@ -4882,7 +4883,7 @@ common_scalar: $$ = scalar.NewHeredoc($1.Value, nil) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StartHeredocToken) @@ -4898,8 +4899,8 @@ static_class_constant: $$ = expr.NewClassConstFetch($1, target) // save position - yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) + target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) @@ -4937,8 +4938,8 @@ static_scalar_value: $$ = expr.NewConstFetch(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition(name)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4948,8 +4949,8 @@ static_scalar_value: $$ = expr.NewConstFetch(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) @@ -4963,8 +4964,8 @@ static_scalar_value: $$ = expr.NewConstFetch(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) @@ -4976,7 +4977,7 @@ static_scalar_value: $$ = expr.NewArray($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ArrayToken) @@ -4990,7 +4991,7 @@ static_scalar_value: $$ = expr.NewShortArray($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenSquareBracket) @@ -5009,7 +5010,7 @@ static_scalar_value: $$ = scalar.NewMagicConstant($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ClassCToken) @@ -5030,7 +5031,7 @@ static_operation: $$ = expr.NewArrayDimFetch($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) @@ -5043,7 +5044,7 @@ static_operation: $$ = binary.NewPlus($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PlusToken) @@ -5055,7 +5056,7 @@ static_operation: $$ = binary.NewMinus($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.MinusToken) @@ -5067,7 +5068,7 @@ static_operation: $$ = binary.NewMul($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsteriskToken) @@ -5079,7 +5080,7 @@ static_operation: $$ = binary.NewPow($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PowToken) @@ -5091,7 +5092,7 @@ static_operation: $$ = binary.NewDiv($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SlashToken) @@ -5103,7 +5104,7 @@ static_operation: $$ = binary.NewMod($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PercentToken) @@ -5115,7 +5116,7 @@ static_operation: $$ = expr.NewBooleanNot($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ExclamationMarkToken) @@ -5127,7 +5128,7 @@ static_operation: $$ = expr.NewBitwiseNot($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.TildeToken) @@ -5139,7 +5140,7 @@ static_operation: $$ = binary.NewBitwiseOr($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.VerticalBarToken) @@ -5151,7 +5152,7 @@ static_operation: $$ = binary.NewBitwiseAnd($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AmpersandToken) @@ -5163,7 +5164,7 @@ static_operation: $$ = binary.NewBitwiseXor($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.CaretToken) @@ -5175,7 +5176,7 @@ static_operation: $$ = binary.NewShiftLeft($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SlToken) @@ -5187,7 +5188,7 @@ static_operation: $$ = binary.NewShiftRight($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SrToken) @@ -5199,7 +5200,7 @@ static_operation: $$ = binary.NewConcat($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.DotToken) @@ -5211,7 +5212,7 @@ static_operation: $$ = binary.NewLogicalXor($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LogicalXorToken) @@ -5223,7 +5224,7 @@ static_operation: $$ = binary.NewLogicalAnd($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LogicalAndToken) @@ -5235,7 +5236,7 @@ static_operation: $$ = binary.NewLogicalOr($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LogicalOrToken) @@ -5247,7 +5248,7 @@ static_operation: $$ = binary.NewBooleanAnd($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.BooleanAndToken) @@ -5259,7 +5260,7 @@ static_operation: $$ = binary.NewBooleanOr($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.BooleanOrToken) @@ -5271,7 +5272,7 @@ static_operation: $$ = binary.NewIdentical($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsIdenticalToken) @@ -5283,7 +5284,7 @@ static_operation: $$ = binary.NewNotIdentical($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsNotIdenticalToken) @@ -5295,7 +5296,7 @@ static_operation: $$ = binary.NewEqual($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsEqualToken) @@ -5307,7 +5308,7 @@ static_operation: $$ = binary.NewNotEqual($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsNotEqualToken) @@ -5319,7 +5320,7 @@ static_operation: $$ = binary.NewSmaller($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LessToken) @@ -5331,7 +5332,7 @@ static_operation: $$ = binary.NewGreater($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.GreaterToken) @@ -5343,7 +5344,7 @@ static_operation: $$ = binary.NewSmallerOrEqual($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsSmallerOrEqualToken) @@ -5355,7 +5356,7 @@ static_operation: $$ = binary.NewGreaterOrEqual($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsGreaterOrEqualToken) @@ -5367,7 +5368,7 @@ static_operation: $$ = expr.NewTernary($1, nil, $4) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.QuestionMarkToken) @@ -5380,7 +5381,7 @@ static_operation: $$ = expr.NewTernary($1, $3, $5) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.QuestionMarkToken) @@ -5393,7 +5394,7 @@ static_operation: $$ = expr.NewUnaryPlus($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.PlusToken) @@ -5405,7 +5406,7 @@ static_operation: $$ = expr.NewUnaryMinus($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.MinusToken) @@ -5437,8 +5438,8 @@ general_constant: $$ = expr.NewConstFetch(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition(name)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5446,8 +5447,8 @@ general_constant: { name := name.NewRelative($3) $$ = expr.NewConstFetch(name) - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition(name)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) @@ -5461,8 +5462,8 @@ general_constant: $$ = expr.NewConstFetch(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition(name)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) @@ -5478,8 +5479,8 @@ scalar: $$ = expr.NewVariable(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken(name, $1, comment.StringVarnameToken) @@ -5509,7 +5510,7 @@ scalar: $$ = scalar.NewEncapsed($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DoubleQuoteToken) @@ -5521,7 +5522,7 @@ scalar: $$ = scalar.NewHeredoc($1.Value, $2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StartHeredocToken) @@ -5533,7 +5534,7 @@ scalar: $$ = scalar.NewMagicConstant($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ClassCToken) @@ -5580,7 +5581,7 @@ non_empty_static_array_pair_list: $$ = append($1, arrayItem) // save position - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition($3, $5)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($3, $5)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) @@ -5594,7 +5595,7 @@ non_empty_static_array_pair_list: $$ = append($1, arrayItem) // save position - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition($3)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($3)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) @@ -5607,7 +5608,7 @@ non_empty_static_array_pair_list: $$ = []node.Node{arrayItem} // save position - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken(arrayItem, $2, comment.DoubleArrowToken) @@ -5620,7 +5621,7 @@ non_empty_static_array_pair_list: $$ = []node.Node{arrayItem} // save position - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5702,17 +5703,17 @@ variable: switch nn := n.(type) { case *expr.ArrayDimFetch: nn.Variable = $$ - yylex.(*Parser).positions.AddPosition(nn, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) $$ = nn case *expr.PropertyFetch: nn.Variable = $$ - yylex.(*Parser).positions.AddPosition(nn, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) $$ = nn case *expr.MethodCall: nn.Variable = $$ - yylex.(*Parser).positions.AddPosition(nn, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) $$ = nn } } @@ -5721,17 +5722,17 @@ variable: switch nn := n.(type) { case *expr.ArrayDimFetch: nn.Variable = $$ - yylex.(*Parser).positions.AddPosition(nn, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) $$ = nn case *expr.PropertyFetch: nn.Variable = $$ - yylex.(*Parser).positions.AddPosition(nn, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) $$ = nn case *expr.MethodCall: nn.Variable = $$ - yylex.(*Parser).positions.AddPosition(nn, yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) $$ = nn } } @@ -5786,7 +5787,7 @@ array_method_dereference: $$ = append($1, fetch) // save position - yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition($3)) + fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($3)) // save comments yylex.(*Parser).comments.AddFromToken(fetch, $2, comment.OpenSquareBracket) @@ -5800,7 +5801,7 @@ array_method_dereference: $$ = []node.Node{$1, fetch} // save position - yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition($3)) + fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($3)) // save comments yylex.(*Parser).comments.AddFromToken(fetch, $2, comment.OpenSquareBracket) @@ -5816,7 +5817,7 @@ method: $$ = expr.NewMethodCall(nil, nil, $1.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5855,7 +5856,7 @@ variable_without_objects: $1.last.SetVarName($2) for _, n := range($1.all) { - yylex.(*Parser).positions[n] = yylex.(*Parser).positionBuilder.NewNodesPosition(n, $2) + n.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(n, $2)) } $$ = $1.all[0] @@ -5870,7 +5871,7 @@ static_member: $$ = expr.NewStaticPropertyFetch($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) @@ -5882,7 +5883,7 @@ static_member: $$ = expr.NewStaticPropertyFetch($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) @@ -5906,7 +5907,7 @@ array_function_dereference: $$ = expr.NewArrayDimFetch($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) @@ -5919,7 +5920,7 @@ array_function_dereference: $$ = expr.NewArrayDimFetch($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) @@ -5963,7 +5964,7 @@ base_variable: $1.last.SetVarName($2) for _, n := range($1.all) { - yylex.(*Parser).positions[n] = yylex.(*Parser).positionBuilder.NewNodesPosition(n, $2) + n.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(n, $2)) } $$ = $1.all[0] @@ -5984,7 +5985,7 @@ reference_variable: $$ = expr.NewArrayDimFetch($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) @@ -5997,7 +5998,7 @@ reference_variable: $$ = expr.NewArrayDimFetch($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenCurlyBracesToken) @@ -6021,8 +6022,8 @@ compound_variable: $$ = expr.NewVariable(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.VariableToken) @@ -6034,7 +6035,7 @@ compound_variable: $$ = expr.NewVariable($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarToken) @@ -6074,7 +6075,7 @@ object_property: $$ = []node.Node{fetch} // save position - yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6087,7 +6088,7 @@ object_dim_list: $$ = append($1, fetch) // save position - yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition($3)) + fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($3)) // save comments yylex.(*Parser).comments.AddFromToken(fetch, $2, comment.OpenSquareBracket) @@ -6101,7 +6102,7 @@ object_dim_list: $$ = append($1, fetch) // save position - yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition($3)) + fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($3)) // save comments yylex.(*Parser).comments.AddFromToken(fetch, $2, comment.OpenCurlyBracesToken) @@ -6115,7 +6116,7 @@ object_dim_list: $$ = []node.Node{fetch} // save position - yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6127,7 +6128,7 @@ variable_name: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StringToken) @@ -6139,7 +6140,7 @@ variable_name: $$ = $2 // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) @@ -6156,7 +6157,7 @@ simple_indirect_reference: $$ = simpleIndirectReference{[]*expr.Variable{n}, n} // save position - yylex.(*Parser).positions.AddPosition(n, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + n.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken(n, $1, comment.DollarToken) @@ -6173,7 +6174,7 @@ simple_indirect_reference: $$ = $1 // save position - yylex.(*Parser).positions.AddPosition(n, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + n.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) // save comments yylex.(*Parser).comments.AddFromToken(n, $2, comment.DollarToken) @@ -6211,7 +6212,7 @@ assignment_list_element: $$ = expr.NewArrayItem(nil, $1) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6221,8 +6222,8 @@ assignment_list_element: $$ = expr.NewArrayItem(nil, item) // save position - yylex.(*Parser).positions.AddPosition(item, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition(item)) + item.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(item)) // save comments yylex.(*Parser).comments.AddFromToken(item, $1, comment.ListToken) @@ -6267,7 +6268,7 @@ non_empty_array_pair_list: $$ = append($1, arrayItem) // save position - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition($3, $5)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($3, $5)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) @@ -6281,7 +6282,7 @@ non_empty_array_pair_list: $$ = append($1, arrayItem) // save position - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition($3)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($3)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) @@ -6294,7 +6295,7 @@ non_empty_array_pair_list: $$ = []node.Node{arrayItem} // save position - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken(arrayItem, $2, comment.DoubleArrowToken) @@ -6307,7 +6308,7 @@ non_empty_array_pair_list: $$ = []node.Node{arrayItem} // save position - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6318,8 +6319,8 @@ non_empty_array_pair_list: $$ = append($1, arrayItem) // save position - yylex.(*Parser).positions.AddPosition(reference, yylex.(*Parser).positionBuilder.NewTokenNodePosition($5, $6)) - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition($3, $6)) + reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($5, $6)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($3, $6)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) @@ -6335,8 +6336,8 @@ non_empty_array_pair_list: $$ = append($1, arrayItem) // save position - yylex.(*Parser).positions.AddPosition(reference, yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4)) - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4)) + reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) @@ -6351,8 +6352,8 @@ non_empty_array_pair_list: $$ = []node.Node{arrayItem} // save position - yylex.(*Parser).positions.AddPosition(reference, yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4)) - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken(arrayItem, $2, comment.DoubleArrowToken) @@ -6367,8 +6368,8 @@ non_empty_array_pair_list: $$ = []node.Node{arrayItem} // save position - yylex.(*Parser).positions.AddPosition(reference, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken(reference, $1, comment.AmpersandToken) @@ -6390,7 +6391,7 @@ encaps_list: $$ = append($1, encapsed) // save position - yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) // save comments yylex.(*Parser).comments.AddFromToken(encapsed, $2, comment.EncapsedAndWhitespaceToken) @@ -6409,7 +6410,7 @@ encaps_list: $$ = []node.Node{encapsed, $2} // save position - yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken(encapsed, $1, comment.EncapsedAndWhitespaceToken) @@ -6425,8 +6426,8 @@ encaps_var: $$ = expr.NewVariable(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.VariableToken) @@ -6440,9 +6441,9 @@ encaps_var: $$ = expr.NewArrayDimFetch(variable, $3) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) @@ -6459,10 +6460,10 @@ encaps_var: $$ = expr.NewPropertyFetch(variable, fetch) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + fetch.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) @@ -6476,7 +6477,7 @@ encaps_var: $$ = expr.NewVariable($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarOpenCurlyBracesToken) @@ -6490,8 +6491,8 @@ encaps_var: $$ = expr.NewVariable(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarOpenCurlyBracesToken) @@ -6507,9 +6508,9 @@ encaps_var: $$ = expr.NewArrayDimFetch(variable, $4) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarOpenCurlyBracesToken) @@ -6534,7 +6535,7 @@ encaps_var_offset: $$ = scalar.NewString($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StringToken) @@ -6551,7 +6552,7 @@ encaps_var_offset: } // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NumStringToken) @@ -6564,8 +6565,8 @@ encaps_var_offset: $$ = expr.NewVariable(identifier) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.VariableToken) @@ -6580,7 +6581,7 @@ internal_functions_in_yacc: $$ = expr.NewIsset($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IssetToken) @@ -6594,7 +6595,7 @@ internal_functions_in_yacc: $$ = expr.NewEmpty($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.EmptyToken) @@ -6608,7 +6609,7 @@ internal_functions_in_yacc: $$ = expr.NewEmpty($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.EmptyToken) @@ -6622,7 +6623,7 @@ internal_functions_in_yacc: $$ = expr.NewInclude($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IncludeToken) @@ -6634,7 +6635,7 @@ internal_functions_in_yacc: $$ = expr.NewIncludeOnce($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IncludeOnceToken) @@ -6646,7 +6647,7 @@ internal_functions_in_yacc: $$ = expr.NewEval($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.EvalToken) @@ -6660,7 +6661,7 @@ internal_functions_in_yacc: $$ = expr.NewRequire($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.RequireToken) @@ -6672,7 +6673,7 @@ internal_functions_in_yacc: $$ = expr.NewRequireOnce($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.RequireOnceToken) @@ -6721,8 +6722,8 @@ class_constant: $$ = expr.NewClassConstFetch($1, target) // save position - yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) + target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) @@ -6735,8 +6736,8 @@ class_constant: $$ = expr.NewClassConstFetch($1, target) // save position - yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) + target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) @@ -6752,8 +6753,8 @@ static_class_name_scalar: $$ = expr.NewClassConstFetch($1, target) // save position - yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) + target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) @@ -6769,8 +6770,8 @@ class_name_scalar: $$ = expr.NewClassConstFetch($1, target) // save position - yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) + target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) diff --git a/php5/php5_test.go b/php5/php5_test.go index 8a5dc81..52c634c 100644 --- a/php5/php5_test.go +++ b/php5/php5_test.go @@ -12,6 +12,7 @@ import ( "github.com/z7zmey/php-parser/node/expr/cast" "github.com/z7zmey/php-parser/node/name" "github.com/z7zmey/php-parser/node/scalar" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/php5" "github.com/z7zmey/php-parser/node" @@ -413,1051 +414,6092 @@ func TestPhp5(t *testing.T) { $foo::bar; ` - expectedParams := []node.Node{ - &node.Parameter{ - ByRef: false, - Variadic: false, - VariableType: &name.Name{Parts: []node.Node{&name.NamePart{Value: "bar"}}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, - DefaultValue: &expr.ConstFetch{Constant: &name.Name{Parts: []node.Node{&name.NamePart{Value: "null"}}}}, - }, - &node.Parameter{ - ByRef: true, - Variadic: true, - VariableType: &name.Name{Parts: []node.Node{&name.NamePart{Value: "baz"}}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "baz"}}, - }, - } - expected := &node.Root{ + Position: &position.Position{ + StartLine: 2, + EndLine: 379, + StartPos: 6, + EndPos: 6965, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 6, + EndPos: 20, + }, Expr: &expr.FunctionCall{ - Function: &name.Name{Parts: []node.Node{&name.NamePart{Value: "foo"}}}, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 6, + EndPos: 19, + }, + Function: &name.Name{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 6, + EndPos: 8, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 6, + EndPos: 8, + }, + Value: "foo", + }, + }, + }, ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 9, + EndPos: 19, + }, Arguments: []node.Node{ - &node.Argument{Variadic: false, Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, - &node.Argument{Variadic: true, Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + &node.Argument{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 10, + EndPos: 11, + }, + Variadic: false, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 10, + EndPos: 11, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 10, + EndPos: 11, + }, + Value: "a", + }, + }, + }, + &node.Argument{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 14, + EndPos: 18, + }, + Variadic: true, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 17, + EndPos: 18, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 17, + EndPos: 18, + }, + Value: "b", + }, + }, + }, }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 24, + EndPos: 39, + }, Expr: &expr.FunctionCall{ - Function: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 24, + EndPos: 38, + }, + Function: &expr.Variable{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 24, + EndPos: 27, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 24, + EndPos: 27, + }, + Value: "foo", + }, + }, ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 28, + EndPos: 38, + }, Arguments: []node.Node{ - &node.Argument{Variadic: false, Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, - &node.Argument{Variadic: true, Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + &node.Argument{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 29, + EndPos: 30, + }, + Variadic: false, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 29, + EndPos: 30, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 29, + EndPos: 30, + }, + Value: "a", + }, + }, + }, + &node.Argument{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 33, + EndPos: 37, + }, + Variadic: true, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 36, + EndPos: 37, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 36, + EndPos: 37, + }, + Value: "b", + }, + }, + }, }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 43, + EndPos: 63, + }, Expr: &expr.MethodCall{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Method: &node.Identifier{Value: "bar"}, + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 43, + EndPos: 62, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 43, + EndPos: 46, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 43, + EndPos: 46, + }, + Value: "foo", + }, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 49, + EndPos: 51, + }, + Value: "bar", + }, ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 52, + EndPos: 62, + }, Arguments: []node.Node{ - &node.Argument{Variadic: false, Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, - &node.Argument{Variadic: true, Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + &node.Argument{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 53, + EndPos: 54, + }, + Variadic: false, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 53, + EndPos: 54, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 53, + EndPos: 54, + }, + Value: "a", + }, + }, + }, + &node.Argument{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 57, + EndPos: 61, + }, + Variadic: true, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 60, + EndPos: 61, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 60, + EndPos: 61, + }, + Value: "b", + }, + }, + }, }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 67, + EndPos: 86, + }, Expr: &expr.StaticCall{ - Class: &name.Name{Parts: []node.Node{&name.NamePart{Value: "foo"}}}, - Call: &node.Identifier{Value: "bar"}, + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 67, + EndPos: 85, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 67, + EndPos: 69, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 67, + EndPos: 69, + }, + Value: "foo", + }, + }, + }, + Call: &node.Identifier{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 72, + EndPos: 74, + }, + Value: "bar", + }, ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 75, + EndPos: 85, + }, Arguments: []node.Node{ - &node.Argument{Variadic: false, Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, - &node.Argument{Variadic: true, Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + &node.Argument{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 76, + EndPos: 77, + }, + Variadic: false, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 76, + EndPos: 77, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 76, + EndPos: 77, + }, + Value: "a", + }, + }, + }, + &node.Argument{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 80, + EndPos: 84, + }, + Variadic: true, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 83, + EndPos: 84, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 83, + EndPos: 84, + }, + Value: "b", + }, + }, + }, }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 90, + EndPos: 110, + }, Expr: &expr.StaticCall{ - Class: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Call: &node.Identifier{Value: "bar"}, + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 90, + EndPos: 109, + }, + Class: &expr.Variable{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 90, + EndPos: 93, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 90, + EndPos: 93, + }, + Value: "foo", + }, + }, + Call: &node.Identifier{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 96, + EndPos: 98, + }, + Value: "bar", + }, ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 99, + EndPos: 109, + }, Arguments: []node.Node{ - &node.Argument{Variadic: false, Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, - &node.Argument{Variadic: true, Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + &node.Argument{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 100, + EndPos: 101, + }, + Variadic: false, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 100, + EndPos: 101, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 100, + EndPos: 101, + }, + Value: "a", + }, + }, + }, + &node.Argument{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 104, + EndPos: 108, + }, + Variadic: true, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 107, + EndPos: 108, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 107, + EndPos: 108, + }, + Value: "b", + }, + }, + }, }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 114, + EndPos: 132, + }, Expr: &expr.New{ - Class: &name.Name{Parts: []node.Node{&name.NamePart{Value: "foo"}}}, + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 114, + EndPos: 131, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 118, + EndPos: 120, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 118, + EndPos: 120, + }, + Value: "foo", + }, + }, + }, ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 121, + EndPos: 131, + }, Arguments: []node.Node{ - &node.Argument{Variadic: false, Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, - &node.Argument{Variadic: true, Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + &node.Argument{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 122, + EndPos: 123, + }, + Variadic: false, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 122, + EndPos: 123, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 122, + EndPos: 123, + }, + Value: "a", + }, + }, + }, + &node.Argument{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 126, + EndPos: 130, + }, + Variadic: true, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 129, + EndPos: 130, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 129, + EndPos: 130, + }, + Value: "b", + }, + }, + }, }, }, }, }, &stmt.Function{ - ReturnsRef: false, + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 137, + EndPos: 180, + }, + ReturnsRef: false, PhpDocComment: "", - FunctionName: &node.Identifier{Value: "foo"}, - Params: expectedParams, - Stmts: []node.Node{}, + FunctionName: &node.Identifier{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 146, + EndPos: 148, + }, + Value: "foo", + }, + Params: []node.Node{ + &node.Parameter{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 150, + EndPos: 162, + }, + Variadic: false, + ByRef: false, + VariableType: &name.Name{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 150, + EndPos: 152, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 150, + EndPos: 152, + }, + Value: "bar", + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 154, + EndPos: 157, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 154, + EndPos: 157, + }, + Value: "bar", + }, + }, + DefaultValue: &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 159, + EndPos: 162, + }, + Constant: &name.Name{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 159, + EndPos: 162, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 159, + EndPos: 162, + }, + Value: "null", + }, + }, + }, + }, + }, + &node.Parameter{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 165, + EndPos: 176, + }, + Variadic: true, + ByRef: true, + VariableType: &name.Name{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 165, + EndPos: 167, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 165, + EndPos: 167, + }, + Value: "baz", + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 173, + EndPos: 176, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 173, + EndPos: 176, + }, + Value: "baz", + }, + }, + }, + }, + Stmts: []node.Node{ + }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 184, + EndPos: 246, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 190, + EndPos: 192, + }, + Value: "foo", + }, Stmts: []node.Node{ &stmt.ClassMethod{ - MethodName: &node.Identifier{Value: "foo"}, - Modifiers: []node.Node{&node.Identifier{Value: "public"}}, - Params: expectedParams, + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 195, + EndPos: 245, + }, + PhpDocComment: "", + ReturnsRef: false, + MethodName: &node.Identifier{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 211, + EndPos: 213, + }, + Value: "foo", + }, + Modifiers: []node.Node{ + &node.Identifier{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 195, + EndPos: 200, + }, + Value: "public", + }, + }, + Params: []node.Node{ + &node.Parameter{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 215, + EndPos: 227, + }, + ByRef: false, + Variadic: false, + VariableType: &name.Name{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 215, + EndPos: 217, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 215, + EndPos: 217, + }, + Value: "bar", + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 219, + EndPos: 222, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 219, + EndPos: 222, + }, + Value: "bar", + }, + }, + DefaultValue: &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 224, + EndPos: 227, + }, + Constant: &name.Name{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 224, + EndPos: 227, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 224, + EndPos: 227, + }, + Value: "null", + }, + }, + }, + }, + }, + &node.Parameter{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 230, + EndPos: 241, + }, + ByRef: true, + Variadic: true, + VariableType: &name.Name{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 230, + EndPos: 232, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 230, + EndPos: 232, + }, + Value: "baz", + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 238, + EndPos: 241, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 238, + EndPos: 241, + }, + Value: "baz", + }, + }, + }, + }, Stmt: &stmt.StmtList{ - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 244, + EndPos: 245, + }, + Stmts: []node.Node{ + }, }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 250, + EndPos: 290, + }, Expr: &expr.Closure{ - Params: expectedParams, - Stmts: []node.Node{}, - }, - }, - &stmt.Expression{ - Expr: &expr.Closure{ - Static: true, - Params: expectedParams, - Stmts: []node.Node{}, - }, - }, - &stmt.Expression{ - Expr: &scalar.Lnumber{Value: "1234567890123456789"}, - }, - &stmt.Expression{ - Expr: &scalar.Dnumber{Value: "12345678901234567890"}, - }, - &stmt.Expression{ - Expr: &scalar.Dnumber{Value: "0."}, - }, - &stmt.Expression{ - Expr: &scalar.Lnumber{Value: "0b0111111111111111111111111111111111111111111111111111111111111111"}, - }, - &stmt.Expression{ - Expr: &scalar.Dnumber{Value: "0b1111111111111111111111111111111111111111111111111111111111111111"}, - }, - &stmt.Expression{ - Expr: &scalar.Lnumber{Value: "0x007111111111111111"}, - }, - &stmt.Expression{ - Expr: &scalar.Dnumber{Value: "0x8111111111111111"}, - }, - - &stmt.Expression{ - Expr: &scalar.MagicConstant{Value: "__CLASS__"}, - }, - &stmt.Expression{ - Expr: &scalar.MagicConstant{Value: "__DIR__"}, - }, - &stmt.Expression{ - Expr: &scalar.MagicConstant{Value: "__FILE__"}, - }, - &stmt.Expression{ - Expr: &scalar.MagicConstant{Value: "__FUNCTION__"}, - }, - &stmt.Expression{ - Expr: &scalar.MagicConstant{Value: "__LINE__"}, - }, - &stmt.Expression{ - Expr: &scalar.MagicConstant{Value: "__NAMESPACE__"}, - }, - &stmt.Expression{ - Expr: &scalar.MagicConstant{Value: "__METHOD__"}, - }, - &stmt.Expression{ - Expr: &scalar.MagicConstant{Value: "__TRAIT__"}, - }, - - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 250, + EndPos: 289, }, - }, - }, - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - Dim: &scalar.Lnumber{Value: "1"}, + ReturnsRef: false, + Static: false, + PhpDocComment: "", + Params: []node.Node{ + &node.Parameter{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 259, + EndPos: 271, + }, + ByRef: false, + Variadic: false, + VariableType: &name.Name{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 259, + EndPos: 261, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 259, + EndPos: 261, + }, + Value: "bar", + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 263, + EndPos: 266, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 263, + EndPos: 266, + }, + Value: "bar", + }, + }, + DefaultValue: &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 268, + EndPos: 271, + }, + Constant: &name.Name{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 268, + EndPos: 271, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 268, + EndPos: 271, + }, + Value: "null", + }, + }, + }, + }, + }, + &node.Parameter{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 274, + EndPos: 285, + }, + ByRef: true, + Variadic: true, + VariableType: &name.Name{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 274, + EndPos: 276, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 274, + EndPos: 276, + }, + Value: "baz", + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 282, + EndPos: 285, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 282, + EndPos: 285, + }, + Value: "baz", + }, + }, }, }, - }, - }, - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - Dim: &scalar.String{Value: "1234567890123456789012345678901234567890"}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - Dim: &scalar.String{Value: "bar"}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - Dim: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - &scalar.EncapsedStringPart{Value: " "}, - &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, - }, - }, - }, - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.PropertyFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Property: &node.Identifier{Value: "bar"}, - }, - &scalar.EncapsedStringPart{Value: "()"}, - }, - }, - }, - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - }, - }, - }, - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Dim: &scalar.Lnumber{Value: "0"}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.MethodCall{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Method: &node.Identifier{Value: "bar"}, - ArgumentList: &node.ArgumentList{}, - }, - }, - }, - }, - - &stmt.AltIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - &stmt.AltIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - ElseIf: []node.Node{ - &stmt.AltElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - }, - }, - &stmt.AltIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - Else: &stmt.AltElse{ - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - }, - &stmt.AltIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - ElseIf: []node.Node{ - &stmt.AltElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - &stmt.AltElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - }, - Else: &stmt.AltElse{ - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - }, - &stmt.While{ - Cond: &scalar.Lnumber{Value: "1"}, - Stmt: &stmt.StmtList{ Stmts: []node.Node{ - &stmt.Break{}, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 294, + EndPos: 341, + }, + Expr: &expr.Closure{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 294, + EndPos: 340, + }, + ReturnsRef: false, + Static: true, + PhpDocComment: "", + Params: []node.Node{ + &node.Parameter{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 310, + EndPos: 322, + }, + ByRef: false, + Variadic: false, + VariableType: &name.Name{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 310, + EndPos: 312, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 310, + EndPos: 312, + }, + Value: "bar", + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 314, + EndPos: 317, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 314, + EndPos: 317, + }, + Value: "bar", + }, + }, + DefaultValue: &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 319, + EndPos: 322, + }, + Constant: &name.Name{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 319, + EndPos: 322, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 319, + EndPos: 322, + }, + Value: "null", + }, + }, + }, + }, + }, + &node.Parameter{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 325, + EndPos: 336, + }, + ByRef: true, + Variadic: true, + VariableType: &name.Name{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 325, + EndPos: 327, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 325, + EndPos: 327, + }, + Value: "baz", + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 333, + EndPos: 336, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 333, + EndPos: 336, + }, + Value: "baz", + }, + }, + }, + }, + Stmts: []node.Node{ + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 14, + EndLine: 14, + StartPos: 346, + EndPos: 365, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 14, + EndLine: 14, + StartPos: 346, + EndPos: 364, + }, + Value: "1234567890123456789", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 15, + EndLine: 15, + StartPos: 369, + EndPos: 389, + }, + Expr: &scalar.Dnumber{ + Position: &position.Position{ + StartLine: 15, + EndLine: 15, + StartPos: 369, + EndPos: 388, + }, + Value: "12345678901234567890", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 16, + EndLine: 16, + StartPos: 393, + EndPos: 395, + }, + Expr: &scalar.Dnumber{ + Position: &position.Position{ + StartLine: 16, + EndLine: 16, + StartPos: 393, + EndPos: 394, + }, + Value: "0.", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 399, + EndPos: 465, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 399, + EndPos: 464, + }, + Value: "0b0111111111111111111111111111111111111111111111111111111111111111", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 469, + EndPos: 535, + }, + Expr: &scalar.Dnumber{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 469, + EndPos: 534, + }, + Value: "0b1111111111111111111111111111111111111111111111111111111111111111", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 539, + EndPos: 559, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 539, + EndPos: 558, + }, + Value: "0x007111111111111111", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 563, + EndPos: 581, + }, + Expr: &scalar.Dnumber{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 563, + EndPos: 580, + }, + Value: "0x8111111111111111", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 585, + EndPos: 594, + }, + Expr: &scalar.MagicConstant{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 585, + EndPos: 593, + }, + Value: "__CLASS__", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 22, + EndLine: 22, + StartPos: 598, + EndPos: 605, + }, + Expr: &scalar.MagicConstant{ + Position: &position.Position{ + StartLine: 22, + EndLine: 22, + StartPos: 598, + EndPos: 604, + }, + Value: "__DIR__", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 23, + EndLine: 23, + StartPos: 609, + EndPos: 617, + }, + Expr: &scalar.MagicConstant{ + Position: &position.Position{ + StartLine: 23, + EndLine: 23, + StartPos: 609, + EndPos: 616, + }, + Value: "__FILE__", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 24, + EndLine: 24, + StartPos: 621, + EndPos: 633, + }, + Expr: &scalar.MagicConstant{ + Position: &position.Position{ + StartLine: 24, + EndLine: 24, + StartPos: 621, + EndPos: 632, + }, + Value: "__FUNCTION__", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 25, + EndLine: 25, + StartPos: 637, + EndPos: 645, + }, + Expr: &scalar.MagicConstant{ + Position: &position.Position{ + StartLine: 25, + EndLine: 25, + StartPos: 637, + EndPos: 644, + }, + Value: "__LINE__", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 26, + EndLine: 26, + StartPos: 649, + EndPos: 662, + }, + Expr: &scalar.MagicConstant{ + Position: &position.Position{ + StartLine: 26, + EndLine: 26, + StartPos: 649, + EndPos: 661, + }, + Value: "__NAMESPACE__", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 27, + EndLine: 27, + StartPos: 666, + EndPos: 676, + }, + Expr: &scalar.MagicConstant{ + Position: &position.Position{ + StartLine: 27, + EndLine: 27, + StartPos: 666, + EndPos: 675, + }, + Value: "__METHOD__", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 28, + EndLine: 28, + StartPos: 680, + EndPos: 689, + }, + Expr: &scalar.MagicConstant{ + Position: &position.Position{ + StartLine: 28, + EndLine: 28, + StartPos: 680, + EndPos: 688, + }, + Value: "__TRAIT__", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 30, + EndLine: 30, + StartPos: 694, + EndPos: 705, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 30, + EndLine: 30, + StartPos: 694, + EndPos: 704, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 30, + EndLine: 30, + StartPos: 695, + EndPos: 699, + }, + Value: "test ", + }, + &expr.Variable{ + Position: &position.Position{ + StartLine: 30, + EndLine: 30, + StartPos: 700, + EndPos: 703, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 30, + EndLine: 30, + StartPos: 700, + EndPos: 703, + }, + Value: "var", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 31, + EndLine: 31, + StartPos: 709, + EndPos: 723, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 31, + EndLine: 31, + StartPos: 709, + EndPos: 722, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 31, + EndLine: 31, + StartPos: 710, + EndPos: 714, + }, + Value: "test ", + }, + &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 31, + EndLine: 31, + StartPos: 715, + EndPos: 721, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 31, + EndLine: 31, + StartPos: 715, + EndPos: 718, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 31, + EndLine: 31, + StartPos: 715, + EndPos: 718, + }, + Value: "var", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 31, + EndLine: 31, + StartPos: 720, + EndPos: 720, + }, + Value: "1", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 32, + EndLine: 32, + StartPos: 727, + EndPos: 780, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 32, + EndLine: 32, + StartPos: 727, + EndPos: 779, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 32, + EndLine: 32, + StartPos: 728, + EndPos: 732, + }, + Value: "test ", + }, + &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 32, + EndLine: 32, + StartPos: 733, + EndPos: 778, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 32, + EndLine: 32, + StartPos: 733, + EndPos: 736, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 32, + EndLine: 32, + StartPos: 733, + EndPos: 736, + }, + Value: "var", + }, + }, + Dim: &scalar.String{ + Position: &position.Position{ + StartLine: 32, + EndLine: 32, + StartPos: 738, + EndPos: 777, + }, + Value: "1234567890123456789012345678901234567890", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 33, + EndLine: 33, + StartPos: 784, + EndPos: 800, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 33, + EndLine: 33, + StartPos: 784, + EndPos: 799, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 33, + EndLine: 33, + StartPos: 785, + EndPos: 789, + }, + Value: "test ", + }, + &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 33, + EndLine: 33, + StartPos: 790, + EndPos: 798, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 33, + EndLine: 33, + StartPos: 790, + EndPos: 793, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 33, + EndLine: 33, + StartPos: 790, + EndPos: 793, + }, + Value: "var", + }, + }, + Dim: &scalar.String{ + Position: &position.Position{ + StartLine: 33, + EndLine: 33, + StartPos: 795, + EndPos: 797, + }, + Value: "bar", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 34, + EndLine: 34, + StartPos: 804, + EndPos: 821, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 34, + EndLine: 34, + StartPos: 804, + EndPos: 820, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 34, + EndLine: 34, + StartPos: 805, + EndPos: 809, + }, + Value: "test ", + }, + &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 34, + EndLine: 34, + StartPos: 810, + EndPos: 819, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 34, + EndLine: 34, + StartPos: 810, + EndPos: 813, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 34, + EndLine: 34, + StartPos: 810, + EndPos: 813, + }, + Value: "var", + }, + }, + Dim: &expr.Variable{ + Position: &position.Position{ + StartLine: 34, + EndLine: 34, + StartPos: 815, + EndPos: 818, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 34, + EndLine: 34, + StartPos: 815, + EndPos: 818, + }, + Value: "bar", + }, + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 35, + EndLine: 35, + StartPos: 825, + EndPos: 836, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 35, + EndLine: 35, + StartPos: 825, + EndPos: 835, + }, + Parts: []node.Node{ + &expr.Variable{ + Position: &position.Position{ + StartLine: 35, + EndLine: 35, + StartPos: 826, + EndPos: 829, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 35, + EndLine: 35, + StartPos: 826, + EndPos: 829, + }, + Value: "foo", + }, + }, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 35, + EndLine: 35, + StartPos: 830, + EndPos: 830, + }, + Value: " ", + }, + &expr.Variable{ + Position: &position.Position{ + StartLine: 35, + EndLine: 35, + StartPos: 831, + EndPos: 834, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 35, + EndLine: 35, + StartPos: 831, + EndPos: 834, + }, + Value: "bar", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 36, + EndLine: 36, + StartPos: 840, + EndPos: 858, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 36, + EndLine: 36, + StartPos: 840, + EndPos: 857, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 36, + EndLine: 36, + StartPos: 841, + EndPos: 845, + }, + Value: "test ", + }, + &expr.PropertyFetch{ + Position: &position.Position{ + StartLine: 36, + EndLine: 36, + StartPos: 846, + EndPos: 854, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 36, + EndLine: 36, + StartPos: 846, + EndPos: 849, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 36, + EndLine: 36, + StartPos: 846, + EndPos: 849, + }, + Value: "foo", + }, + }, + Property: &node.Identifier{ + Position: &position.Position{ + StartLine: 36, + EndLine: 36, + StartPos: 852, + EndPos: 854, + }, + Value: "bar", + }, + }, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 36, + EndLine: 36, + StartPos: 855, + EndPos: 856, + }, + Value: "()", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 37, + EndLine: 37, + StartPos: 862, + EndPos: 875, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 37, + EndLine: 37, + StartPos: 862, + EndPos: 874, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 37, + EndLine: 37, + StartPos: 863, + EndPos: 867, + }, + Value: "test ", + }, + &expr.Variable{ + Position: &position.Position{ + StartLine: 37, + EndLine: 37, + StartPos: 868, + EndPos: 873, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 37, + EndLine: 37, + StartPos: 870, + EndPos: 872, + }, + Value: "foo", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 38, + EndLine: 38, + StartPos: 879, + EndPos: 895, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 38, + EndLine: 38, + StartPos: 879, + EndPos: 894, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 38, + EndLine: 38, + StartPos: 880, + EndPos: 884, + }, + Value: "test ", + }, + &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 38, + EndLine: 38, + StartPos: 885, + EndPos: 893, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 38, + EndLine: 38, + StartPos: 887, + EndPos: 889, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 38, + EndLine: 38, + StartPos: 887, + EndPos: 889, + }, + Value: "foo", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 38, + EndLine: 38, + StartPos: 891, + EndPos: 891, + }, + Value: "0", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 899, + EndPos: 919, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 899, + EndPos: 918, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 900, + EndPos: 904, + }, + Value: "test ", + }, + &expr.MethodCall{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 906, + EndPos: 916, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 906, + EndPos: 909, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 906, + EndPos: 909, + }, + Value: "foo", + }, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 912, + EndPos: 914, + }, + Value: "bar", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 915, + EndPos: 916, + }, + }, + }, + }, + }, + }, + &stmt.AltIf{ + Position: &position.Position{ + StartLine: 41, + EndLine: 42, + StartPos: 924, + EndPos: 941, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 41, + EndLine: 41, + StartPos: 928, + EndPos: 929, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 41, + EndLine: 41, + StartPos: 928, + EndPos: 929, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ + }, + }, + }, + &stmt.AltIf{ + Position: &position.Position{ + StartLine: 43, + EndLine: 45, + StartPos: 945, + EndPos: 977, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 43, + EndLine: 43, + StartPos: 949, + EndPos: 950, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 43, + EndLine: 43, + StartPos: 949, + EndPos: 950, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ + }, + }, + ElseIf: []node.Node{ + &stmt.AltElseIf{ + Position: &position.Position{ + StartLine: 44, + EndLine: -1, + StartPos: 957, + EndPos: -1, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 44, + EndLine: 44, + StartPos: 965, + EndPos: 966, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 44, + EndLine: 44, + StartPos: 965, + EndPos: 966, + }, + Value: "b", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ + }, + }, + }, + }, + }, + &stmt.AltIf{ + Position: &position.Position{ + StartLine: 46, + EndLine: 48, + StartPos: 981, + EndPos: 1006, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 46, + EndLine: 46, + StartPos: 985, + EndPos: 986, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 46, + EndLine: 46, + StartPos: 985, + EndPos: 986, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ + }, + }, + Else: &stmt.AltElse{ + Position: &position.Position{ + StartLine: 47, + EndLine: -1, + StartPos: 993, + EndPos: -1, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ + }, + }, + }, + }, + &stmt.AltIf{ + Position: &position.Position{ + StartLine: 49, + EndLine: 53, + StartPos: 1010, + EndPos: 1065, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 49, + EndLine: 49, + StartPos: 1014, + EndPos: 1015, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 49, + EndLine: 49, + StartPos: 1014, + EndPos: 1015, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ + }, + }, + ElseIf: []node.Node{ + &stmt.AltElseIf{ + Position: &position.Position{ + StartLine: 50, + EndLine: -1, + StartPos: 1022, + EndPos: -1, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 50, + EndLine: 50, + StartPos: 1030, + EndPos: 1031, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 50, + EndLine: 50, + StartPos: 1030, + EndPos: 1031, + }, + Value: "b", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ + }, + }, + }, + &stmt.AltElseIf{ + Position: &position.Position{ + StartLine: 51, + EndLine: -1, + StartPos: 1037, + EndPos: -1, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 51, + EndLine: 51, + StartPos: 1045, + EndPos: 1046, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 51, + EndLine: 51, + StartPos: 1045, + EndPos: 1046, + }, + Value: "c", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ + }, + }, + }, + }, + Else: &stmt.AltElse{ + Position: &position.Position{ + StartLine: 52, + EndLine: -1, + StartPos: 1052, + EndPos: -1, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ + }, }, }, }, &stmt.While{ - Cond: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 55, + EndLine: 55, + StartPos: 1070, + EndPos: 1089, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 55, + EndLine: 55, + StartPos: 1077, + EndPos: 1077, + }, + Value: "1", + }, Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 55, + EndLine: 55, + StartPos: 1080, + EndPos: 1089, + }, Stmts: []node.Node{ &stmt.Break{ - Expr: &scalar.Lnumber{Value: "2"}, + Position: &position.Position{ + StartLine: 55, + EndLine: 55, + StartPos: 1082, + EndPos: 1087, + }, + }, + }, + }, + }, + &stmt.While{ + Position: &position.Position{ + StartLine: 56, + EndLine: 56, + StartPos: 1093, + EndPos: 1114, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 56, + EndLine: 56, + StartPos: 1100, + EndPos: 1100, + }, + Value: "1", + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 56, + EndLine: 56, + StartPos: 1103, + EndPos: 1114, + }, + Stmts: []node.Node{ + &stmt.Break{ + Position: &position.Position{ + StartLine: 56, + EndLine: 56, + StartPos: 1105, + EndPos: 1112, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 56, + EndLine: 56, + StartPos: 1111, + EndPos: 1111, + }, + Value: "2", + }, }, }, }, }, &stmt.AltWhile{ - Cond: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 57, + EndLine: 57, + StartPos: 1118, + EndPos: 1148, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 57, + EndLine: 57, + StartPos: 1125, + EndPos: 1125, + }, + Value: "1", + }, Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 57, + EndLine: 57, + StartPos: 1130, + EndPos: 1138, + }, Stmts: []node.Node{ &stmt.Break{ - Expr: &scalar.Lnumber{Value: "3"}, + Position: &position.Position{ + StartLine: 57, + EndLine: 57, + StartPos: 1130, + EndPos: 1138, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 57, + EndLine: 57, + StartPos: 1136, + EndPos: 1136, + }, + Value: "3", + }, }, }, }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 58, + EndLine: 58, + StartPos: 1152, + EndPos: 1187, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 58, + EndLine: 58, + StartPos: 1158, + EndPos: 1160, + }, + Value: "foo", + }, Stmts: []node.Node{ &stmt.ClassConstList{ + Position: &position.Position{ + StartLine: 58, + EndLine: 58, + StartPos: 1163, + EndPos: 1185, + }, Consts: []node.Node{ &stmt.Constant{ + Position: &position.Position{ + StartLine: 58, + EndLine: 58, + StartPos: 1169, + EndPos: 1175, + }, PhpDocComment: "", - ConstantName: &node.Identifier{Value: "FOO"}, - Expr: &scalar.Lnumber{Value: "1"}, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 58, + EndLine: 58, + StartPos: 1169, + EndPos: 1171, + }, + Value: "FOO", + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 58, + EndLine: 58, + StartPos: 1175, + EndPos: 1175, + }, + Value: "1", + }, }, &stmt.Constant{ + Position: &position.Position{ + StartLine: 58, + EndLine: 58, + StartPos: 1178, + EndPos: 1184, + }, PhpDocComment: "", - ConstantName: &node.Identifier{Value: "BAR"}, - Expr: &scalar.Lnumber{Value: "2"}, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 58, + EndLine: 58, + StartPos: 1178, + EndPos: 1180, + }, + Value: "BAR", + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 58, + EndLine: 58, + StartPos: 1184, + EndPos: 1184, + }, + Value: "2", + }, }, }, }, }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 59, + EndLine: 59, + StartPos: 1191, + EndPos: 1220, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 59, + EndLine: 59, + StartPos: 1197, + EndPos: 1199, + }, + Value: "foo", + }, Stmts: []node.Node{ &stmt.ClassMethod{ + Position: &position.Position{ + StartLine: 59, + EndLine: 59, + StartPos: 1202, + EndPos: 1218, + }, + ReturnsRef: false, PhpDocComment: "", - MethodName: &node.Identifier{Value: "bar"}, + MethodName: &node.Identifier{ + Position: &position.Position{ + StartLine: 59, + EndLine: 59, + StartPos: 1211, + EndPos: 1213, + }, + Value: "bar", + }, Stmt: &stmt.StmtList{ - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 59, + EndLine: 59, + StartPos: 1217, + EndPos: 1218, + }, + Stmts: []node.Node{ + }, }, }, }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 60, + EndLine: 60, + StartPos: 1224, + EndPos: 1268, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 60, + EndLine: 60, + StartPos: 1230, + EndPos: 1232, + }, + Value: "foo", + }, Stmts: []node.Node{ &stmt.ClassMethod{ + Position: &position.Position{ + StartLine: 60, + EndLine: 60, + StartPos: 1235, + EndPos: 1266, + }, + ReturnsRef: true, PhpDocComment: "", - ReturnsRef: true, - MethodName: &node.Identifier{Value: "bar"}, + MethodName: &node.Identifier{ + Position: &position.Position{ + StartLine: 60, + EndLine: 60, + StartPos: 1259, + EndPos: 1261, + }, + Value: "bar", + }, Modifiers: []node.Node{ - &node.Identifier{Value: "public"}, - &node.Identifier{Value: "static"}, + &node.Identifier{ + Position: &position.Position{ + StartLine: 60, + EndLine: 60, + StartPos: 1235, + EndPos: 1240, + }, + Value: "public", + }, + &node.Identifier{ + Position: &position.Position{ + StartLine: 60, + EndLine: 60, + StartPos: 1242, + EndPos: 1247, + }, + Value: "static", + }, }, Stmt: &stmt.StmtList{ - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 60, + EndLine: 60, + StartPos: 1265, + EndPos: 1266, + }, + Stmts: []node.Node{ + }, }, }, }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 61, + EndLine: 61, + StartPos: 1272, + EndPos: 1343, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 61, + EndLine: 61, + StartPos: 1278, + EndPos: 1280, + }, + Value: "foo", + }, Stmts: []node.Node{ &stmt.ClassMethod{ + Position: &position.Position{ + StartLine: 61, + EndLine: 61, + StartPos: 1283, + EndPos: 1313, + }, + ReturnsRef: false, PhpDocComment: "", - ReturnsRef: false, - MethodName: &node.Identifier{Value: "bar"}, + MethodName: &node.Identifier{ + Position: &position.Position{ + StartLine: 61, + EndLine: 61, + StartPos: 1306, + EndPos: 1308, + }, + Value: "bar", + }, Modifiers: []node.Node{ - &node.Identifier{Value: "final"}, - &node.Identifier{Value: "private"}, + &node.Identifier{ + Position: &position.Position{ + StartLine: 61, + EndLine: 61, + StartPos: 1283, + EndPos: 1287, + }, + Value: "final", + }, + &node.Identifier{ + Position: &position.Position{ + StartLine: 61, + EndLine: 61, + StartPos: 1289, + EndPos: 1295, + }, + Value: "private", + }, }, Stmt: &stmt.StmtList{ - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 61, + EndLine: 61, + StartPos: 1312, + EndPos: 1313, + }, + Stmts: []node.Node{ + }, }, }, &stmt.ClassMethod{ + Position: &position.Position{ + StartLine: 61, + EndLine: 61, + StartPos: 1315, + EndPos: 1341, + }, + ReturnsRef: false, PhpDocComment: "", - ReturnsRef: false, - MethodName: &node.Identifier{Value: "baz"}, + MethodName: &node.Identifier{ + Position: &position.Position{ + StartLine: 61, + EndLine: 61, + StartPos: 1334, + EndPos: 1336, + }, + Value: "baz", + }, Modifiers: []node.Node{ - &node.Identifier{Value: "protected"}, + &node.Identifier{ + Position: &position.Position{ + StartLine: 61, + EndLine: 61, + StartPos: 1315, + EndPos: 1323, + }, + Value: "protected", + }, }, Stmt: &stmt.StmtList{ - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 61, + EndLine: 61, + StartPos: 1340, + EndPos: 1341, + }, + Stmts: []node.Node{ + }, }, }, }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 62, + EndLine: 62, + StartPos: 1347, + EndPos: 1399, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 62, + EndLine: 62, + StartPos: 1362, + EndPos: 1364, + }, + Value: "foo", + }, Modifiers: []node.Node{ - &node.Identifier{Value: "abstract"}, + &node.Identifier{ + Position: &position.Position{ + StartLine: 62, + EndLine: 62, + StartPos: 1347, + EndPos: 1354, + }, + Value: "abstract", + }, }, Stmts: []node.Node{ &stmt.ClassMethod{ - PhpDocComment: "", - ReturnsRef: false, - MethodName: &node.Identifier{Value: "bar"}, - Modifiers: []node.Node{ - &node.Identifier{Value: "abstract"}, - &node.Identifier{Value: "public"}, + Position: &position.Position{ + StartLine: 62, + EndLine: 62, + StartPos: 1367, + EndPos: 1397, + }, + ReturnsRef: false, + PhpDocComment: "", + MethodName: &node.Identifier{ + Position: &position.Position{ + StartLine: 62, + EndLine: 62, + StartPos: 1392, + EndPos: 1394, + }, + Value: "bar", + }, + Modifiers: []node.Node{ + &node.Identifier{ + Position: &position.Position{ + StartLine: 62, + EndLine: 62, + StartPos: 1367, + EndPos: 1374, + }, + Value: "abstract", + }, + &node.Identifier{ + Position: &position.Position{ + StartLine: 62, + EndLine: 62, + StartPos: 1376, + EndPos: 1381, + }, + Value: "public", + }, + }, + Stmt: &stmt.Nop{ + Position: &position.Position{ + StartLine: 62, + EndLine: 62, + StartPos: 1397, + EndPos: 1397, + }, }, - Stmt: &stmt.Nop{}, }, }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 63, + EndLine: 63, + StartPos: 1403, + EndPos: 1433, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 63, + EndLine: 63, + StartPos: 1415, + EndPos: 1417, + }, + Value: "foo", + }, Modifiers: []node.Node{ - &node.Identifier{Value: "final"}, + &node.Identifier{ + Position: &position.Position{ + StartLine: 63, + EndLine: 63, + StartPos: 1403, + EndPos: 1407, + }, + Value: "final", + }, }, Extends: &stmt.ClassExtends{ + Position: &position.Position{ + StartLine: 63, + EndLine: 63, + StartPos: 1419, + EndPos: 1429, + }, ClassName: &name.Name{ + Position: &position.Position{ + StartLine: 63, + EndLine: 63, + StartPos: 1427, + EndPos: 1429, + }, Parts: []node.Node{ - &name.NamePart{Value: "bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 63, + EndLine: 63, + StartPos: 1427, + EndPos: 1429, + }, + Value: "bar", + }, }, }, }, - Stmts: []node.Node{}, + Stmts: []node.Node{ + }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 64, + EndLine: 64, + StartPos: 1437, + EndPos: 1470, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 64, + EndLine: 64, + StartPos: 1449, + EndPos: 1451, + }, + Value: "foo", + }, Modifiers: []node.Node{ - &node.Identifier{Value: "final"}, + &node.Identifier{ + Position: &position.Position{ + StartLine: 64, + EndLine: 64, + StartPos: 1437, + EndPos: 1441, + }, + Value: "final", + }, }, Implements: &stmt.ClassImplements{ + Position: &position.Position{ + StartLine: 64, + EndLine: 64, + StartPos: 1453, + EndPos: 1466, + }, InterfaceNames: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 64, + EndLine: 64, + StartPos: 1464, + EndPos: 1466, + }, Parts: []node.Node{ - &name.NamePart{Value: "bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 64, + EndLine: 64, + StartPos: 1464, + EndPos: 1466, + }, + Value: "bar", + }, }, }, }, }, - Stmts: []node.Node{}, + Stmts: []node.Node{ + }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 65, + EndLine: 65, + StartPos: 1474, + EndPos: 1512, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 65, + EndLine: 65, + StartPos: 1486, + EndPos: 1488, + }, + Value: "foo", + }, Modifiers: []node.Node{ - &node.Identifier{Value: "final"}, + &node.Identifier{ + Position: &position.Position{ + StartLine: 65, + EndLine: 65, + StartPos: 1474, + EndPos: 1478, + }, + Value: "final", + }, }, Implements: &stmt.ClassImplements{ + Position: &position.Position{ + StartLine: 65, + EndLine: 65, + StartPos: 1490, + EndPos: 1508, + }, InterfaceNames: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 65, + EndLine: 65, + StartPos: 1501, + EndPos: 1503, + }, Parts: []node.Node{ - &name.NamePart{Value: "bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 65, + EndLine: 65, + StartPos: 1501, + EndPos: 1503, + }, + Value: "bar", + }, }, }, &name.Name{ + Position: &position.Position{ + StartLine: 65, + EndLine: 65, + StartPos: 1506, + EndPos: 1508, + }, Parts: []node.Node{ - &name.NamePart{Value: "baz"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 65, + EndLine: 65, + StartPos: 1506, + EndPos: 1508, + }, + Value: "baz", + }, }, }, }, }, - Stmts: []node.Node{}, + Stmts: []node.Node{ + }, }, &stmt.ConstList{ + Position: &position.Position{ + StartLine: 67, + EndLine: 67, + StartPos: 1517, + EndPos: 1539, + }, Consts: []node.Node{ &stmt.Constant{ + Position: &position.Position{ + StartLine: 67, + EndLine: 67, + StartPos: 1523, + EndPos: 1529, + }, PhpDocComment: "", - ConstantName: &node.Identifier{Value: "FOO"}, - Expr: &scalar.Lnumber{Value: "1"}, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 67, + EndLine: 67, + StartPos: 1523, + EndPos: 1525, + }, + Value: "FOO", + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 67, + EndLine: 67, + StartPos: 1529, + EndPos: 1529, + }, + Value: "1", + }, }, &stmt.Constant{ + Position: &position.Position{ + StartLine: 67, + EndLine: 67, + StartPos: 1532, + EndPos: 1538, + }, PhpDocComment: "", - ConstantName: &node.Identifier{Value: "BAR"}, - Expr: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - &stmt.While{ - Cond: &scalar.Lnumber{Value: "1"}, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Continue{Expr: nil}, - }, - }, - }, - &stmt.While{ - Cond: &scalar.Lnumber{Value: "1"}, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Continue{ - Expr: &scalar.Lnumber{Value: "2"}, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 67, + EndLine: 67, + StartPos: 1532, + EndPos: 1534, + }, + Value: "BAR", + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 67, + EndLine: 67, + StartPos: 1538, + EndPos: 1538, + }, + Value: "2", }, }, }, }, &stmt.While{ - Cond: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 68, + EndLine: 68, + StartPos: 1543, + EndPos: 1565, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 68, + EndLine: 68, + StartPos: 1550, + EndPos: 1550, + }, + Value: "1", + }, Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 68, + EndLine: 68, + StartPos: 1553, + EndPos: 1565, + }, Stmts: []node.Node{ &stmt.Continue{ - Expr: &scalar.Lnumber{Value: "3"}, + Position: &position.Position{ + StartLine: 68, + EndLine: 68, + StartPos: 1555, + EndPos: 1563, + }, + }, + }, + }, + }, + &stmt.While{ + Position: &position.Position{ + StartLine: 69, + EndLine: 69, + StartPos: 1569, + EndPos: 1593, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 69, + EndLine: 69, + StartPos: 1576, + EndPos: 1576, + }, + Value: "1", + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 69, + EndLine: 69, + StartPos: 1579, + EndPos: 1593, + }, + Stmts: []node.Node{ + &stmt.Continue{ + Position: &position.Position{ + StartLine: 69, + EndLine: 69, + StartPos: 1581, + EndPos: 1591, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 69, + EndLine: 69, + StartPos: 1590, + EndPos: 1590, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.While{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1597, + EndPos: 1622, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1604, + EndPos: 1604, + }, + Value: "1", + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1607, + EndPos: 1622, + }, + Stmts: []node.Node{ + &stmt.Continue{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1609, + EndPos: 1620, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1618, + EndPos: 1618, + }, + Value: "3", + }, }, }, }, }, &stmt.Declare{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1626, + EndPos: 1642, + }, Consts: []node.Node{ &stmt.Constant{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1634, + EndPos: 1640, + }, PhpDocComment: "", - ConstantName: &node.Identifier{Value: "ticks"}, - Expr: &scalar.Lnumber{Value: "1"}, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1634, + EndPos: 1638, + }, + Value: "ticks", + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1640, + EndPos: 1640, + }, + Value: "1", + }, }, }, - Stmt: &stmt.Nop{}, - }, - &stmt.Declare{ - Consts: []node.Node{ - &stmt.Constant{ - PhpDocComment: "", - ConstantName: &node.Identifier{Value: "ticks"}, - Expr: &scalar.Lnumber{Value: "1"}, + Stmt: &stmt.Nop{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1642, + EndPos: 1642, }, - &stmt.Constant{ - PhpDocComment: "", - ConstantName: &node.Identifier{Value: "strict_types"}, - Expr: &scalar.Lnumber{Value: "1"}, - }, - }, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{}, }, }, &stmt.Declare{ + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1646, + EndPos: 1680, + }, Consts: []node.Node{ &stmt.Constant{ + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1654, + EndPos: 1660, + }, PhpDocComment: "", - ConstantName: &node.Identifier{Value: "ticks"}, - Expr: &scalar.Lnumber{Value: "1"}, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1654, + EndPos: 1658, + }, + Value: "ticks", + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1660, + EndPos: 1660, + }, + Value: "1", + }, + }, + &stmt.Constant{ + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1663, + EndPos: 1676, + }, + PhpDocComment: "", + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1663, + EndPos: 1674, + }, + Value: "strict_types", + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1676, + EndPos: 1676, + }, + Value: "1", + }, }, }, Stmt: &stmt.StmtList{ - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1679, + EndPos: 1680, + }, + Stmts: []node.Node{ + }, + }, + }, + &stmt.Declare{ + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1684, + EndPos: 1712, + }, + Consts: []node.Node{ + &stmt.Constant{ + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1692, + EndPos: 1698, + }, + PhpDocComment: "", + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1692, + EndPos: 1696, + }, + Value: "ticks", + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1698, + EndPos: 1698, + }, + Value: "1", + }, + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1700, + EndPos: 1712, + }, + Stmts: []node.Node{ + }, }, }, &stmt.Do{ + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1716, + EndPos: 1730, + }, Stmt: &stmt.StmtList{ - Stmts: []node.Node{}, - }, - Cond: &scalar.Lnumber{Value: "1"}, - }, - &stmt.Echo{ - Exprs: []node.Node{ - &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1719, + EndPos: 1720, }, - &scalar.Lnumber{Value: "1"}, + Stmts: []node.Node{ + }, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1728, + EndPos: 1728, + }, + Value: "1", }, }, &stmt.Echo{ + Position: &position.Position{ + StartLine: 75, + EndLine: 75, + StartPos: 1734, + EndPos: 1744, + }, Exprs: []node.Node{ &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + Position: &position.Position{ + StartLine: 75, + EndLine: 75, + StartPos: 1739, + EndPos: 1740, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 75, + EndLine: 75, + StartPos: 1739, + EndPos: 1740, + }, + Value: "a", + }, + }, + &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 75, + EndLine: 75, + StartPos: 1743, + EndPos: 1743, + }, + Value: "1", + }, + }, + }, + &stmt.Echo{ + Position: &position.Position{ + StartLine: 76, + EndLine: 76, + StartPos: 1748, + EndPos: 1756, + }, + Exprs: []node.Node{ + &expr.Variable{ + Position: &position.Position{ + StartLine: 76, + EndLine: 76, + StartPos: 1753, + EndPos: 1754, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 76, + EndLine: 76, + StartPos: 1753, + EndPos: 1754, + }, + Value: "a", + }, }, }, }, &stmt.For{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1760, + EndPos: 1794, + }, Init: []node.Node{ &assign.Assign{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "i"}}, - Expression: &scalar.Lnumber{Value: "0"}, - }, - }, - Cond: []node.Node{ - &binary.Smaller{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "i"}}, - Right: &scalar.Lnumber{Value: "10"}, - }, - }, - Loop: []node.Node{ - &expr.PostInc{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "i"}}, - }, - &expr.PostInc{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "i"}}, - }, - }, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - &stmt.AltFor{ - Cond: []node.Node{ - &binary.Smaller{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "i"}}, - Right: &scalar.Lnumber{Value: "10"}, - }, - }, - Loop: []node.Node{ - &expr.PostInc{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "i"}}, - }, - }, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - &stmt.Foreach{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "v"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - &stmt.Foreach{ - Expr: &expr.ShortArray{Items: []node.Node{}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "v"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - &stmt.AltForeach{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "v"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - &stmt.Foreach{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Key: &expr.Variable{VarName: &node.Identifier{Value: "k"}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "v"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - &stmt.Foreach{ - Expr: &expr.ShortArray{Items: []node.Node{}}, - Key: &expr.Variable{VarName: &node.Identifier{Value: "k"}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "v"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - &stmt.Foreach{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Key: &expr.Variable{VarName: &node.Identifier{Value: "k"}}, - Variable: &expr.Reference{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "v"}}, - }, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - &stmt.Foreach{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Key: &expr.Variable{VarName: &node.Identifier{Value: "k"}}, - Variable: &expr.List{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "v"}}, + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1764, + EndPos: 1769, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1764, + EndPos: 1765, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1764, + EndPos: 1765, + }, + Value: "i", + }, + }, + Expression: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1769, + EndPos: 1769, + }, + Value: "0", }, }, }, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - &stmt.Function{ - ReturnsRef: false, - PhpDocComment: "", - FunctionName: &node.Identifier{Value: "foo"}, - Stmts: []node.Node{}, - }, - &stmt.Function{ - ReturnsRef: false, - PhpDocComment: "", - FunctionName: &node.Identifier{Value: "foo"}, - Stmts: []node.Node{ - &stmt.HaltCompiler{}, - &stmt.Function{ - ReturnsRef: false, - PhpDocComment: "", - FunctionName: &node.Identifier{Value: "bar"}, - Stmts: []node.Node{}, + Cond: []node.Node{ + &binary.Smaller{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1772, + EndPos: 1778, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1772, + EndPos: 1773, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1772, + EndPos: 1773, + }, + Value: "i", + }, + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1777, + EndPos: 1778, + }, + Value: "10", + }, }, - &stmt.Class{ - PhpDocComment: "", - ClassName: &node.Identifier{Value: "Baz"}, - Stmts: []node.Node{}, + }, + Loop: []node.Node{ + &expr.PostInc{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1781, + EndPos: 1784, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1781, + EndPos: 1782, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1781, + EndPos: 1782, + }, + Value: "i", + }, + }, }, - &stmt.Return{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + &expr.PostInc{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1787, + EndPos: 1790, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1787, + EndPos: 1788, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1787, + EndPos: 1788, + }, + Value: "i", + }, + }, + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1793, + EndPos: 1794, + }, + Stmts: []node.Node{ }, }, }, - &stmt.Function{ - ReturnsRef: false, - PhpDocComment: "", - FunctionName: &node.Identifier{Value: "foo"}, - Params: []node.Node{ - &node.Parameter{ - ByRef: false, - Variadic: false, - VariableType: &node.Identifier{Value: "array"}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - &node.Parameter{ - ByRef: false, - Variadic: false, - VariableType: &node.Identifier{Value: "callable"}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + &stmt.AltFor{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1798, + EndPos: 1827, + }, + Cond: []node.Node{ + &binary.Smaller{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1804, + EndPos: 1810, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1804, + EndPos: 1805, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1804, + EndPos: 1805, + }, + Value: "i", + }, + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1809, + EndPos: 1810, + }, + Value: "10", + }, }, }, - Stmts: []node.Node{ - &stmt.Return{}, + Loop: []node.Node{ + &expr.PostInc{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1813, + EndPos: 1816, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1813, + EndPos: 1814, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1813, + EndPos: 1814, + }, + Value: "i", + }, + }, + }, }, - }, - &stmt.Function{ - ReturnsRef: true, - PhpDocComment: "", - FunctionName: &node.Identifier{Value: "foo"}, - Stmts: []node.Node{ - &stmt.Return{ - Expr: &scalar.Lnumber{Value: "1"}, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ }, }, }, - &stmt.Function{ - ReturnsRef: true, - PhpDocComment: "", - FunctionName: &node.Identifier{Value: "foo"}, - Stmts: []node.Node{}, + &stmt.Foreach{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1831, + EndPos: 1851, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1840, + EndPos: 1841, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1840, + EndPos: 1841, + }, + Value: "a", + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1846, + EndPos: 1847, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1846, + EndPos: 1847, + }, + Value: "v", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1850, + EndPos: 1851, + }, + Stmts: []node.Node{ + }, + }, }, - &stmt.Global{ - Vars: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - &expr.Variable{VarName: &expr.Variable{VarName: &node.Identifier{Value: "c"}}}, - &expr.Variable{ - VarName: &expr.FunctionCall{ - Function: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "foo"}, + &stmt.Foreach{ + Position: &position.Position{ + StartLine: 80, + EndLine: 80, + StartPos: 1855, + EndPos: 1875, + }, + Expr: &expr.ShortArray{ + Position: &position.Position{ + StartLine: 80, + EndLine: 80, + StartPos: 1864, + EndPos: 1865, + }, + Items: []node.Node{ + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 80, + EndLine: 80, + StartPos: 1870, + EndPos: 1871, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 80, + EndLine: 80, + StartPos: 1870, + EndPos: 1871, + }, + Value: "v", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 80, + EndLine: 80, + StartPos: 1874, + EndPos: 1875, + }, + Stmts: []node.Node{ + }, + }, + }, + &stmt.AltForeach{ + Position: &position.Position{ + StartLine: 81, + EndLine: 81, + StartPos: 1879, + EndPos: 1910, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 81, + EndLine: 81, + StartPos: 1888, + EndPos: 1889, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 81, + EndLine: 81, + StartPos: 1888, + EndPos: 1889, + }, + Value: "a", + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 81, + EndLine: 81, + StartPos: 1894, + EndPos: 1895, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 81, + EndLine: 81, + StartPos: 1894, + EndPos: 1895, + }, + Value: "v", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ + }, + }, + }, + &stmt.Foreach{ + Position: &position.Position{ + StartLine: 82, + EndLine: 82, + StartPos: 1914, + EndPos: 1940, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 82, + EndLine: 82, + StartPos: 1923, + EndPos: 1924, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 82, + EndLine: 82, + StartPos: 1923, + EndPos: 1924, + }, + Value: "a", + }, + }, + Key: &expr.Variable{ + Position: &position.Position{ + StartLine: 82, + EndLine: 82, + StartPos: 1929, + EndPos: 1930, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 82, + EndLine: 82, + StartPos: 1929, + EndPos: 1930, + }, + Value: "k", + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 82, + EndLine: 82, + StartPos: 1935, + EndPos: 1936, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 82, + EndLine: 82, + StartPos: 1935, + EndPos: 1936, + }, + Value: "v", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 82, + EndLine: 82, + StartPos: 1939, + EndPos: 1940, + }, + Stmts: []node.Node{ + }, + }, + }, + &stmt.Foreach{ + Position: &position.Position{ + StartLine: 83, + EndLine: 83, + StartPos: 1944, + EndPos: 1970, + }, + Expr: &expr.ShortArray{ + Position: &position.Position{ + StartLine: 83, + EndLine: 83, + StartPos: 1953, + EndPos: 1954, + }, + Items: []node.Node{ + }, + }, + Key: &expr.Variable{ + Position: &position.Position{ + StartLine: 83, + EndLine: 83, + StartPos: 1959, + EndPos: 1960, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 83, + EndLine: 83, + StartPos: 1959, + EndPos: 1960, + }, + Value: "k", + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 83, + EndLine: 83, + StartPos: 1965, + EndPos: 1966, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 83, + EndLine: 83, + StartPos: 1965, + EndPos: 1966, + }, + Value: "v", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 83, + EndLine: 83, + StartPos: 1969, + EndPos: 1970, + }, + Stmts: []node.Node{ + }, + }, + }, + &stmt.Foreach{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1974, + EndPos: 2001, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1983, + EndPos: 1984, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1983, + EndPos: 1984, + }, + Value: "a", + }, + }, + Key: &expr.Variable{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1989, + EndPos: 1990, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1989, + EndPos: 1990, + }, + Value: "k", + }, + }, + Variable: &expr.Reference{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1995, + EndPos: 1997, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1996, + EndPos: 1997, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1996, + EndPos: 1997, + }, + Value: "v", + }, + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 2000, + EndPos: 2001, + }, + Stmts: []node.Node{ + }, + }, + }, + &stmt.Foreach{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 2005, + EndPos: 2037, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 2014, + EndPos: 2015, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 2014, + EndPos: 2015, + }, + Value: "a", + }, + }, + Key: &expr.Variable{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 2020, + EndPos: 2021, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 2020, + EndPos: 2021, + }, + Value: "k", + }, + }, + Variable: &expr.List{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 2026, + EndPos: 2033, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 2031, + EndPos: 2032, + }, + Val: &expr.Variable{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 2031, + EndPos: 2032, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 2031, + EndPos: 2032, + }, + Value: "v", + }, + }, + }, + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 2036, + EndPos: 2037, + }, + Stmts: []node.Node{ + }, + }, + }, + &stmt.Function{ + Position: &position.Position{ + StartLine: 86, + EndLine: 86, + StartPos: 2041, + EndPos: 2057, + }, + ReturnsRef: false, + PhpDocComment: "", + FunctionName: &node.Identifier{ + Position: &position.Position{ + StartLine: 86, + EndLine: 86, + StartPos: 2050, + EndPos: 2052, + }, + Value: "foo", + }, + Stmts: []node.Node{ + }, + }, + &stmt.Function{ + Position: &position.Position{ + StartLine: 88, + EndLine: 93, + StartPos: 2062, + EndPos: 2154, + }, + ReturnsRef: false, + PhpDocComment: "", + FunctionName: &node.Identifier{ + Position: &position.Position{ + StartLine: 88, + EndLine: 88, + StartPos: 2071, + EndPos: 2073, + }, + Value: "foo", + }, + Stmts: []node.Node{ + &stmt.HaltCompiler{ + Position: &position.Position{ + StartLine: 89, + EndLine: 89, + StartPos: 2082, + EndPos: 2099, + }, + }, + &stmt.Function{ + Position: &position.Position{ + StartLine: 90, + EndLine: 90, + StartPos: 2104, + EndPos: 2120, + }, + ReturnsRef: false, + PhpDocComment: "", + FunctionName: &node.Identifier{ + Position: &position.Position{ + StartLine: 90, + EndLine: 90, + StartPos: 2113, + EndPos: 2115, + }, + Value: "bar", + }, + Stmts: []node.Node{ + }, + }, + &stmt.Class{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2125, + EndPos: 2136, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2131, + EndPos: 2133, + }, + Value: "Baz", + }, + Stmts: []node.Node{ + }, + }, + &stmt.Return{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2141, + EndPos: 2150, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2148, + EndPos: 2149, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2148, + EndPos: 2149, + }, + Value: "a", + }, + }, + }, + }, + }, + &stmt.Function{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2161, + EndPos: 2205, + }, + PhpDocComment: "", + ReturnsRef: false, + FunctionName: &node.Identifier{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2170, + EndPos: 2172, + }, + Value: "foo", + }, + Params: []node.Node{ + &node.Parameter{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2174, + EndPos: 2181, + }, + ByRef: false, + Variadic: false, + VariableType: &node.Identifier{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2174, + EndPos: 2178, + }, + Value: "array", + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2180, + EndPos: 2181, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2180, + EndPos: 2181, + }, + Value: "a", + }, + }, + }, + &node.Parameter{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2184, + EndPos: 2194, + }, + ByRef: false, + Variadic: false, + VariableType: &node.Identifier{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2184, + EndPos: 2191, + }, + Value: "callable", + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2193, + EndPos: 2194, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2193, + EndPos: 2194, + }, + Value: "b", + }, + }, + }, + }, + Stmts: []node.Node{ + &stmt.Return{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2198, + EndPos: 2204, + }, + }, + }, + }, + &stmt.Function{ + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2209, + EndPos: 2235, + }, + ReturnsRef: true, + PhpDocComment: "", + FunctionName: &node.Identifier{ + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2219, + EndPos: 2221, + }, + Value: "foo", + }, + Stmts: []node.Node{ + &stmt.Return{ + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2226, + EndPos: 2234, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2233, + EndPos: 2233, + }, + Value: "1", + }, + }, + }, + }, + &stmt.Function{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2239, + EndPos: 2256, + }, + ReturnsRef: true, + PhpDocComment: "", + FunctionName: &node.Identifier{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2249, + EndPos: 2251, + }, + Value: "foo", + }, + Stmts: []node.Node{ + }, + }, + &stmt.Global{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2260, + EndPos: 2288, + }, + Vars: []node.Node{ + &expr.Variable{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2267, + EndPos: 2268, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2267, + EndPos: 2268, + }, + Value: "a", + }, + }, + &expr.Variable{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2271, + EndPos: 2272, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2271, + EndPos: 2272, + }, + Value: "b", + }, + }, + &expr.Variable{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2275, + EndPos: 2277, + }, + VarName: &expr.Variable{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2276, + EndPos: 2277, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2276, + EndPos: 2277, + }, + Value: "c", + }, + }, + }, + &expr.Variable{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2280, + EndPos: 2287, + }, + VarName: &expr.FunctionCall{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2282, + EndPos: 2286, + }, + Function: &name.Name{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2282, + EndPos: 2284, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2282, + EndPos: 2284, + }, + Value: "foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2285, + EndPos: 2286, }, }, - ArgumentList: &node.ArgumentList{}, }, }, }, }, &stmt.Label{ - LabelName: &node.Identifier{Value: "a"}, + Position: &position.Position{ + StartLine: 99, + EndLine: 99, + StartPos: 2292, + EndPos: 2293, + }, + LabelName: &node.Identifier{ + Position: &position.Position{ + StartLine: 99, + EndLine: 99, + StartPos: 2292, + EndPos: 2292, + }, + Value: "a", + }, }, &stmt.Goto{ - Label: &node.Identifier{Value: "a"}, + Position: &position.Position{ + StartLine: 100, + EndLine: 100, + StartPos: 2298, + EndPos: 2304, + }, + Label: &node.Identifier{ + Position: &position.Position{ + StartLine: 100, + EndLine: 100, + StartPos: 2303, + EndPos: 2303, + }, + Value: "a", + }, }, - &stmt.HaltCompiler{}, - &stmt.If{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + &stmt.HaltCompiler{ + Position: &position.Position{ + StartLine: 101, + EndLine: 101, + StartPos: 2308, + EndPos: 2325, + }, }, &stmt.If{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - ElseIf: []node.Node{ - &stmt.ElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 102, + EndLine: 102, + StartPos: 2329, + EndPos: 2338, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 102, + EndLine: 102, + StartPos: 2333, + EndPos: 2334, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 102, + EndLine: 102, + StartPos: 2333, + EndPos: 2334, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 102, + EndLine: 102, + StartPos: 2337, + EndPos: 2338, + }, + Stmts: []node.Node{ }, }, }, &stmt.If{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - Else: &stmt.Else{ - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2342, + EndPos: 2366, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2346, + EndPos: 2347, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2346, + EndPos: 2347, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2350, + EndPos: 2351, + }, + Stmts: []node.Node{ + }, + }, + ElseIf: []node.Node{ + &stmt.ElseIf{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2353, + EndPos: 2366, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2361, + EndPos: 2362, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2361, + EndPos: 2362, + }, + Value: "b", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2365, + EndPos: 2366, + }, + Stmts: []node.Node{ + }, + }, + }, }, }, &stmt.If{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - ElseIf: []node.Node{ - &stmt.ElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 104, + EndLine: 104, + StartPos: 2370, + EndPos: 2387, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 104, + EndLine: 104, + StartPos: 2374, + EndPos: 2375, }, - &stmt.ElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 104, + EndLine: 104, + StartPos: 2374, + EndPos: 2375, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 104, + EndLine: 104, + StartPos: 2378, + EndPos: 2379, + }, + Stmts: []node.Node{ }, }, Else: &stmt.Else{ - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 104, + EndLine: 104, + StartPos: 2381, + EndPos: 2387, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 104, + EndLine: 104, + StartPos: 2386, + EndPos: 2387, + }, + Stmts: []node.Node{ + }, + }, }, }, &stmt.If{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 105, + EndLine: 105, + StartPos: 2391, + EndPos: 2438, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 105, + EndLine: 105, + StartPos: 2395, + EndPos: 2396, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 105, + EndLine: 105, + StartPos: 2395, + EndPos: 2396, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 105, + EndLine: 105, + StartPos: 2399, + EndPos: 2400, + }, + Stmts: []node.Node{ + }, + }, ElseIf: []node.Node{ &stmt.ElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 105, + EndLine: 105, + StartPos: 2402, + EndPos: 2415, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 105, + EndLine: 105, + StartPos: 2410, + EndPos: 2411, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 105, + EndLine: 105, + StartPos: 2410, + EndPos: 2411, + }, + Value: "b", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 105, + EndLine: 105, + StartPos: 2414, + EndPos: 2415, + }, + Stmts: []node.Node{ + }, + }, + }, + &stmt.ElseIf{ + Position: &position.Position{ + StartLine: 105, + EndLine: 105, + StartPos: 2417, + EndPos: 2430, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 105, + EndLine: 105, + StartPos: 2425, + EndPos: 2426, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 105, + EndLine: 105, + StartPos: 2425, + EndPos: 2426, + }, + Value: "c", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 105, + EndLine: 105, + StartPos: 2429, + EndPos: 2430, + }, + Stmts: []node.Node{ + }, + }, }, }, Else: &stmt.Else{ + Position: &position.Position{ + StartLine: 105, + EndLine: 105, + StartPos: 2432, + EndPos: 2438, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 105, + EndLine: 105, + StartPos: 2437, + EndPos: 2438, + }, + Stmts: []node.Node{ + }, + }, + }, + }, + &stmt.If{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2442, + EndPos: 2490, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2446, + EndPos: 2447, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2446, + EndPos: 2447, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2450, + EndPos: 2451, + }, + Stmts: []node.Node{ + }, + }, + ElseIf: []node.Node{ + &stmt.ElseIf{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2453, + EndPos: 2466, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2461, + EndPos: 2462, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2461, + EndPos: 2462, + }, + Value: "b", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2465, + EndPos: 2466, + }, + Stmts: []node.Node{ + }, + }, + }, + }, + Else: &stmt.Else{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2468, + EndPos: 2490, + }, Stmt: &stmt.If{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2473, + EndPos: 2490, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2477, + EndPos: 2478, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2477, + EndPos: 2478, + }, + Value: "c", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2481, + EndPos: 2482, + }, + Stmts: []node.Node{ + }, + }, Else: &stmt.Else{ - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2484, + EndPos: 2490, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2489, + EndPos: 2490, + }, + Stmts: []node.Node{ + }, + }, }, }, }, }, - &stmt.Nop{}, - &stmt.InlineHtml{Value: "
"}, - &stmt.Interface{ - PhpDocComment: "", - InterfaceName: &node.Identifier{Value: "Foo"}, - Stmts: []node.Node{}, + &stmt.Nop{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2494, + EndPos: 2495, + }, + }, + &stmt.InlineHtml{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2497, + EndPos: 2508, + }, + Value: "
", }, &stmt.Interface{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2514, + EndPos: 2529, + }, PhpDocComment: "", - InterfaceName: &node.Identifier{Value: "Foo"}, + InterfaceName: &node.Identifier{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2524, + EndPos: 2526, + }, + Value: "Foo", + }, + Stmts: []node.Node{ + }, + }, + &stmt.Interface{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2533, + EndPos: 2560, + }, + PhpDocComment: "", + InterfaceName: &node.Identifier{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2543, + EndPos: 2545, + }, + Value: "Foo", + }, Extends: &stmt.InterfaceExtends{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2547, + EndPos: 2557, + }, InterfaceNames: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2555, + EndPos: 2557, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2555, + EndPos: 2557, + }, + Value: "Bar", + }, }, }, }, }, - Stmts: []node.Node{}, + Stmts: []node.Node{ + }, }, &stmt.Interface{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2564, + EndPos: 2596, + }, PhpDocComment: "", - InterfaceName: &node.Identifier{Value: "Foo"}, + InterfaceName: &node.Identifier{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2574, + EndPos: 2576, + }, + Value: "Foo", + }, Extends: &stmt.InterfaceExtends{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2578, + EndPos: 2593, + }, InterfaceNames: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2586, + EndPos: 2588, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2586, + EndPos: 2588, + }, + Value: "Bar", + }, }, }, &name.Name{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2591, + EndPos: 2593, + }, Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2591, + EndPos: 2593, + }, + Value: "Baz", + }, }, }, }, }, - Stmts: []node.Node{}, + Stmts: []node.Node{ + }, }, &stmt.Namespace{ + Position: &position.Position{ + StartLine: 111, + EndLine: 111, + StartPos: 2600, + EndPos: 2613, + }, NamespaceName: &name.Name{ + Position: &position.Position{ + StartLine: 111, + EndLine: 111, + StartPos: 2610, + EndPos: 2612, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 111, + EndLine: 111, + StartPos: 2610, + EndPos: 2612, + }, + Value: "Foo", + }, }, }, }, &stmt.Namespace{ + Position: &position.Position{ + StartLine: 112, + EndLine: 112, + StartPos: 2617, + EndPos: 2636, + }, NamespaceName: &name.Name{ + Position: &position.Position{ + StartLine: 112, + EndLine: 112, + StartPos: 2627, + EndPos: 2633, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 112, + EndLine: 112, + StartPos: 2627, + EndPos: 2629, + }, + Value: "Foo", + }, + &name.NamePart{ + Position: &position.Position{ + StartLine: 112, + EndLine: 112, + StartPos: 2631, + EndPos: 2633, + }, + Value: "Bar", + }, }, }, - Stmts: []node.Node{}, + Stmts: []node.Node{ + }, }, &stmt.Namespace{ - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2640, + EndPos: 2651, + }, + Stmts: []node.Node{ + }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2655, + EndPos: 2673, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2661, + EndPos: 2663, + }, + Value: "foo", + }, Stmts: []node.Node{ &stmt.PropertyList{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2666, + EndPos: 2672, + }, Modifiers: []node.Node{ - &node.Identifier{Value: "var"}, + &node.Identifier{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2666, + EndPos: 2668, + }, + Value: "var", + }, }, Properties: []node.Node{ &stmt.Property{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2670, + EndPos: 2671, + }, PhpDocComment: "", - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2670, + EndPos: 2671, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2670, + EndPos: 2671, + }, + Value: "a", + }, + }, }, }, }, }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2677, + EndPos: 2713, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2683, + EndPos: 2685, + }, + Value: "foo", + }, Stmts: []node.Node{ &stmt.PropertyList{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2688, + EndPos: 2712, + }, Modifiers: []node.Node{ - &node.Identifier{Value: "public"}, - &node.Identifier{Value: "static"}, + &node.Identifier{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2688, + EndPos: 2693, + }, + Value: "public", + }, + &node.Identifier{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2695, + EndPos: 2700, + }, + Value: "static", + }, }, Properties: []node.Node{ &stmt.Property{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2702, + EndPos: 2703, + }, PhpDocComment: "", - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2702, + EndPos: 2703, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2702, + EndPos: 2703, + }, + Value: "a", + }, + }, }, &stmt.Property{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2706, + EndPos: 2711, + }, PhpDocComment: "", - Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - Expr: &scalar.Lnumber{Value: "1"}, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2706, + EndPos: 2707, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2706, + EndPos: 2707, + }, + Value: "b", + }, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2711, + EndPos: 2711, + }, + Value: "1", + }, }, }, }, }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2717, + EndPos: 2753, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2723, + EndPos: 2725, + }, + Value: "foo", + }, Stmts: []node.Node{ &stmt.PropertyList{ + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2728, + EndPos: 2752, + }, Modifiers: []node.Node{ - &node.Identifier{Value: "public"}, - &node.Identifier{Value: "static"}, + &node.Identifier{ + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2728, + EndPos: 2733, + }, + Value: "public", + }, + &node.Identifier{ + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2735, + EndPos: 2740, + }, + Value: "static", + }, }, Properties: []node.Node{ &stmt.Property{ + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2742, + EndPos: 2747, + }, PhpDocComment: "", - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &scalar.Lnumber{Value: "1"}, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2742, + EndPos: 2743, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2742, + EndPos: 2743, + }, + Value: "a", + }, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2747, + EndPos: 2747, + }, + Value: "1", + }, }, &stmt.Property{ + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2750, + EndPos: 2751, + }, PhpDocComment: "", - Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2750, + EndPos: 2751, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2750, + EndPos: 2751, + }, + Value: "b", + }, + }, }, }, }, }, }, &stmt.Static{ + Position: &position.Position{ + StartLine: 117, + EndLine: 117, + StartPos: 2757, + EndPos: 2774, + }, Vars: []node.Node{ &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 117, + EndLine: 117, + StartPos: 2764, + EndPos: 2765, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 117, + EndLine: 117, + StartPos: 2764, + EndPos: 2765, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 117, + EndLine: 117, + StartPos: 2764, + EndPos: 2765, + }, + Value: "a", + }, + }, }, &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - Expr: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 117, + EndLine: 117, + StartPos: 2768, + EndPos: 2773, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 117, + EndLine: 117, + StartPos: 2768, + EndPos: 2769, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 117, + EndLine: 117, + StartPos: 2768, + EndPos: 2769, + }, + Value: "b", + }, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 117, + EndLine: 117, + StartPos: 2773, + EndPos: 2773, + }, + Value: "1", + }, }, }, }, &stmt.Static{ + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2778, + EndPos: 2795, + }, Vars: []node.Node{ &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2785, + EndPos: 2790, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2785, + EndPos: 2786, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2785, + EndPos: 2786, + }, + Value: "a", + }, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2790, + EndPos: 2790, + }, + Value: "1", + }, }, &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2793, + EndPos: 2794, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2793, + EndPos: 2794, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2793, + EndPos: 2794, + }, + Value: "b", + }, + }, }, }, }, &stmt.AltSwitch{ - Cond: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 120, + EndLine: 124, + StartPos: 2800, + EndPos: 2858, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 120, + EndLine: 120, + StartPos: 2808, + EndPos: 2808, + }, + Value: "1", + }, CaseList: &stmt.CaseList{ + Position: &position.Position{ + StartLine: 121, + EndLine: -1, + StartPos: 2816, + EndPos: -1, + }, Cases: []node.Node{ &stmt.Case{ - Cond: &scalar.Lnumber{Value: "1"}, - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 121, + EndLine: -1, + StartPos: 2816, + EndPos: -1, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 121, + EndLine: 121, + StartPos: 2821, + EndPos: 2821, + }, + Value: "1", + }, + Stmts: []node.Node{ + }, }, &stmt.Default{ - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 122, + EndLine: -1, + StartPos: 2827, + EndPos: -1, + }, + Stmts: []node.Node{ + }, }, &stmt.Case{ - Cond: &scalar.Lnumber{Value: "2"}, - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 123, + EndLine: -1, + StartPos: 2839, + EndPos: -1, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 123, + EndLine: 123, + StartPos: 2844, + EndPos: 2844, + }, + Value: "2", + }, + Stmts: []node.Node{ + }, }, }, }, }, &stmt.AltSwitch{ - Cond: &scalar.Lnumber{Value: "1"}, - CaseList: &stmt.CaseList{ - Cases: []node.Node{ - &stmt.Case{ - Cond: &scalar.Lnumber{Value: "1"}, - Stmts: []node.Node{}, - }, - &stmt.Case{ - Cond: &scalar.Lnumber{Value: "2"}, - Stmts: []node.Node{}, - }, - }, + Position: &position.Position{ + StartLine: 126, + EndLine: 129, + StartPos: 2863, + EndPos: 2910, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 126, + EndLine: 126, + StartPos: 2871, + EndPos: 2871, + }, + Value: "1", }, - }, - &stmt.Switch{ - Cond: &scalar.Lnumber{Value: "1"}, CaseList: &stmt.CaseList{ + Position: &position.Position{ + StartLine: 127, + EndLine: -1, + StartPos: 2880, + EndPos: -1, + }, Cases: []node.Node{ &stmt.Case{ - Cond: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 127, + EndLine: -1, + StartPos: 2880, + EndPos: -1, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 127, + EndLine: 127, + StartPos: 2885, + EndPos: 2885, + }, + Value: "1", + }, Stmts: []node.Node{ - &stmt.Break{}, }, }, &stmt.Case{ - Cond: &scalar.Lnumber{Value: "2"}, + Position: &position.Position{ + StartLine: 128, + EndLine: -1, + StartPos: 2891, + EndPos: -1, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 128, + EndLine: 128, + StartPos: 2896, + EndPos: 2896, + }, + Value: "2", + }, Stmts: []node.Node{ - &stmt.Break{}, }, }, }, }, }, &stmt.Switch{ - Cond: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 131, + EndLine: 134, + StartPos: 2917, + EndPos: 2968, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 131, + EndLine: 131, + StartPos: 2925, + EndPos: 2925, + }, + Value: "1", + }, CaseList: &stmt.CaseList{ + Position: &position.Position{ + StartLine: 131, + EndLine: 134, + StartPos: 2928, + EndPos: 2968, + }, Cases: []node.Node{ &stmt.Case{ - Cond: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 132, + EndLine: 132, + StartPos: 2933, + EndPos: 2946, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 132, + EndLine: 132, + StartPos: 2938, + EndPos: 2938, + }, + Value: "1", + }, Stmts: []node.Node{ - &stmt.Break{}, + &stmt.Break{ + Position: &position.Position{ + StartLine: 132, + EndLine: 132, + StartPos: 2941, + EndPos: 2946, + }, + }, }, }, &stmt.Case{ - Cond: &scalar.Lnumber{Value: "2"}, + Position: &position.Position{ + StartLine: 133, + EndLine: 133, + StartPos: 2951, + EndPos: 2964, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 133, + EndLine: 133, + StartPos: 2956, + EndPos: 2956, + }, + Value: "2", + }, Stmts: []node.Node{ - &stmt.Break{}, + &stmt.Break{ + Position: &position.Position{ + StartLine: 133, + EndLine: 133, + StartPos: 2959, + EndPos: 2964, + }, + }, + }, + }, + }, + }, + }, + &stmt.Switch{ + Position: &position.Position{ + StartLine: 136, + EndLine: 139, + StartPos: 2975, + EndPos: 3027, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 136, + EndLine: 136, + StartPos: 2983, + EndPos: 2983, + }, + Value: "1", + }, + CaseList: &stmt.CaseList{ + Position: &position.Position{ + StartLine: 136, + EndLine: 139, + StartPos: 2986, + EndPos: 3027, + }, + Cases: []node.Node{ + &stmt.Case{ + Position: &position.Position{ + StartLine: 137, + EndLine: 137, + StartPos: 2992, + EndPos: 3005, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 137, + EndLine: 137, + StartPos: 2997, + EndPos: 2997, + }, + Value: "1", + }, + Stmts: []node.Node{ + &stmt.Break{ + Position: &position.Position{ + StartLine: 137, + EndLine: 137, + StartPos: 3000, + EndPos: 3005, + }, + }, + }, + }, + &stmt.Case{ + Position: &position.Position{ + StartLine: 138, + EndLine: 138, + StartPos: 3010, + EndPos: 3023, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 138, + EndLine: 138, + StartPos: 3015, + EndPos: 3015, + }, + Value: "2", + }, + Stmts: []node.Node{ + &stmt.Break{ + Position: &position.Position{ + StartLine: 138, + EndLine: 138, + StartPos: 3018, + EndPos: 3023, + }, + }, }, }, }, }, }, &stmt.Throw{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "e"}}, + Position: &position.Position{ + StartLine: 140, + EndLine: 140, + StartPos: 3031, + EndPos: 3039, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 140, + EndLine: 140, + StartPos: 3037, + EndPos: 3038, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 140, + EndLine: 140, + StartPos: 3037, + EndPos: 3038, + }, + Value: "e", + }, + }, }, &stmt.Trait{ + Position: &position.Position{ + StartLine: 141, + EndLine: 141, + StartPos: 3043, + EndPos: 3054, + }, PhpDocComment: "", - TraitName: &node.Identifier{Value: "Foo"}, - Stmts: []node.Node{}, + TraitName: &node.Identifier{ + Position: &position.Position{ + StartLine: 141, + EndLine: 141, + StartPos: 3049, + EndPos: 3051, + }, + Value: "Foo", + }, + Stmts: []node.Node{ + }, }, &stmt.Class{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3058, + EndPos: 3079, + }, PhpDocComment: "", - ClassName: &node.Identifier{Value: "Foo"}, + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3064, + EndPos: 3066, + }, + Value: "Foo", + }, Stmts: []node.Node{ &stmt.TraitUse{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3070, + EndPos: 3077, + }, Traits: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3074, + EndPos: 3076, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3074, + EndPos: 3076, + }, + Value: "Bar", + }, }, }, }, @@ -1465,50 +6507,187 @@ func TestPhp5(t *testing.T) { }, }, &stmt.Class{ - PhpDocComment: "", - ClassName: &node.Identifier{Value: "Foo"}, - Stmts: []node.Node{ - &stmt.TraitUse{ - Traits: []node.Node{ - &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, - }, - }, - &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, - }, - }, - }, - TraitAdaptationList: &stmt.TraitAdaptationList{}, - }, + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3083, + EndPos: 3111, }, - }, - &stmt.Class{ PhpDocComment: "", - ClassName: &node.Identifier{Value: "Foo"}, + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3089, + EndPos: 3091, + }, + Value: "Foo", + }, Stmts: []node.Node{ &stmt.TraitUse{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3095, + EndPos: 3109, + }, Traits: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3099, + EndPos: 3101, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3099, + EndPos: 3101, + }, + Value: "Bar", + }, }, }, &name.Name{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3104, + EndPos: 3106, + }, Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3104, + EndPos: 3106, + }, + Value: "Baz", + }, }, }, }, TraitAdaptationList: &stmt.TraitAdaptationList{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3108, + EndPos: 3109, + }, + }, + }, + }, + }, + &stmt.Class{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3115, + EndPos: 3159, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3121, + EndPos: 3123, + }, + Value: "Foo", + }, + Stmts: []node.Node{ + &stmt.TraitUse{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3127, + EndPos: 3157, + }, + Traits: []node.Node{ + &name.Name{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3131, + EndPos: 3133, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3131, + EndPos: 3133, + }, + Value: "Bar", + }, + }, + }, + &name.Name{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3136, + EndPos: 3138, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3136, + EndPos: 3138, + }, + Value: "Baz", + }, + }, + }, + }, + TraitAdaptationList: &stmt.TraitAdaptationList{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3140, + EndPos: 3157, + }, Adaptations: []node.Node{ &stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Method: &node.Identifier{Value: "one"}, + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3142, + EndPos: 3154, + }, + Ref: &stmt.TraitMethodRef{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3142, + EndPos: 3144, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3142, + EndPos: 3144, + }, + Value: "one", + }, + }, + Modifier: &node.Identifier{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3149, + EndPos: 3154, + }, + Value: "public", }, - Modifier: &node.Identifier{Value: "public"}, }, }, }, @@ -1516,30 +6695,120 @@ func TestPhp5(t *testing.T) { }, }, &stmt.Class{ + Position: &position.Position{ + StartLine: 145, + EndLine: 145, + StartPos: 3163, + EndPos: 3211, + }, PhpDocComment: "", - ClassName: &node.Identifier{Value: "Foo"}, + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 145, + EndLine: 145, + StartPos: 3169, + EndPos: 3171, + }, + Value: "Foo", + }, Stmts: []node.Node{ &stmt.TraitUse{ + Position: &position.Position{ + StartLine: 145, + EndLine: 145, + StartPos: 3175, + EndPos: 3209, + }, Traits: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 145, + EndLine: 145, + StartPos: 3179, + EndPos: 3181, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 145, + EndLine: 145, + StartPos: 3179, + EndPos: 3181, + }, + Value: "Bar", + }, }, }, &name.Name{ + Position: &position.Position{ + StartLine: 145, + EndLine: 145, + StartPos: 3184, + EndPos: 3186, + }, Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 145, + EndLine: 145, + StartPos: 3184, + EndPos: 3186, + }, + Value: "Baz", + }, }, }, }, TraitAdaptationList: &stmt.TraitAdaptationList{ + Position: &position.Position{ + StartLine: 145, + EndLine: 145, + StartPos: 3188, + EndPos: 3209, + }, Adaptations: []node.Node{ &stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Method: &node.Identifier{Value: "one"}, + Position: &position.Position{ + StartLine: 145, + EndLine: 145, + StartPos: 3190, + EndPos: 3206, + }, + Ref: &stmt.TraitMethodRef{ + Position: &position.Position{ + StartLine: 145, + EndLine: 145, + StartPos: 3190, + EndPos: 3192, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 145, + EndLine: 145, + StartPos: 3190, + EndPos: 3192, + }, + Value: "one", + }, + }, + Modifier: &node.Identifier{ + Position: &position.Position{ + StartLine: 145, + EndLine: 145, + StartPos: 3197, + EndPos: 3202, + }, + Value: "public", + }, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 145, + EndLine: 145, + StartPos: 3204, + EndPos: 3206, + }, + Value: "two", }, - Modifier: &node.Identifier{Value: "public"}, - Alias: &node.Identifier{Value: "two"}, }, }, }, @@ -1547,2010 +6816,10911 @@ func TestPhp5(t *testing.T) { }, }, &stmt.Class{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3215, + EndPos: 3291, + }, PhpDocComment: "", - ClassName: &node.Identifier{Value: "Foo"}, + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3221, + EndPos: 3223, + }, + Value: "Foo", + }, Stmts: []node.Node{ &stmt.TraitUse{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3227, + EndPos: 3289, + }, Traits: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3231, + EndPos: 3233, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3231, + EndPos: 3233, + }, + Value: "Bar", + }, }, }, &name.Name{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3236, + EndPos: 3238, + }, Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3236, + EndPos: 3238, + }, + Value: "Baz", + }, }, }, }, TraitAdaptationList: &stmt.TraitAdaptationList{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3240, + EndPos: 3289, + }, Adaptations: []node.Node{ &stmt.TraitUsePrecedence{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3242, + EndPos: 3269, + }, Ref: &stmt.TraitMethodRef{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3242, + EndPos: 3249, + }, Trait: &name.Name{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3242, + EndPos: 3244, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3242, + EndPos: 3244, + }, + Value: "Bar", + }, }, }, - Method: &node.Identifier{Value: "one"}, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3247, + EndPos: 3249, + }, + Value: "one", + }, }, Insteadof: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3261, + EndPos: 3263, + }, Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3261, + EndPos: 3263, + }, + Value: "Baz", + }, }, }, &name.Name{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3266, + EndPos: 3269, + }, Parts: []node.Node{ - &name.NamePart{Value: "Quux"}, - }, - }, - }, - }, - &stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Trait: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, - }, - }, - Method: &node.Identifier{Value: "one"}, - }, - Alias: &node.Identifier{Value: "two"}, - }, - }, - }, - }, - }, - }, - &stmt.Try{ - Stmts: []node.Node{}, - Catches: []node.Node{}, - }, - &stmt.Try{ - Stmts: []node.Node{}, - Catches: []node.Node{ - &stmt.Catch{ - Types: []node.Node{ - &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Exception"}, - }, - }, - }, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "e"}, - }, - Stmts: []node.Node{}, - }, - }, - }, - &stmt.Try{ - Stmts: []node.Node{}, - Catches: []node.Node{ - &stmt.Catch{ - Types: []node.Node{ - &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Exception"}, - }, - }, - }, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "e"}, - }, - Stmts: []node.Node{}, - }, - &stmt.Catch{ - Types: []node.Node{ - &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "RuntimeException"}, - }, - }, - }, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "e"}, - }, - Stmts: []node.Node{}, - }, - }, - }, - &stmt.Try{ - Stmts: []node.Node{}, - Catches: []node.Node{ - &stmt.Catch{ - Types: []node.Node{ - &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Exception"}, - }, - }, - }, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "e"}, - }, - Stmts: []node.Node{}, - }, - &stmt.Catch{ - Types: []node.Node{ - &name.FullyQualified{ - Parts: []node.Node{ - &name.NamePart{Value: "RuntimeException"}, - }, - }, - }, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "e"}, - }, - Stmts: []node.Node{}, - }, - &stmt.Catch{ - Types: []node.Node{ - &name.Relative{ - Parts: []node.Node{ - &name.NamePart{Value: "AdditionException"}, - }, - }, - }, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "e"}, - }, - Stmts: []node.Node{}, - }, - }, - }, - &stmt.Try{ - Stmts: []node.Node{}, - Catches: []node.Node{ - &stmt.Catch{ - Types: []node.Node{ - &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Exception"}, - }, - }, - }, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "e"}, - }, - Stmts: []node.Node{}, - }, - }, - Finally: &stmt.Finally{ - Stmts: []node.Node{}, - }, - }, - &stmt.Unset{ - Vars: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.UseList{ - Uses: []node.Node{ - &stmt.Use{ - Use: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - }, - }, - }, - &stmt.UseList{ - Uses: []node.Node{ - &stmt.Use{ - Use: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - }, - }, - }, - &stmt.UseList{ - Uses: []node.Node{ - &stmt.Use{ - Use: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - Alias: &node.Identifier{Value: "Bar"}, - }, - }, - }, - &stmt.UseList{ - Uses: []node.Node{ - &stmt.Use{ - Use: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - }, - &stmt.Use{ - Use: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, - }, - }, - }, - }, - }, - &stmt.UseList{ - Uses: []node.Node{ - &stmt.Use{ - Use: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - }, - &stmt.Use{ - Use: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, - }, - }, - Alias: &node.Identifier{Value: "Baz"}, - }, - }, - }, - &stmt.UseList{ - UseType: &node.Identifier{Value: "function"}, - Uses: []node.Node{ - &stmt.Use{ - Use: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - }, - &stmt.Use{ - Use: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, - }, - }, - }, - }, - }, - &stmt.UseList{ - UseType: &node.Identifier{Value: "function"}, - Uses: []node.Node{ - &stmt.Use{ - Use: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - Alias: &node.Identifier{Value: "foo"}, - }, - &stmt.Use{ - Use: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, - }, - }, - Alias: &node.Identifier{Value: "bar"}, - }, - }, - }, - &stmt.UseList{ - UseType: &node.Identifier{Value: "const"}, - Uses: []node.Node{ - &stmt.Use{ - Use: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - }, - &stmt.Use{ - Use: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, - }, - }, - }, - }, - }, - &stmt.UseList{ - UseType: &node.Identifier{Value: "const"}, - Uses: []node.Node{ - &stmt.Use{ - Use: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - Alias: &node.Identifier{Value: "foo"}, - }, - &stmt.Use{ - Use: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, - }, - }, - Alias: &node.Identifier{Value: "bar"}, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Dim: &scalar.Lnumber{Value: "1"}, - }, - }, - &stmt.Expression{ - Expr: &expr.ArrayDimFetch{ - Variable: &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Dim: &scalar.Lnumber{Value: "1"}, - }, - Dim: &scalar.Lnumber{Value: "2"}, - }, - }, - &stmt.Expression{ - Expr: &expr.Array{ - Items: []node.Node{}, - }, - }, - &stmt.Expression{ - Expr: &expr.Array{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &scalar.Lnumber{Value: "1"}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.Array{ - Items: []node.Node{ - &expr.ArrayItem{ - Key: &scalar.Lnumber{Value: "1"}, - Val: &scalar.Lnumber{Value: "1"}, - }, - &expr.ArrayItem{ - Val: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.Array{ - Items: []node.Node{ - &expr.ArrayItem{ - Key: &scalar.Lnumber{Value: "3"}, - Val: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.Array{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, - }, - &expr.ArrayItem{ - Key: &scalar.Lnumber{Value: "1"}, - Val: &scalar.Lnumber{Value: "1"}, - }, - &expr.ArrayItem{ - Val: &scalar.Lnumber{Value: "1"}, - }, - &expr.ArrayItem{ - Key: &scalar.Lnumber{Value: "3"}, - Val: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.BitwiseNot{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.BooleanNot{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.ClassConstFetch{ - Class: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - ConstantName: &node.Identifier{Value: "Bar"}, - }, - }, - &stmt.Expression{ - Expr: &expr.Clone{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Clone{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Closure{ - ReturnsRef: false, - Static: false, - PhpDocComment: "", - Stmts: []node.Node{}, - }, - }, - &stmt.Expression{ - Expr: &expr.Closure{ - ReturnsRef: false, - Static: false, - PhpDocComment: "", - Params: []node.Node{ - &node.Parameter{ - ByRef: false, - Variadic: false, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - &node.Parameter{ - ByRef: false, - Variadic: false, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - ClosureUse: &expr.ClosureUse{ - Uses: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "d"}}}, - }, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.Expression{ - Expr: &expr.Closure{ - ReturnsRef: false, - Static: false, - PhpDocComment: "", - Params: []node.Node{ - &node.Parameter{ - ByRef: false, - Variadic: false, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - &node.Parameter{ - ByRef: false, - Variadic: false, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - ClosureUse: &expr.ClosureUse{ - Uses: []node.Node{ - &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "c"}}}, - &expr.Variable{VarName: &node.Identifier{Value: "d"}}, - }, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.Expression{ - Expr: &expr.Closure{ - ReturnsRef: false, - Static: false, - PhpDocComment: "", - Stmts: []node.Node{}, - }, - }, - &stmt.Expression{ - Expr: &expr.ConstFetch{ - Constant: &name.Name{Parts: []node.Node{&name.NamePart{Value: "foo"}}}, - }, - }, - &stmt.Expression{ - Expr: &expr.ConstFetch{ - Constant: &name.Relative{Parts: []node.Node{&name.NamePart{Value: "foo"}}}, - }, - }, - &stmt.Expression{ - Expr: &expr.ConstFetch{ - Constant: &name.FullyQualified{Parts: []node.Node{&name.NamePart{Value: "foo"}}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Empty{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Empty{ - Expr: &expr.ConstFetch{ - Constant: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.ErrorSuppress{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Eval{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Exit{}, - }, - &stmt.Expression{ - Expr: &expr.Exit{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Die{}, - }, - &stmt.Expression{ - Expr: &expr.Die{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.FunctionCall{ - Function: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "foo"}, - }, - }, - ArgumentList: &node.ArgumentList{}, - }, - }, - &stmt.Expression{ - Expr: &expr.FunctionCall{ - Function: &name.Relative{ - Parts: []node.Node{ - &name.NamePart{Value: "foo"}, - }, - }, - ArgumentList: &node.ArgumentList{ - Arguments: []node.Node{ - &node.Argument{ - Variadic: false, - IsReference: true, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.FunctionCall{ - Function: &name.FullyQualified{ - Parts: []node.Node{ - &name.NamePart{Value: "foo"}, - }, - }, - ArgumentList: &node.ArgumentList{ - Arguments: []node.Node{ - &node.Argument{ - Variadic: false, - IsReference: false, - Expr: &expr.ShortArray{ - Items: []node.Node{}, - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.FunctionCall{ - Function: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - ArgumentList: &node.ArgumentList{ - Arguments: []node.Node{ - &node.Argument{ - Variadic: false, - IsReference: false, - Expr: &expr.Yield{ - Value: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.PostDec{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.PostInc{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.PreDec{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.PreInc{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Include{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.IncludeOnce{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Require{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.RequireOnce{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.InstanceOf{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Class: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.InstanceOf{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Class: &name.Relative{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.InstanceOf{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Class: &name.FullyQualified{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.Isset{ - Variables: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.Isset{ - Variables: []node.Node{ - &expr.ConstFetch{ - Constant: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &assign.Assign{ - Variable: &expr.List{ - Items: []node.Node{}, - }, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &assign.Assign{ - Variable: &expr.List{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - }, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &assign.Assign{ - Variable: &expr.List{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - }, - }, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &assign.Assign{ - Variable: &expr.List{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &expr.List{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - }, - }, - }, - }, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.MethodCall{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Method: &node.Identifier{Value: "foo"}, - ArgumentList: &node.ArgumentList{}, - }, - }, - &stmt.Expression{ - Expr: &expr.New{ - Class: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.New{ - Class: &name.Relative{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - ArgumentList: &node.ArgumentList{}, - }, - }, - &stmt.Expression{ - Expr: &expr.New{ - Class: &name.FullyQualified{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - ArgumentList: &node.ArgumentList{}, - }, - }, - &stmt.Expression{ - Expr: &expr.Print{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.PropertyFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Property: &node.Identifier{Value: "foo"}, - }, - }, - &stmt.Expression{ - Expr: &expr.ArrayDimFetch{ - Variable: &expr.PropertyFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Property: &node.Identifier{Value: "foo"}, - }, - Dim: &scalar.Lnumber{Value: "1"}, - }, - }, - &stmt.Expression{ - Expr: &expr.ArrayDimFetch{ - Variable: &expr.PropertyFetch{ - Variable: &expr.MethodCall{ - Variable: &expr.PropertyFetch{ - Variable: &expr.PropertyFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Property: &node.Identifier{Value: "foo"}, - }, - Property: &node.Identifier{Value: "bar"}, - }, - Method: &node.Identifier{Value: "baz"}, - ArgumentList: &node.ArgumentList{}, - }, - Property: &node.Identifier{Value: "quux"}, - }, - Dim: &scalar.Lnumber{Value: "0"}, - }, - }, - &stmt.Expression{ - Expr: &expr.ArrayDimFetch{ - Variable: &expr.ArrayDimFetch{ - Variable: &expr.MethodCall{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Method: &node.Identifier{Value: "foo"}, - ArgumentList: &node.ArgumentList{}, - }, - Dim: &scalar.Lnumber{Value: "1"}, - }, - Dim: &scalar.Lnumber{Value: "1"}, - }, - }, - &stmt.Expression{ - Expr: &expr.ShellExec{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "cmd "}, - &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.ShellExec{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "cmd"}, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.ShellExec{ - Parts: []node.Node{}, - }, - }, - &stmt.Expression{ - Expr: &expr.ShortArray{ - Items: []node.Node{}, - }, - }, - &stmt.Expression{ - Expr: &expr.ShortArray{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &scalar.Lnumber{Value: "1"}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.ShortArray{ - Items: []node.Node{ - &expr.ArrayItem{ - Key: &scalar.Lnumber{Value: "1"}, - Val: &scalar.Lnumber{Value: "1"}, - }, - &expr.ArrayItem{ - Val: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.StaticCall{ - Class: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - Call: &node.Identifier{Value: "bar"}, - ArgumentList: &node.ArgumentList{}, - }, - }, - &stmt.Expression{ - Expr: &expr.StaticCall{ - Class: &name.Relative{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - Call: &node.Identifier{Value: "bar"}, - ArgumentList: &node.ArgumentList{}, - }, - }, - &stmt.Expression{ - Expr: &expr.StaticCall{ - Class: &name.FullyQualified{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - Call: &node.Identifier{Value: "bar"}, - ArgumentList: &node.ArgumentList{}, - }, - }, - &stmt.Expression{ - Expr: &expr.StaticCall{ - Class: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - Call: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, - ArgumentList: &node.ArgumentList{}, - }, - }, - &stmt.Expression{ - Expr: &expr.StaticCall{ - Class: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Call: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, - ArgumentList: &node.ArgumentList{}, - }, - }, - &stmt.Expression{ - Expr: &expr.StaticPropertyFetch{ - Class: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - Property: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.StaticPropertyFetch{ - Class: &name.Relative{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - Property: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.StaticPropertyFetch{ - Class: &name.FullyQualified{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - Property: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Ternary{ - Condition: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - IfTrue: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - IfFalse: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Ternary{ - Condition: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - IfFalse: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Ternary{ - Condition: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - IfTrue: &expr.Ternary{ - Condition: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - IfTrue: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - IfFalse: &expr.Variable{VarName: &node.Identifier{Value: "d"}}, - }, - IfFalse: &expr.Variable{VarName: &node.Identifier{Value: "e"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Ternary{ - Condition: &expr.Ternary{ - Condition: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - IfTrue: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - IfFalse: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - }, - IfTrue: &expr.Variable{VarName: &node.Identifier{Value: "d"}}, - IfFalse: &expr.Variable{VarName: &node.Identifier{Value: "e"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.UnaryMinus{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.UnaryPlus{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Variable{VarName: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, - }, - &stmt.Expression{ - Expr: &expr.Variable{VarName: &expr.Variable{VarName: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}}, - }, - &stmt.Expression{ - Expr: &expr.Yield{}, - }, - &stmt.Expression{ - Expr: &expr.Yield{ - Value: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Yield{ - Key: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Value: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Yield{ - Value: &expr.ClassConstFetch{ - Class: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - ConstantName: &node.Identifier{Value: "class"}, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.Yield{ - Key: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Value: &expr.ClassConstFetch{ - Class: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - ConstantName: &node.Identifier{Value: "class"}, - }, - }, - }, - &stmt.Expression{ - Expr: &cast.Array{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &cast.Bool{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &cast.Bool{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &cast.Double{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &cast.Double{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &cast.Int{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &cast.Int{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &cast.Object{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &cast.String{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &cast.Unset{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.BitwiseAnd{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.BitwiseOr{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.BitwiseXor{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.BooleanAnd{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.BooleanOr{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Concat{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Div{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Equal{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.GreaterOrEqual{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Greater{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Identical{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.LogicalAnd{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.LogicalOr{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.LogicalXor{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Minus{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Mod{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Mul{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.NotEqual{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.NotIdentical{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Plus{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Pow{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.ShiftLeft{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.ShiftRight{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.SmallerOrEqual{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Smaller{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &assign.Reference{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &assign.Reference{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.New{ - Class: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &assign.Reference{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.New{ - Class: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - ArgumentList: &node.ArgumentList{ - Arguments: []node.Node{ - &node.Argument{ - Variadic: false, - IsReference: false, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &assign.Assign{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &assign.BitwiseAnd{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &assign.BitwiseOr{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &assign.BitwiseXor{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &assign.Concat{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &assign.Div{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &assign.Minus{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &assign.Mod{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &assign.Mul{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &assign.Plus{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &assign.Pow{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &assign.ShiftLeft{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &assign.ShiftRight{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.New{ - Class: &name.FullyQualified{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - ArgumentList: &node.ArgumentList{}, - }, - }, - &stmt.Expression{ - Expr: &expr.PropertyFetch{ - Variable: &expr.MethodCall{ - Variable: &expr.New{ - Class: &name.FullyQualified{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - ArgumentList: &node.ArgumentList{}, - }, - Method: &node.Identifier{Value: "bar"}, - ArgumentList: &node.ArgumentList{}, - }, - Property: &node.Identifier{Value: "baz"}, - }, - }, - &stmt.Expression{ - Expr: &expr.ArrayDimFetch{ - Variable: &expr.ArrayDimFetch{ - Variable: &expr.New{ - Class: &name.FullyQualified{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - ArgumentList: &node.ArgumentList{}, - }, - Dim: &scalar.Lnumber{Value: "0"}, - }, - Dim: &scalar.Lnumber{Value: "0"}, - }, - }, - &stmt.Expression{ - Expr: &expr.MethodCall{ - Variable: &expr.ArrayDimFetch{ - Variable: &expr.New{ - Class: &name.FullyQualified{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - ArgumentList: &node.ArgumentList{}, - }, - Dim: &scalar.Lnumber{Value: "0"}, - }, - Method: &node.Identifier{Value: "bar"}, - ArgumentList: &node.ArgumentList{}, - }, - }, - &stmt.Expression{ - Expr: &expr.ArrayDimFetch{ - Variable: &expr.ArrayDimFetch{ - Variable: &expr.Array{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &expr.ShortArray{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &scalar.Lnumber{Value: "0"}, - }, - }, - }, - }, - }, - }, - Dim: &scalar.Lnumber{Value: "0"}, - }, - Dim: &scalar.Lnumber{Value: "0"}, - }, - }, - &stmt.Expression{ - Expr: &expr.ArrayDimFetch{ - Variable: &scalar.String{Value: "\"foo\""}, - Dim: &scalar.Lnumber{Value: "0"}, - }, - }, - &stmt.Expression{ - Expr: &expr.ArrayDimFetch{ - Variable: &expr.ConstFetch{ - Constant: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "foo"}, - }, - }, - }, - Dim: &scalar.Lnumber{Value: "0"}, - }, - }, - &stmt.Expression{ - Expr: &expr.ClassConstFetch{ - Class: &node.Identifier{Value: "static"}, - ConstantName: &node.Identifier{Value: "foo"}, - }, - }, - &stmt.Expression{ - Expr: &expr.New{ - Class: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.New{ - Class: &expr.StaticPropertyFetch{ - Class: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Property: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.New{ - Class: &expr.ArrayDimFetch{ - Variable: &expr.PropertyFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Property: &node.Identifier{Value: "b"}, - }, - Dim: &scalar.Lnumber{Value: "0"}, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.New{ - Class: &expr.ArrayDimFetch{ - Variable: &expr.PropertyFetch{ - Variable: &expr.PropertyFetch{ - Variable: &expr.ArrayDimFetch{ - Variable: &expr.PropertyFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Property: &node.Identifier{Value: "b"}, - }, - Dim: &expr.Ternary{ - Condition: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - IfFalse: &expr.ConstFetch{ - Constant: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "null"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3266, + EndPos: 3269, + }, + Value: "Quux", }, }, }, }, }, - Property: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - }, - Property: &node.Identifier{Value: "d"}, - }, - Dim: &scalar.Lnumber{Value: "0"}, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &expr.ArrayDimFetch{ - Variable: &expr.ShortArray{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &scalar.Lnumber{Value: "1"}, + &stmt.TraitUseAlias{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3272, + EndPos: 3286, + }, + Ref: &stmt.TraitMethodRef{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3272, + EndPos: 3279, + }, + Trait: &name.Name{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3272, + EndPos: 3274, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3272, + EndPos: 3274, + }, + Value: "Baz", + }, + }, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3277, + EndPos: 3279, + }, + Value: "one", + }, + }, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3284, + EndPos: 3286, + }, + Value: "two", }, }, }, - Dim: &scalar.Lnumber{Value: "0"}, }, }, }, }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &expr.BooleanNot{ - Expr: &scalar.Lnumber{Value: "1"}, + &stmt.Try{ + Position: &position.Position{ + StartLine: 148, + EndLine: -1, + StartPos: 3296, + EndPos: -1, + }, + Stmts: []node.Node{ + }, + Catches: []node.Node{ + }, + }, + &stmt.Try{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3305, + EndPos: 3334, + }, + Stmts: []node.Node{ + }, + Catches: []node.Node{ + &stmt.Catch{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3312, + EndPos: 3334, }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &expr.BitwiseNot{ - Expr: &scalar.Lnumber{Value: "1"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &expr.UnaryPlus{ - Expr: &scalar.Lnumber{Value: "1"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &expr.UnaryMinus{ - Expr: &scalar.Lnumber{Value: "1"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &scalar.Lnumber{Value: "1"}, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &expr.Ternary{ - Condition: &scalar.Lnumber{Value: "1"}, - IfFalse: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &expr.Ternary{ - Condition: &scalar.Lnumber{Value: "1"}, - IfTrue: &scalar.Lnumber{Value: "2"}, - IfFalse: &scalar.Lnumber{Value: "3"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.BitwiseAnd{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.BitwiseOr{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.BitwiseXor{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.BooleanAnd{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.BooleanOr{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.Concat{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.Div{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.Equal{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.GreaterOrEqual{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.Greater{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.Identical{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.LogicalAnd{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.LogicalOr{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.LogicalXor{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.Minus{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.Mod{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.Mul{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.NotEqual{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.NotIdentical{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.Plus{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.Pow{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.ShiftLeft{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.ShiftRight{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.SmallerOrEqual{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &binary.Smaller{ - Left: &scalar.Lnumber{Value: "1"}, - Right: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &expr.ClassConstFetch{ - Class: &name.Name{ + Types: []node.Node{ + &name.Name{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3319, + EndPos: 3327, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3319, + EndPos: 3327, + }, + Value: "Exception", + }, }, }, - ConstantName: &node.Identifier{Value: "bar"}, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3329, + EndPos: 3330, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3329, + EndPos: 3330, + }, + Value: "e", + }, + }, + Stmts: []node.Node{ }, }, }, }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &expr.ClassConstFetch{ - Class: &name.Name{ + &stmt.Try{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3338, + EndPos: 3398, + }, + Stmts: []node.Node{ + }, + Catches: []node.Node{ + &stmt.Catch{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3345, + EndPos: 3367, + }, + Types: []node.Node{ + &name.Name{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3352, + EndPos: 3360, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3352, + EndPos: 3360, + }, + Value: "Exception", + }, }, }, - ConstantName: &node.Identifier{Value: "class"}, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3362, + EndPos: 3363, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3362, + EndPos: 3363, + }, + Value: "e", + }, + }, + Stmts: []node.Node{ + }, + }, + &stmt.Catch{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3369, + EndPos: 3398, + }, + Types: []node.Node{ + &name.Name{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3376, + EndPos: 3391, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3376, + EndPos: 3391, + }, + Value: "RuntimeException", + }, + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3393, + EndPos: 3394, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3393, + EndPos: 3394, + }, + Value: "e", + }, + }, + Stmts: []node.Node{ }, }, }, }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &scalar.MagicConstant{Value: "__CLASS__"}, + &stmt.Try{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3402, + EndPos: 3505, + }, + Stmts: []node.Node{ + }, + Catches: []node.Node{ + &stmt.Catch{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3409, + EndPos: 3431, + }, + Types: []node.Node{ + &name.Name{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3416, + EndPos: 3424, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3416, + EndPos: 3424, + }, + Value: "Exception", + }, + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3426, + EndPos: 3427, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3426, + EndPos: 3427, + }, + Value: "e", + }, + }, + Stmts: []node.Node{ + }, + }, + &stmt.Catch{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3433, + EndPos: 3463, + }, + Types: []node.Node{ + &name.FullyQualified{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3440, + EndPos: 3456, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3441, + EndPos: 3456, + }, + Value: "RuntimeException", + }, + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3458, + EndPos: 3459, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3458, + EndPos: 3459, + }, + Value: "e", + }, + }, + Stmts: []node.Node{ + }, + }, + &stmt.Catch{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3465, + EndPos: 3505, + }, + Types: []node.Node{ + &name.Relative{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3472, + EndPos: 3498, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3482, + EndPos: 3498, + }, + Value: "AdditionException", + }, + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3500, + EndPos: 3501, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3500, + EndPos: 3501, + }, + Value: "e", + }, + }, + Stmts: []node.Node{ + }, }, }, }, - &stmt.Static{ + &stmt.Try{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3509, + EndPos: 3549, + }, + Stmts: []node.Node{ + }, + Catches: []node.Node{ + &stmt.Catch{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3516, + EndPos: 3538, + }, + Types: []node.Node{ + &name.Name{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3523, + EndPos: 3531, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3523, + EndPos: 3531, + }, + Value: "Exception", + }, + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3533, + EndPos: 3534, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3533, + EndPos: 3534, + }, + Value: "e", + }, + }, + Stmts: []node.Node{ + }, + }, + }, + Finally: &stmt.Finally{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3540, + EndPos: 3549, + }, + Stmts: []node.Node{ + }, + }, + }, + &stmt.Unset{ + Position: &position.Position{ + StartLine: 154, + EndLine: 154, + StartPos: 3554, + EndPos: 3567, + }, Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &expr.ConstFetch{ + &expr.Variable{ + Position: &position.Position{ + StartLine: 154, + EndLine: 154, + StartPos: 3560, + EndPos: 3561, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 154, + EndLine: 154, + StartPos: 3560, + EndPos: 3561, + }, + Value: "a", + }, + }, + &expr.Variable{ + Position: &position.Position{ + StartLine: 154, + EndLine: 154, + StartPos: 3564, + EndPos: 3565, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 154, + EndLine: 154, + StartPos: 3564, + EndPos: 3565, + }, + Value: "b", + }, + }, + }, + }, + &stmt.UseList{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3572, + EndPos: 3579, + }, + Uses: []node.Node{ + &stmt.Use{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3576, + EndPos: 3578, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3576, + EndPos: 3578, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3576, + EndPos: 3578, + }, + Value: "Foo", + }, + }, + }, + }, + }, + }, + &stmt.UseList{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3583, + EndPos: 3591, + }, + Uses: []node.Node{ + &stmt.Use{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3588, + EndPos: 3590, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3588, + EndPos: 3590, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3588, + EndPos: 3590, + }, + Value: "Foo", + }, + }, + }, + }, + }, + }, + &stmt.UseList{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3595, + EndPos: 3610, + }, + Uses: []node.Node{ + &stmt.Use{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3600, + EndPos: 3609, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3600, + EndPos: 3602, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3600, + EndPos: 3602, + }, + Value: "Foo", + }, + }, + }, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3607, + EndPos: 3609, + }, + Value: "Bar", + }, + }, + }, + }, + &stmt.UseList{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3614, + EndPos: 3626, + }, + Uses: []node.Node{ + &stmt.Use{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3618, + EndPos: 3620, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3618, + EndPos: 3620, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3618, + EndPos: 3620, + }, + Value: "Foo", + }, + }, + }, + }, + &stmt.Use{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3623, + EndPos: 3625, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3623, + EndPos: 3625, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3623, + EndPos: 3625, + }, + Value: "Bar", + }, + }, + }, + }, + }, + }, + &stmt.UseList{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3630, + EndPos: 3649, + }, + Uses: []node.Node{ + &stmt.Use{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3634, + EndPos: 3636, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3634, + EndPos: 3636, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3634, + EndPos: 3636, + }, + Value: "Foo", + }, + }, + }, + }, + &stmt.Use{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3639, + EndPos: 3648, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3639, + EndPos: 3641, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3639, + EndPos: 3641, + }, + Value: "Bar", + }, + }, + }, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3646, + EndPos: 3648, + }, + Value: "Baz", + }, + }, + }, + }, + &stmt.UseList{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3653, + EndPos: 3675, + }, + UseType: &node.Identifier{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3657, + EndPos: 3664, + }, + Value: "function", + }, + Uses: []node.Node{ + &stmt.Use{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3666, + EndPos: 3668, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3666, + EndPos: 3668, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3666, + EndPos: 3668, + }, + Value: "Foo", + }, + }, + }, + }, + &stmt.Use{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3672, + EndPos: 3674, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3672, + EndPos: 3674, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3672, + EndPos: 3674, + }, + Value: "Bar", + }, + }, + }, + }, + }, + }, + &stmt.UseList{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3679, + EndPos: 3715, + }, + UseType: &node.Identifier{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3683, + EndPos: 3690, + }, + Value: "function", + }, + Uses: []node.Node{ + &stmt.Use{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3692, + EndPos: 3701, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3692, + EndPos: 3694, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3692, + EndPos: 3694, + }, + Value: "Foo", + }, + }, + }, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3699, + EndPos: 3701, + }, + Value: "foo", + }, + }, + &stmt.Use{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3705, + EndPos: 3714, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3705, + EndPos: 3707, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3705, + EndPos: 3707, + }, + Value: "Bar", + }, + }, + }, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3712, + EndPos: 3714, + }, + Value: "bar", + }, + }, + }, + }, + &stmt.UseList{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3719, + EndPos: 3738, + }, + UseType: &node.Identifier{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3723, + EndPos: 3727, + }, + Value: "const", + }, + Uses: []node.Node{ + &stmt.Use{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3729, + EndPos: 3731, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3729, + EndPos: 3731, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3729, + EndPos: 3731, + }, + Value: "Foo", + }, + }, + }, + }, + &stmt.Use{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3735, + EndPos: 3737, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3735, + EndPos: 3737, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3735, + EndPos: 3737, + }, + Value: "Bar", + }, + }, + }, + }, + }, + }, + &stmt.UseList{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3742, + EndPos: 3775, + }, + UseType: &node.Identifier{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3746, + EndPos: 3750, + }, + Value: "const", + }, + Uses: []node.Node{ + &stmt.Use{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3752, + EndPos: 3761, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3752, + EndPos: 3754, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3752, + EndPos: 3754, + }, + Value: "Foo", + }, + }, + }, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3759, + EndPos: 3761, + }, + Value: "foo", + }, + }, + &stmt.Use{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3765, + EndPos: 3774, + }, + Use: &name.Name{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3765, + EndPos: 3767, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3765, + EndPos: 3767, + }, + Value: "Bar", + }, + }, + }, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3772, + EndPos: 3774, + }, + Value: "bar", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3780, + EndPos: 3785, + }, + Expr: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3780, + EndPos: 3784, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3780, + EndPos: 3781, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3780, + EndPos: 3781, + }, + Value: "a", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3783, + EndPos: 3783, + }, + Value: "1", + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3789, + EndPos: 3797, + }, + Expr: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3789, + EndPos: 3796, + }, + Variable: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3789, + EndPos: 3793, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3789, + EndPos: 3790, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3789, + EndPos: 3790, + }, + Value: "a", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3792, + EndPos: 3792, + }, + Value: "1", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3795, + EndPos: 3795, + }, + Value: "2", + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3801, + EndPos: 3808, + }, + Expr: &expr.Array{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3801, + EndPos: 3807, + }, + Items: []node.Node{ + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3812, + EndPos: 3820, + }, + Expr: &expr.Array{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3812, + EndPos: 3819, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3818, + EndPos: 3818, + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3818, + EndPos: 3818, + }, + Value: "1", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3824, + EndPos: 3841, + }, + Expr: &expr.Array{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3824, + EndPos: 3840, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3830, + EndPos: 3833, + }, + Key: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3830, + EndPos: 3830, + }, + Value: "1", + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3833, + EndPos: 3833, + }, + Value: "1", + }, + }, + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3836, + EndPos: 3838, + }, + Val: &expr.Reference{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3836, + EndPos: 3838, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3837, + EndPos: 3838, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3837, + EndPos: 3838, + }, + Value: "b", + }, + }, + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3845, + EndPos: 3859, + }, + Expr: &expr.Array{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3845, + EndPos: 3858, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3851, + EndPos: 3857, + }, + Key: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3851, + EndPos: 3851, + }, + Value: "3", + }, + Val: &expr.Reference{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3855, + EndPos: 3857, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3856, + EndPos: 3857, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3856, + EndPos: 3857, + }, + Value: "b", + }, + }, + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3863, + EndPos: 3891, + }, + Expr: &expr.Array{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3863, + EndPos: 3890, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3869, + EndPos: 3871, + }, + Val: &expr.Reference{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3869, + EndPos: 3871, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3870, + EndPos: 3871, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3870, + EndPos: 3871, + }, + Value: "b", + }, + }, + }, + }, + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3874, + EndPos: 3877, + }, + Key: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3874, + EndPos: 3874, + }, + Value: "1", + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3877, + EndPos: 3877, + }, + Value: "1", + }, + }, + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3880, + EndPos: 3880, + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3880, + EndPos: 3880, + }, + Value: "1", + }, + }, + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3883, + EndPos: 3889, + }, + Key: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3883, + EndPos: 3883, + }, + Value: "3", + }, + Val: &expr.Reference{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3887, + EndPos: 3889, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3888, + EndPos: 3889, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3888, + EndPos: 3889, + }, + Value: "b", + }, + }, + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3895, + EndPos: 3898, + }, + Expr: &expr.BitwiseNot{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3895, + EndPos: 3897, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3896, + EndPos: 3897, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3896, + EndPos: 3897, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3902, + EndPos: 3905, + }, + Expr: &expr.BooleanNot{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3902, + EndPos: 3904, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3903, + EndPos: 3904, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3903, + EndPos: 3904, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 176, + EndLine: 176, + StartPos: 3910, + EndPos: 3918, + }, + Expr: &expr.ClassConstFetch{ + Position: &position.Position{ + StartLine: 176, + EndLine: 176, + StartPos: 3910, + EndPos: 3917, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 176, + EndLine: 176, + StartPos: 3910, + EndPos: 3912, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 176, + EndLine: 176, + StartPos: 3910, + EndPos: 3912, + }, + Value: "Foo", + }, + }, + }, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 176, + EndLine: 176, + StartPos: 3915, + EndPos: 3917, + }, + Value: "Bar", + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 177, + EndLine: 177, + StartPos: 3922, + EndPos: 3931, + }, + Expr: &expr.Clone{ + Position: &position.Position{ + StartLine: 177, + EndLine: 177, + StartPos: 3922, + EndPos: 3929, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 177, + EndLine: 177, + StartPos: 3928, + EndPos: 3929, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 177, + EndLine: 177, + StartPos: 3928, + EndPos: 3929, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 3935, + EndPos: 3943, + }, + Expr: &expr.Clone{ + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 3935, + EndPos: 3942, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 3941, + EndPos: 3942, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 3941, + EndPos: 3942, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 179, + EndLine: 179, + StartPos: 3947, + EndPos: 3959, + }, + Expr: &expr.Closure{ + Position: &position.Position{ + StartLine: 179, + EndLine: 179, + StartPos: 3947, + EndPos: 3958, + }, + ReturnsRef: false, + Static: false, + PhpDocComment: "", + Stmts: []node.Node{ + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 3963, + EndPos: 3996, + }, + Expr: &expr.Closure{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 3963, + EndPos: 3995, + }, + PhpDocComment: "", + ReturnsRef: false, + Static: false, + Params: []node.Node{ + &node.Parameter{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 3972, + EndPos: 3973, + }, + ByRef: false, + Variadic: false, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 3972, + EndPos: 3973, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 3972, + EndPos: 3973, + }, + Value: "a", + }, + }, + }, + &node.Parameter{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 3976, + EndPos: 3977, + }, + ByRef: false, + Variadic: false, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 3976, + EndPos: 3977, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 3976, + EndPos: 3977, + }, + Value: "b", + }, + }, + }, + }, + ClosureUse: &expr.ClosureUse{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 3980, + EndPos: 3992, + }, + Uses: []node.Node{ + &expr.Variable{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 3985, + EndPos: 3986, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 3985, + EndPos: 3986, + }, + Value: "c", + }, + }, + &expr.Reference{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 3989, + EndPos: 3991, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 3990, + EndPos: 3991, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 3990, + EndPos: 3991, + }, + Value: "d", + }, + }, + }, + }, + }, + Stmts: []node.Node{ + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4000, + EndPos: 4033, + }, + Expr: &expr.Closure{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4000, + EndPos: 4032, + }, + ReturnsRef: false, + Static: false, + PhpDocComment: "", + Params: []node.Node{ + &node.Parameter{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4009, + EndPos: 4010, + }, + ByRef: false, + Variadic: false, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4009, + EndPos: 4010, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4009, + EndPos: 4010, + }, + Value: "a", + }, + }, + }, + &node.Parameter{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4013, + EndPos: 4014, + }, + Variadic: false, + ByRef: false, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4013, + EndPos: 4014, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4013, + EndPos: 4014, + }, + Value: "b", + }, + }, + }, + }, + ClosureUse: &expr.ClosureUse{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4017, + EndPos: 4029, + }, + Uses: []node.Node{ + &expr.Reference{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4022, + EndPos: 4024, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4023, + EndPos: 4024, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4023, + EndPos: 4024, + }, + Value: "c", + }, + }, + }, + &expr.Variable{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4027, + EndPos: 4028, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4027, + EndPos: 4028, + }, + Value: "d", + }, + }, + }, + }, + Stmts: []node.Node{ + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 182, + EndLine: 182, + StartPos: 4037, + EndPos: 4050, + }, + Expr: &expr.Closure{ + Position: &position.Position{ + StartLine: 182, + EndLine: 182, + StartPos: 4037, + EndPos: 4049, + }, + ReturnsRef: false, + Static: false, + PhpDocComment: "", + Stmts: []node.Node{ + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 183, + EndLine: 183, + StartPos: 4054, + EndPos: 4057, + }, + Expr: &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 183, + EndLine: 183, + StartPos: 4054, + EndPos: 4056, + }, + Constant: &name.Name{ + Position: &position.Position{ + StartLine: 183, + EndLine: 183, + StartPos: 4054, + EndPos: 4056, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 183, + EndLine: 183, + StartPos: 4054, + EndPos: 4056, + }, + Value: "foo", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 184, + EndLine: 184, + StartPos: 4061, + EndPos: 4074, + }, + Expr: &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 184, + EndLine: 184, + StartPos: 4061, + EndPos: 4073, + }, + Constant: &name.Relative{ + Position: &position.Position{ + StartLine: 184, + EndLine: 184, + StartPos: 4061, + EndPos: 4073, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 184, + EndLine: 184, + StartPos: 4071, + EndPos: 4073, + }, + Value: "foo", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 185, + EndLine: 185, + StartPos: 4078, + EndPos: 4082, + }, + Expr: &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 185, + EndLine: 185, + StartPos: 4078, + EndPos: 4081, + }, + Constant: &name.FullyQualified{ + Position: &position.Position{ + StartLine: 185, + EndLine: 185, + StartPos: 4078, + EndPos: 4081, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 185, + EndLine: 185, + StartPos: 4079, + EndPos: 4081, + }, + Value: "foo", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 187, + EndLine: 187, + StartPos: 4087, + EndPos: 4096, + }, + Expr: &expr.Empty{ + Position: &position.Position{ + StartLine: 187, + EndLine: 187, + StartPos: 4087, + EndPos: 4095, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 187, + EndLine: 187, + StartPos: 4093, + EndPos: 4094, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 187, + EndLine: 187, + StartPos: 4093, + EndPos: 4094, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 188, + EndLine: 188, + StartPos: 4100, + EndPos: 4110, + }, + Expr: &expr.Empty{ + Position: &position.Position{ + StartLine: 188, + EndLine: 188, + StartPos: 4100, + EndPos: 4109, + }, + Expr: &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 188, + EndLine: 188, + StartPos: 4106, + EndPos: 4108, + }, + Constant: &name.Name{ + Position: &position.Position{ + StartLine: 188, + EndLine: 188, + StartPos: 4106, + EndPos: 4108, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 188, + EndLine: 188, + StartPos: 4106, + EndPos: 4108, + }, + Value: "Foo", + }, + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 189, + EndLine: 189, + StartPos: 4114, + EndPos: 4117, + }, + Expr: &expr.ErrorSuppress{ + Position: &position.Position{ + StartLine: 189, + EndLine: 189, + StartPos: 4114, + EndPos: 4116, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 189, + EndLine: 189, + StartPos: 4115, + EndPos: 4116, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 189, + EndLine: 189, + StartPos: 4115, + EndPos: 4116, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4121, + EndPos: 4129, + }, + Expr: &expr.Eval{ + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4121, + EndPos: 4128, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4126, + EndPos: 4127, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4126, + EndPos: 4127, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 191, + EndLine: 191, + StartPos: 4133, + EndPos: 4137, + }, + Expr: &expr.Exit{ + Position: &position.Position{ + StartLine: 191, + EndLine: 191, + StartPos: 4133, + EndPos: 4136, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 192, + EndLine: 192, + StartPos: 4141, + EndPos: 4149, + }, + Expr: &expr.Exit{ + Position: &position.Position{ + StartLine: 192, + EndLine: 192, + StartPos: 4141, + EndPos: 4147, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 192, + EndLine: 192, + StartPos: 4146, + EndPos: 4147, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 192, + EndLine: 192, + StartPos: 4146, + EndPos: 4147, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 193, + EndLine: 193, + StartPos: 4153, + EndPos: 4158, + }, + Expr: &expr.Die{ + Position: &position.Position{ + StartLine: 193, + EndLine: 193, + StartPos: 4153, + EndPos: 4157, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 194, + EndLine: 194, + StartPos: 4162, + EndPos: 4169, + }, + Expr: &expr.Die{ + Position: &position.Position{ + StartLine: 194, + EndLine: 194, + StartPos: 4162, + EndPos: 4167, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 194, + EndLine: 194, + StartPos: 4166, + EndPos: 4167, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 194, + EndLine: 194, + StartPos: 4166, + EndPos: 4167, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 195, + EndLine: 195, + StartPos: 4173, + EndPos: 4178, + }, + Expr: &expr.FunctionCall{ + Position: &position.Position{ + StartLine: 195, + EndLine: 195, + StartPos: 4173, + EndPos: 4177, + }, + Function: &name.Name{ + Position: &position.Position{ + StartLine: 195, + EndLine: 195, + StartPos: 4173, + EndPos: 4175, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 195, + EndLine: 195, + StartPos: 4173, + EndPos: 4175, + }, + Value: "foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 195, + EndLine: 195, + StartPos: 4176, + EndPos: 4177, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 196, + EndLine: 196, + StartPos: 4182, + EndPos: 4200, + }, + Expr: &expr.FunctionCall{ + Position: &position.Position{ + StartLine: 196, + EndLine: 196, + StartPos: 4182, + EndPos: 4199, + }, + Function: &name.Relative{ + Position: &position.Position{ + StartLine: 196, + EndLine: 196, + StartPos: 4182, + EndPos: 4194, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 196, + EndLine: 196, + StartPos: 4192, + EndPos: 4194, + }, + Value: "foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 196, + EndLine: 196, + StartPos: 4195, + EndPos: 4199, + }, + Arguments: []node.Node{ + &node.Argument{ + Position: &position.Position{ + StartLine: 196, + EndLine: 196, + StartPos: 4197, + EndPos: 4198, + }, + Variadic: false, + IsReference: true, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 196, + EndLine: 196, + StartPos: 4197, + EndPos: 4198, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 196, + EndLine: 196, + StartPos: 4197, + EndPos: 4198, + }, + Value: "a", + }, + }, + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 197, + EndLine: 197, + StartPos: 4204, + EndPos: 4212, + }, + Expr: &expr.FunctionCall{ + Position: &position.Position{ + StartLine: 197, + EndLine: 197, + StartPos: 4204, + EndPos: 4211, + }, + Function: &name.FullyQualified{ + Position: &position.Position{ + StartLine: 197, + EndLine: 197, + StartPos: 4204, + EndPos: 4207, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 197, + EndLine: 197, + StartPos: 4205, + EndPos: 4207, + }, + Value: "foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 197, + EndLine: 197, + StartPos: 4208, + EndPos: 4211, + }, + Arguments: []node.Node{ + &node.Argument{ + Position: &position.Position{ + StartLine: 197, + EndLine: 197, + StartPos: 4209, + EndPos: 4210, + }, + Variadic: false, + IsReference: false, + Expr: &expr.ShortArray{ + Position: &position.Position{ + StartLine: 197, + EndLine: 197, + StartPos: 4209, + EndPos: 4210, + }, + Items: []node.Node{ + }, + }, + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 198, + EndLine: 198, + StartPos: 4216, + EndPos: 4230, + }, + Expr: &expr.FunctionCall{ + Position: &position.Position{ + StartLine: 198, + EndLine: 198, + StartPos: 4216, + EndPos: 4229, + }, + Function: &expr.Variable{ + Position: &position.Position{ + StartLine: 198, + EndLine: 198, + StartPos: 4216, + EndPos: 4219, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 198, + EndLine: 198, + StartPos: 4216, + EndPos: 4219, + }, + Value: "foo", + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 198, + EndLine: 198, + StartPos: 4220, + EndPos: 4229, + }, + Arguments: []node.Node{ + &node.Argument{ + Position: &position.Position{ + StartLine: 198, + EndLine: 198, + StartPos: 4221, + EndPos: 4228, + }, + IsReference: false, + Variadic: false, + Expr: &expr.Yield{ + Position: &position.Position{ + StartLine: 198, + EndLine: 198, + StartPos: 4221, + EndPos: 4228, + }, + Value: &expr.Variable{ + Position: &position.Position{ + StartLine: 198, + EndLine: 198, + StartPos: 4227, + EndPos: 4228, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 198, + EndLine: 198, + StartPos: 4227, + EndPos: 4228, + }, + Value: "a", + }, + }, + }, + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 200, + EndLine: 200, + StartPos: 4235, + EndPos: 4239, + }, + Expr: &expr.PostDec{ + Position: &position.Position{ + StartLine: 200, + EndLine: 200, + StartPos: 4235, + EndPos: 4238, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 200, + EndLine: 200, + StartPos: 4235, + EndPos: 4236, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 200, + EndLine: 200, + StartPos: 4235, + EndPos: 4236, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 201, + EndLine: 201, + StartPos: 4243, + EndPos: 4247, + }, + Expr: &expr.PostInc{ + Position: &position.Position{ + StartLine: 201, + EndLine: 201, + StartPos: 4243, + EndPos: 4246, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 201, + EndLine: 201, + StartPos: 4243, + EndPos: 4244, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 201, + EndLine: 201, + StartPos: 4243, + EndPos: 4244, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 202, + EndLine: 202, + StartPos: 4251, + EndPos: 4255, + }, + Expr: &expr.PreDec{ + Position: &position.Position{ + StartLine: 202, + EndLine: 202, + StartPos: 4251, + EndPos: 4254, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 202, + EndLine: 202, + StartPos: 4253, + EndPos: 4254, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 202, + EndLine: 202, + StartPos: 4253, + EndPos: 4254, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 203, + EndLine: 203, + StartPos: 4259, + EndPos: 4263, + }, + Expr: &expr.PreInc{ + Position: &position.Position{ + StartLine: 203, + EndLine: 203, + StartPos: 4259, + EndPos: 4262, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 203, + EndLine: 203, + StartPos: 4261, + EndPos: 4262, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 203, + EndLine: 203, + StartPos: 4261, + EndPos: 4262, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 205, + EndLine: 205, + StartPos: 4268, + EndPos: 4278, + }, + Expr: &expr.Include{ + Position: &position.Position{ + StartLine: 205, + EndLine: 205, + StartPos: 4268, + EndPos: 4277, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 205, + EndLine: 205, + StartPos: 4276, + EndPos: 4277, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 205, + EndLine: 205, + StartPos: 4276, + EndPos: 4277, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 206, + EndLine: 206, + StartPos: 4282, + EndPos: 4297, + }, + Expr: &expr.IncludeOnce{ + Position: &position.Position{ + StartLine: 206, + EndLine: 206, + StartPos: 4282, + EndPos: 4296, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 206, + EndLine: 206, + StartPos: 4295, + EndPos: 4296, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 206, + EndLine: 206, + StartPos: 4295, + EndPos: 4296, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 207, + EndLine: 207, + StartPos: 4301, + EndPos: 4311, + }, + Expr: &expr.Require{ + Position: &position.Position{ + StartLine: 207, + EndLine: 207, + StartPos: 4301, + EndPos: 4310, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 207, + EndLine: 207, + StartPos: 4309, + EndPos: 4310, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 207, + EndLine: 207, + StartPos: 4309, + EndPos: 4310, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 208, + EndLine: 208, + StartPos: 4315, + EndPos: 4330, + }, + Expr: &expr.RequireOnce{ + Position: &position.Position{ + StartLine: 208, + EndLine: 208, + StartPos: 4315, + EndPos: 4329, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 208, + EndLine: 208, + StartPos: 4328, + EndPos: 4329, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 208, + EndLine: 208, + StartPos: 4328, + EndPos: 4329, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4335, + EndPos: 4352, + }, + Expr: &expr.InstanceOf{ + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4335, + EndPos: 4351, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4335, + EndPos: 4336, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4335, + EndPos: 4336, + }, + Value: "a", + }, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4349, + EndPos: 4351, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4349, + EndPos: 4351, + }, + Value: "Foo", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 211, + EndLine: 211, + StartPos: 4356, + EndPos: 4383, + }, + Expr: &expr.InstanceOf{ + Position: &position.Position{ + StartLine: 211, + EndLine: 211, + StartPos: 4356, + EndPos: 4382, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 211, + EndLine: 211, + StartPos: 4356, + EndPos: 4357, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 211, + EndLine: 211, + StartPos: 4356, + EndPos: 4357, + }, + Value: "a", + }, + }, + Class: &name.Relative{ + Position: &position.Position{ + StartLine: 211, + EndLine: 211, + StartPos: 4370, + EndPos: 4382, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 211, + EndLine: 211, + StartPos: 4380, + EndPos: 4382, + }, + Value: "Foo", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 212, + EndLine: 212, + StartPos: 4387, + EndPos: 4405, + }, + Expr: &expr.InstanceOf{ + Position: &position.Position{ + StartLine: 212, + EndLine: 212, + StartPos: 4387, + EndPos: 4404, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 212, + EndLine: 212, + StartPos: 4387, + EndPos: 4388, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 212, + EndLine: 212, + StartPos: 4387, + EndPos: 4388, + }, + Value: "a", + }, + }, + Class: &name.FullyQualified{ + Position: &position.Position{ + StartLine: 212, + EndLine: 212, + StartPos: 4401, + EndPos: 4404, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 212, + EndLine: 212, + StartPos: 4402, + EndPos: 4404, + }, + Value: "Foo", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 214, + EndLine: 214, + StartPos: 4410, + EndPos: 4423, + }, + Expr: &expr.Isset{ + Position: &position.Position{ + StartLine: 214, + EndLine: 214, + StartPos: 4410, + EndPos: 4422, + }, + Variables: []node.Node{ + &expr.Variable{ + Position: &position.Position{ + StartLine: 214, + EndLine: 214, + StartPos: 4416, + EndPos: 4417, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 214, + EndLine: 214, + StartPos: 4416, + EndPos: 4417, + }, + Value: "a", + }, + }, + &expr.Variable{ + Position: &position.Position{ + StartLine: 214, + EndLine: 214, + StartPos: 4420, + EndPos: 4421, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 214, + EndLine: 214, + StartPos: 4420, + EndPos: 4421, + }, + Value: "b", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 215, + EndLine: 215, + StartPos: 4427, + EndPos: 4437, + }, + Expr: &expr.Isset{ + Position: &position.Position{ + StartLine: 215, + EndLine: 215, + StartPos: 4427, + EndPos: 4436, + }, + Variables: []node.Node{ + &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 215, + EndLine: 215, + StartPos: 4433, + EndPos: 4435, + }, Constant: &name.Name{ + Position: &position.Position{ + StartLine: 215, + EndLine: 215, + StartPos: 4433, + EndPos: 4435, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 215, + EndLine: 215, + StartPos: 4433, + EndPos: 4435, + }, + Value: "Foo", + }, }, }, }, }, }, }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &expr.ConstFetch{ - Constant: &name.Relative{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 216, + EndLine: 216, + StartPos: 4441, + EndPos: 4452, + }, + Expr: &assign.Assign{ + Position: &position.Position{ + StartLine: 216, + EndLine: 216, + StartPos: 4441, + EndPos: 4451, + }, + Variable: &expr.List{ + Position: &position.Position{ + StartLine: 216, + EndLine: 216, + StartPos: 4441, + EndPos: 4446, + }, + Items: []node.Node{ + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 216, + EndLine: 216, + StartPos: 4450, + EndPos: 4451, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 216, + EndLine: 216, + StartPos: 4450, + EndPos: 4451, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 217, + EndLine: 217, + StartPos: 4456, + EndPos: 4473, + }, + Expr: &assign.Assign{ + Position: &position.Position{ + StartLine: 217, + EndLine: 217, + StartPos: 4456, + EndPos: 4472, + }, + Variable: &expr.List{ + Position: &position.Position{ + StartLine: 217, + EndLine: 217, + StartPos: 4456, + EndPos: 4467, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 217, + EndLine: 217, + StartPos: 4461, + EndPos: 4462, + }, + Val: &expr.Variable{ + Position: &position.Position{ + StartLine: 217, + EndLine: 217, + StartPos: 4461, + EndPos: 4462, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 217, + EndLine: 217, + StartPos: 4461, + EndPos: 4462, + }, + Value: "a", + }, + }, + }, + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 217, + EndLine: 217, + StartPos: 4465, + EndPos: 4466, + }, + Val: &expr.Variable{ + Position: &position.Position{ + StartLine: 217, + EndLine: 217, + StartPos: 4465, + EndPos: 4466, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 217, + EndLine: 217, + StartPos: 4465, + EndPos: 4466, + }, + Value: "b", + }, + }, + }, + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 217, + EndLine: 217, + StartPos: 4471, + EndPos: 4472, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 217, + EndLine: 217, + StartPos: 4471, + EndPos: 4472, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 218, + EndLine: 218, + StartPos: 4477, + EndPos: 4492, + }, + Expr: &assign.Assign{ + Position: &position.Position{ + StartLine: 218, + EndLine: 218, + StartPos: 4477, + EndPos: 4491, + }, + Variable: &expr.List{ + Position: &position.Position{ + StartLine: 218, + EndLine: 218, + StartPos: 4477, + EndPos: 4486, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 218, + EndLine: 218, + StartPos: 4482, + EndPos: 4485, + }, + Val: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 218, + EndLine: 218, + StartPos: 4482, + EndPos: 4485, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 218, + EndLine: 218, + StartPos: 4482, + EndPos: 4483, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 218, + EndLine: 218, + StartPos: 4482, + EndPos: 4483, + }, + Value: "a", + }, + }, + }, + }, + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 218, + EndLine: 218, + StartPos: 4490, + EndPos: 4491, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 218, + EndLine: 218, + StartPos: 4490, + EndPos: 4491, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4496, + EndPos: 4515, + }, + Expr: &assign.Assign{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4496, + EndPos: 4514, + }, + Variable: &expr.List{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4496, + EndPos: 4509, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4501, + EndPos: 4508, + }, + Val: &expr.List{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4501, + EndPos: 4508, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4506, + EndPos: 4507, + }, + Val: &expr.Variable{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4506, + EndPos: 4507, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4506, + EndPos: 4507, + }, + Value: "a", + }, + }, + }, + }, + }, + }, + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4513, + EndPos: 4514, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4513, + EndPos: 4514, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 221, + EndLine: 221, + StartPos: 4520, + EndPos: 4529, + }, + Expr: &expr.MethodCall{ + Position: &position.Position{ + StartLine: 221, + EndLine: 221, + StartPos: 4520, + EndPos: 4528, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 221, + EndLine: 221, + StartPos: 4520, + EndPos: 4521, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 221, + EndLine: 221, + StartPos: 4520, + EndPos: 4521, + }, + Value: "a", + }, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 221, + EndLine: 221, + StartPos: 4524, + EndPos: 4526, + }, + Value: "foo", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 221, + EndLine: 221, + StartPos: 4527, + EndPos: 4528, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 222, + EndLine: 222, + StartPos: 4533, + EndPos: 4540, + }, + Expr: &expr.New{ + Position: &position.Position{ + StartLine: 222, + EndLine: 222, + StartPos: 4533, + EndPos: 4539, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 222, + EndLine: 222, + StartPos: 4537, + EndPos: 4539, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 222, + EndLine: 222, + StartPos: 4537, + EndPos: 4539, + }, + Value: "Foo", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 223, + EndLine: 223, + StartPos: 4544, + EndPos: 4563, + }, + Expr: &expr.New{ + Position: &position.Position{ + StartLine: 223, + EndLine: 223, + StartPos: 4544, + EndPos: 4562, + }, + Class: &name.Relative{ + Position: &position.Position{ + StartLine: 223, + EndLine: 223, + StartPos: 4548, + EndPos: 4560, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 223, + EndLine: 223, + StartPos: 4558, + EndPos: 4560, + }, + Value: "Foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 223, + EndLine: 223, + StartPos: 4561, + EndPos: 4562, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4567, + EndPos: 4577, + }, + Expr: &expr.New{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4567, + EndPos: 4576, + }, + Class: &name.FullyQualified{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4571, + EndPos: 4574, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4572, + EndPos: 4574, + }, + Value: "Foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4575, + EndPos: 4576, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4581, + EndPos: 4590, + }, + Expr: &expr.Print{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4581, + EndPos: 4588, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4587, + EndPos: 4588, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4587, + EndPos: 4588, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4594, + EndPos: 4601, + }, + Expr: &expr.PropertyFetch{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4594, + EndPos: 4600, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4594, + EndPos: 4595, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4594, + EndPos: 4595, + }, + Value: "a", + }, + }, + Property: &node.Identifier{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4598, + EndPos: 4600, + }, + Value: "foo", + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4605, + EndPos: 4615, + }, + Expr: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4605, + EndPos: 4613, + }, + Variable: &expr.PropertyFetch{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4605, + EndPos: 4611, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4605, + EndPos: 4606, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4605, + EndPos: 4606, + }, + Value: "a", + }, + }, + Property: &node.Identifier{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4609, + EndPos: 4611, + }, + Value: "foo", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4613, + EndPos: 4613, + }, + Value: "1", + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4619, + EndPos: 4647, + }, + Expr: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4619, + EndPos: 4645, + }, + Variable: &expr.PropertyFetch{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4619, + EndPos: 4643, + }, + Variable: &expr.MethodCall{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4619, + EndPos: 4637, + }, + Variable: &expr.PropertyFetch{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4619, + EndPos: 4630, + }, + Variable: &expr.PropertyFetch{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4619, + EndPos: 4625, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4619, + EndPos: 4620, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4619, + EndPos: 4620, + }, + Value: "a", + }, + }, + Property: &node.Identifier{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4623, + EndPos: 4625, + }, + Value: "foo", + }, + }, + Property: &node.Identifier{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4628, + EndPos: 4630, + }, + Value: "bar", + }, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4633, + EndPos: 4635, + }, + Value: "baz", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4636, + EndPos: 4637, + }, + }, + }, + Property: &node.Identifier{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4640, + EndPos: 4643, + }, + Value: "quux", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4645, + EndPos: 4645, + }, + Value: "0", + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4651, + EndPos: 4666, + }, + Expr: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4651, + EndPos: 4664, + }, + Variable: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4651, + EndPos: 4661, + }, + Variable: &expr.MethodCall{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4651, + EndPos: 4659, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4651, + EndPos: 4652, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4651, + EndPos: 4652, + }, + Value: "a", + }, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4655, + EndPos: 4657, + }, + Value: "foo", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4658, + EndPos: 4659, + }, + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4661, + EndPos: 4661, + }, + Value: "1", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4664, + EndPos: 4664, + }, + Value: "1", + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 230, + EndLine: 230, + StartPos: 4670, + EndPos: 4678, + }, + Expr: &expr.ShellExec{ + Position: &position.Position{ + StartLine: 230, + EndLine: 230, + StartPos: 4670, + EndPos: 4677, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 230, + EndLine: 230, + StartPos: 4671, + EndPos: 4674, + }, + Value: "cmd ", + }, + &expr.Variable{ + Position: &position.Position{ + StartLine: 230, + EndLine: 230, + StartPos: 4675, + EndPos: 4676, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 230, + EndLine: 230, + StartPos: 4675, + EndPos: 4676, + }, + Value: "a", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 231, + EndLine: 231, + StartPos: 4682, + EndPos: 4687, + }, + Expr: &expr.ShellExec{ + Position: &position.Position{ + StartLine: 231, + EndLine: 231, + StartPos: 4682, + EndPos: 4686, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Value: "cmd", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 232, + EndLine: 232, + StartPos: 4691, + EndPos: 4693, + }, + Expr: &expr.ShellExec{ + Position: &position.Position{ + StartLine: 232, + EndLine: 232, + StartPos: 4691, + EndPos: 4692, + }, + Parts: []node.Node{ + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 233, + EndLine: 233, + StartPos: 4697, + EndPos: 4699, + }, + Expr: &expr.ShortArray{ + Position: &position.Position{ + StartLine: 233, + EndLine: 233, + StartPos: 4697, + EndPos: 4698, + }, + Items: []node.Node{ + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 234, + EndLine: 234, + StartPos: 4703, + EndPos: 4706, + }, + Expr: &expr.ShortArray{ + Position: &position.Position{ + StartLine: 234, + EndLine: 234, + StartPos: 4703, + EndPos: 4705, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 234, + EndLine: 234, + StartPos: 4704, + EndPos: 4704, + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 234, + EndLine: 234, + StartPos: 4704, + EndPos: 4704, + }, + Value: "1", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4710, + EndPos: 4722, + }, + Expr: &expr.ShortArray{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4710, + EndPos: 4721, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4711, + EndPos: 4714, + }, + Key: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4711, + EndPos: 4711, + }, + Value: "1", + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4714, + EndPos: 4714, + }, + Value: "1", + }, + }, + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4717, + EndPos: 4719, + }, + Val: &expr.Reference{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4717, + EndPos: 4719, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4718, + EndPos: 4719, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4718, + EndPos: 4719, + }, + Value: "b", + }, }, }, }, }, }, }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &expr.ConstFetch{ - Constant: &name.FullyQualified{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 237, + EndLine: 237, + StartPos: 4727, + EndPos: 4737, + }, + Expr: &expr.StaticCall{ + Position: &position.Position{ + StartLine: 237, + EndLine: 237, + StartPos: 4727, + EndPos: 4736, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 237, + EndLine: 237, + StartPos: 4727, + EndPos: 4729, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 237, + EndLine: 237, + StartPos: 4727, + EndPos: 4729, + }, + Value: "Foo", + }, + }, + }, + Call: &node.Identifier{ + Position: &position.Position{ + StartLine: 237, + EndLine: 237, + StartPos: 4732, + EndPos: 4734, + }, + Value: "bar", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 237, + EndLine: 237, + StartPos: 4735, + EndPos: 4736, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 238, + EndLine: 238, + StartPos: 4741, + EndPos: 4761, + }, + Expr: &expr.StaticCall{ + Position: &position.Position{ + StartLine: 238, + EndLine: 238, + StartPos: 4741, + EndPos: 4760, + }, + Class: &name.Relative{ + Position: &position.Position{ + StartLine: 238, + EndLine: 238, + StartPos: 4741, + EndPos: 4753, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 238, + EndLine: 238, + StartPos: 4751, + EndPos: 4753, + }, + Value: "Foo", + }, + }, + }, + Call: &node.Identifier{ + Position: &position.Position{ + StartLine: 238, + EndLine: 238, + StartPos: 4756, + EndPos: 4758, + }, + Value: "bar", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 238, + EndLine: 238, + StartPos: 4759, + EndPos: 4760, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4765, + EndPos: 4776, + }, + Expr: &expr.StaticCall{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4765, + EndPos: 4775, + }, + Class: &name.FullyQualified{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4765, + EndPos: 4768, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4766, + EndPos: 4768, + }, + Value: "Foo", + }, + }, + }, + Call: &node.Identifier{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4771, + EndPos: 4773, + }, + Value: "bar", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4774, + EndPos: 4775, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 240, + EndLine: 240, + StartPos: 4780, + EndPos: 4791, + }, + Expr: &expr.StaticCall{ + Position: &position.Position{ + StartLine: 240, + EndLine: 240, + StartPos: 4780, + EndPos: 4790, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 240, + EndLine: 240, + StartPos: 4780, + EndPos: 4782, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 240, + EndLine: 240, + StartPos: 4780, + EndPos: 4782, + }, + Value: "Foo", + }, + }, + }, + Call: &expr.Variable{ + Position: &position.Position{ + StartLine: 240, + EndLine: 240, + StartPos: 4785, + EndPos: 4788, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 240, + EndLine: 240, + StartPos: 4785, + EndPos: 4788, + }, + Value: "bar", + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 240, + EndLine: 240, + StartPos: 4789, + EndPos: 4790, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 241, + EndLine: 241, + StartPos: 4795, + EndPos: 4807, + }, + Expr: &expr.StaticCall{ + Position: &position.Position{ + StartLine: 241, + EndLine: 241, + StartPos: 4795, + EndPos: 4806, + }, + Class: &expr.Variable{ + Position: &position.Position{ + StartLine: 241, + EndLine: 241, + StartPos: 4795, + EndPos: 4798, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 241, + EndLine: 241, + StartPos: 4795, + EndPos: 4798, + }, + Value: "foo", + }, + }, + Call: &expr.Variable{ + Position: &position.Position{ + StartLine: 241, + EndLine: 241, + StartPos: 4801, + EndPos: 4804, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 241, + EndLine: 241, + StartPos: 4801, + EndPos: 4804, + }, + Value: "bar", + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 241, + EndLine: 241, + StartPos: 4805, + EndPos: 4806, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4811, + EndPos: 4820, + }, + Expr: &expr.StaticPropertyFetch{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4811, + EndPos: 4819, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4811, + EndPos: 4813, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4811, + EndPos: 4813, + }, + Value: "Foo", + }, + }, + }, + Property: &expr.Variable{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4816, + EndPos: 4819, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4816, + EndPos: 4819, + }, + Value: "bar", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4824, + EndPos: 4843, + }, + Expr: &expr.StaticPropertyFetch{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4824, + EndPos: 4842, + }, + Class: &name.Relative{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4824, + EndPos: 4836, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4834, + EndPos: 4836, + }, + Value: "Foo", + }, + }, + }, + Property: &expr.Variable{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4839, + EndPos: 4842, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4839, + EndPos: 4842, + }, + Value: "bar", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4847, + EndPos: 4857, + }, + Expr: &expr.StaticPropertyFetch{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4847, + EndPos: 4856, + }, + Class: &name.FullyQualified{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4847, + EndPos: 4850, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4848, + EndPos: 4850, + }, + Value: "Foo", + }, + }, + }, + Property: &expr.Variable{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4853, + EndPos: 4856, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4853, + EndPos: 4856, + }, + Value: "bar", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4861, + EndPos: 4873, + }, + Expr: &expr.Ternary{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4861, + EndPos: 4872, + }, + Condition: &expr.Variable{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4861, + EndPos: 4862, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4861, + EndPos: 4862, + }, + Value: "a", + }, + }, + IfTrue: &expr.Variable{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4866, + EndPos: 4867, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4866, + EndPos: 4867, + }, + Value: "b", + }, + }, + IfFalse: &expr.Variable{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4871, + EndPos: 4872, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4871, + EndPos: 4872, + }, + Value: "c", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4877, + EndPos: 4886, + }, + Expr: &expr.Ternary{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4877, + EndPos: 4885, + }, + Condition: &expr.Variable{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4877, + EndPos: 4878, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4877, + EndPos: 4878, + }, + Value: "a", + }, + }, + IfFalse: &expr.Variable{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4884, + EndPos: 4885, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4884, + EndPos: 4885, + }, + Value: "c", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4890, + EndPos: 4912, + }, + Expr: &expr.Ternary{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4890, + EndPos: 4911, + }, + Condition: &expr.Variable{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4890, + EndPos: 4891, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4890, + EndPos: 4891, + }, + Value: "a", + }, + }, + IfTrue: &expr.Ternary{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4895, + EndPos: 4906, + }, + Condition: &expr.Variable{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4895, + EndPos: 4896, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4895, + EndPos: 4896, + }, + Value: "b", + }, + }, + IfTrue: &expr.Variable{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4900, + EndPos: 4901, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4900, + EndPos: 4901, + }, + Value: "c", + }, + }, + IfFalse: &expr.Variable{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4905, + EndPos: 4906, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4905, + EndPos: 4906, + }, + Value: "d", + }, + }, + }, + IfFalse: &expr.Variable{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4910, + EndPos: 4911, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4910, + EndPos: 4911, + }, + Value: "e", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4916, + EndPos: 4938, + }, + Expr: &expr.Ternary{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4916, + EndPos: 4937, + }, + Condition: &expr.Ternary{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4916, + EndPos: 4927, + }, + Condition: &expr.Variable{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4916, + EndPos: 4917, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4916, + EndPos: 4917, + }, + Value: "a", + }, + }, + IfTrue: &expr.Variable{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4921, + EndPos: 4922, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4921, + EndPos: 4922, + }, + Value: "b", + }, + }, + IfFalse: &expr.Variable{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4926, + EndPos: 4927, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4926, + EndPos: 4927, + }, + Value: "c", + }, + }, + }, + IfTrue: &expr.Variable{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4931, + EndPos: 4932, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4931, + EndPos: 4932, + }, + Value: "d", + }, + }, + IfFalse: &expr.Variable{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4936, + EndPos: 4937, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4936, + EndPos: 4937, + }, + Value: "e", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 249, + EndLine: 249, + StartPos: 4942, + EndPos: 4945, + }, + Expr: &expr.UnaryMinus{ + Position: &position.Position{ + StartLine: 249, + EndLine: 249, + StartPos: 4942, + EndPos: 4944, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 249, + EndLine: 249, + StartPos: 4943, + EndPos: 4944, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 249, + EndLine: 249, + StartPos: 4943, + EndPos: 4944, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 250, + EndLine: 250, + StartPos: 4949, + EndPos: 4952, + }, + Expr: &expr.UnaryPlus{ + Position: &position.Position{ + StartLine: 250, + EndLine: 250, + StartPos: 4949, + EndPos: 4951, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 250, + EndLine: 250, + StartPos: 4950, + EndPos: 4951, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 250, + EndLine: 250, + StartPos: 4950, + EndPos: 4951, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4956, + EndPos: 4959, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4956, + EndPos: 4958, + }, + VarName: &expr.Variable{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4957, + EndPos: 4958, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4957, + EndPos: 4958, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4963, + EndPos: 4967, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4963, + EndPos: 4966, + }, + VarName: &expr.Variable{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4964, + EndPos: 4966, + }, + VarName: &expr.Variable{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4965, + EndPos: 4966, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4965, + EndPos: 4966, + }, + Value: "a", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4971, + EndPos: 4976, + }, + Expr: &expr.Yield{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4971, + EndPos: 4975, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4980, + EndPos: 4988, + }, + Expr: &expr.Yield{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4980, + EndPos: 4987, + }, + Value: &expr.Variable{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4986, + EndPos: 4987, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4986, + EndPos: 4987, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 4992, + EndPos: 5006, + }, + Expr: &expr.Yield{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 4992, + EndPos: 5005, + }, + Key: &expr.Variable{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 4998, + EndPos: 4999, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 4998, + EndPos: 4999, + }, + Value: "a", + }, + }, + Value: &expr.Variable{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 5004, + EndPos: 5005, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 5004, + EndPos: 5005, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 256, + EndLine: 256, + StartPos: 5010, + EndPos: 5026, + }, + Expr: &expr.Yield{ + Position: &position.Position{ + StartLine: 256, + EndLine: 256, + StartPos: 5010, + EndPos: 5025, + }, + Value: &expr.ClassConstFetch{ + Position: &position.Position{ + StartLine: 256, + EndLine: 256, + StartPos: 5016, + EndPos: 5025, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 256, + EndLine: 256, + StartPos: 5016, + EndPos: 5018, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 256, + EndLine: 256, + StartPos: 5016, + EndPos: 5018, + }, + Value: "Foo", + }, + }, + }, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 256, + EndLine: 256, + StartPos: 5021, + EndPos: 5025, + }, + Value: "class", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 257, + EndLine: 257, + StartPos: 5030, + EndPos: 5052, + }, + Expr: &expr.Yield{ + Position: &position.Position{ + StartLine: 257, + EndLine: 257, + StartPos: 5030, + EndPos: 5051, + }, + Key: &expr.Variable{ + Position: &position.Position{ + StartLine: 257, + EndLine: 257, + StartPos: 5036, + EndPos: 5037, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 257, + EndLine: 257, + StartPos: 5036, + EndPos: 5037, + }, + Value: "a", + }, + }, + Value: &expr.ClassConstFetch{ + Position: &position.Position{ + StartLine: 257, + EndLine: 257, + StartPos: 5042, + EndPos: 5051, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 257, + EndLine: 257, + StartPos: 5042, + EndPos: 5044, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 257, + EndLine: 257, + StartPos: 5042, + EndPos: 5044, + }, + Value: "Foo", + }, + }, + }, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 257, + EndLine: 257, + StartPos: 5047, + EndPos: 5051, + }, + Value: "class", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 259, + EndLine: 259, + StartPos: 5059, + EndPos: 5068, + }, + Expr: &cast.Array{ + Position: &position.Position{ + StartLine: 259, + EndLine: 259, + StartPos: 5059, + EndPos: 5067, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 259, + EndLine: 259, + StartPos: 5066, + EndPos: 5067, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 259, + EndLine: 259, + StartPos: 5066, + EndPos: 5067, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 260, + EndLine: 260, + StartPos: 5072, + EndPos: 5083, + }, + Expr: &cast.Bool{ + Position: &position.Position{ + StartLine: 260, + EndLine: 260, + StartPos: 5072, + EndPos: 5082, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 260, + EndLine: 260, + StartPos: 5081, + EndPos: 5082, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 260, + EndLine: 260, + StartPos: 5081, + EndPos: 5082, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 261, + EndLine: 261, + StartPos: 5087, + EndPos: 5095, + }, + Expr: &cast.Bool{ + Position: &position.Position{ + StartLine: 261, + EndLine: 261, + StartPos: 5087, + EndPos: 5094, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 261, + EndLine: 261, + StartPos: 5093, + EndPos: 5094, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 261, + EndLine: 261, + StartPos: 5093, + EndPos: 5094, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 262, + EndLine: 262, + StartPos: 5099, + EndPos: 5109, + }, + Expr: &cast.Double{ + Position: &position.Position{ + StartLine: 262, + EndLine: 262, + StartPos: 5099, + EndPos: 5108, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 262, + EndLine: 262, + StartPos: 5107, + EndPos: 5108, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 262, + EndLine: 262, + StartPos: 5107, + EndPos: 5108, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 263, + EndLine: 263, + StartPos: 5113, + EndPos: 5122, + }, + Expr: &cast.Double{ + Position: &position.Position{ + StartLine: 263, + EndLine: 263, + StartPos: 5113, + EndPos: 5121, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 263, + EndLine: 263, + StartPos: 5120, + EndPos: 5121, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 263, + EndLine: 263, + StartPos: 5120, + EndPos: 5121, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 264, + EndLine: 264, + StartPos: 5126, + EndPos: 5137, + }, + Expr: &cast.Int{ + Position: &position.Position{ + StartLine: 264, + EndLine: 264, + StartPos: 5126, + EndPos: 5136, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 264, + EndLine: 264, + StartPos: 5135, + EndPos: 5136, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 264, + EndLine: 264, + StartPos: 5135, + EndPos: 5136, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 265, + EndLine: 265, + StartPos: 5141, + EndPos: 5148, + }, + Expr: &cast.Int{ + Position: &position.Position{ + StartLine: 265, + EndLine: 265, + StartPos: 5141, + EndPos: 5147, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 265, + EndLine: 265, + StartPos: 5146, + EndPos: 5147, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 265, + EndLine: 265, + StartPos: 5146, + EndPos: 5147, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 266, + EndLine: 266, + StartPos: 5152, + EndPos: 5162, + }, + Expr: &cast.Object{ + Position: &position.Position{ + StartLine: 266, + EndLine: 266, + StartPos: 5152, + EndPos: 5161, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 266, + EndLine: 266, + StartPos: 5160, + EndPos: 5161, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 266, + EndLine: 266, + StartPos: 5160, + EndPos: 5161, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 267, + EndLine: 267, + StartPos: 5166, + EndPos: 5176, + }, + Expr: &cast.String{ + Position: &position.Position{ + StartLine: 267, + EndLine: 267, + StartPos: 5166, + EndPos: 5175, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 267, + EndLine: 267, + StartPos: 5174, + EndPos: 5175, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 267, + EndLine: 267, + StartPos: 5174, + EndPos: 5175, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 268, + EndLine: 268, + StartPos: 5180, + EndPos: 5189, + }, + Expr: &cast.Unset{ + Position: &position.Position{ + StartLine: 268, + EndLine: 268, + StartPos: 5180, + EndPos: 5188, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 268, + EndLine: 268, + StartPos: 5187, + EndPos: 5188, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 268, + EndLine: 268, + StartPos: 5187, + EndPos: 5188, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 270, + EndLine: 270, + StartPos: 5194, + EndPos: 5201, + }, + Expr: &binary.BitwiseAnd{ + Position: &position.Position{ + StartLine: 270, + EndLine: 270, + StartPos: 5194, + EndPos: 5200, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 270, + EndLine: 270, + StartPos: 5194, + EndPos: 5195, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 270, + EndLine: 270, + StartPos: 5194, + EndPos: 5195, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 270, + EndLine: 270, + StartPos: 5199, + EndPos: 5200, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 270, + EndLine: 270, + StartPos: 5199, + EndPos: 5200, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 271, + EndLine: 271, + StartPos: 5205, + EndPos: 5212, + }, + Expr: &binary.BitwiseOr{ + Position: &position.Position{ + StartLine: 271, + EndLine: 271, + StartPos: 5205, + EndPos: 5211, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 271, + EndLine: 271, + StartPos: 5205, + EndPos: 5206, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 271, + EndLine: 271, + StartPos: 5205, + EndPos: 5206, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 271, + EndLine: 271, + StartPos: 5210, + EndPos: 5211, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 271, + EndLine: 271, + StartPos: 5210, + EndPos: 5211, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 272, + EndLine: 272, + StartPos: 5216, + EndPos: 5223, + }, + Expr: &binary.BitwiseXor{ + Position: &position.Position{ + StartLine: 272, + EndLine: 272, + StartPos: 5216, + EndPos: 5222, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 272, + EndLine: 272, + StartPos: 5216, + EndPos: 5217, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 272, + EndLine: 272, + StartPos: 5216, + EndPos: 5217, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 272, + EndLine: 272, + StartPos: 5221, + EndPos: 5222, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 272, + EndLine: 272, + StartPos: 5221, + EndPos: 5222, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 273, + EndLine: 273, + StartPos: 5227, + EndPos: 5235, + }, + Expr: &binary.BooleanAnd{ + Position: &position.Position{ + StartLine: 273, + EndLine: 273, + StartPos: 5227, + EndPos: 5234, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 273, + EndLine: 273, + StartPos: 5227, + EndPos: 5228, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 273, + EndLine: 273, + StartPos: 5227, + EndPos: 5228, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 273, + EndLine: 273, + StartPos: 5233, + EndPos: 5234, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 273, + EndLine: 273, + StartPos: 5233, + EndPos: 5234, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 274, + EndLine: 274, + StartPos: 5239, + EndPos: 5247, + }, + Expr: &binary.BooleanOr{ + Position: &position.Position{ + StartLine: 274, + EndLine: 274, + StartPos: 5239, + EndPos: 5246, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 274, + EndLine: 274, + StartPos: 5239, + EndPos: 5240, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 274, + EndLine: 274, + StartPos: 5239, + EndPos: 5240, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 274, + EndLine: 274, + StartPos: 5245, + EndPos: 5246, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 274, + EndLine: 274, + StartPos: 5245, + EndPos: 5246, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 275, + EndLine: 275, + StartPos: 5251, + EndPos: 5258, + }, + Expr: &binary.Concat{ + Position: &position.Position{ + StartLine: 275, + EndLine: 275, + StartPos: 5251, + EndPos: 5257, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 275, + EndLine: 275, + StartPos: 5251, + EndPos: 5252, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 275, + EndLine: 275, + StartPos: 5251, + EndPos: 5252, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 275, + EndLine: 275, + StartPos: 5256, + EndPos: 5257, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 275, + EndLine: 275, + StartPos: 5256, + EndPos: 5257, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 276, + EndLine: 276, + StartPos: 5262, + EndPos: 5269, + }, + Expr: &binary.Div{ + Position: &position.Position{ + StartLine: 276, + EndLine: 276, + StartPos: 5262, + EndPos: 5268, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 276, + EndLine: 276, + StartPos: 5262, + EndPos: 5263, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 276, + EndLine: 276, + StartPos: 5262, + EndPos: 5263, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 276, + EndLine: 276, + StartPos: 5267, + EndPos: 5268, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 276, + EndLine: 276, + StartPos: 5267, + EndPos: 5268, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 277, + EndLine: 277, + StartPos: 5273, + EndPos: 5281, + }, + Expr: &binary.Equal{ + Position: &position.Position{ + StartLine: 277, + EndLine: 277, + StartPos: 5273, + EndPos: 5280, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 277, + EndLine: 277, + StartPos: 5273, + EndPos: 5274, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 277, + EndLine: 277, + StartPos: 5273, + EndPos: 5274, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 277, + EndLine: 277, + StartPos: 5279, + EndPos: 5280, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 277, + EndLine: 277, + StartPos: 5279, + EndPos: 5280, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 278, + EndLine: 278, + StartPos: 5285, + EndPos: 5293, + }, + Expr: &binary.GreaterOrEqual{ + Position: &position.Position{ + StartLine: 278, + EndLine: 278, + StartPos: 5285, + EndPos: 5292, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 278, + EndLine: 278, + StartPos: 5285, + EndPos: 5286, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 278, + EndLine: 278, + StartPos: 5285, + EndPos: 5286, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 278, + EndLine: 278, + StartPos: 5291, + EndPos: 5292, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 278, + EndLine: 278, + StartPos: 5291, + EndPos: 5292, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 279, + EndLine: 279, + StartPos: 5297, + EndPos: 5304, + }, + Expr: &binary.Greater{ + Position: &position.Position{ + StartLine: 279, + EndLine: 279, + StartPos: 5297, + EndPos: 5303, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 279, + EndLine: 279, + StartPos: 5297, + EndPos: 5298, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 279, + EndLine: 279, + StartPos: 5297, + EndPos: 5298, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 279, + EndLine: 279, + StartPos: 5302, + EndPos: 5303, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 279, + EndLine: 279, + StartPos: 5302, + EndPos: 5303, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 280, + EndLine: 280, + StartPos: 5308, + EndPos: 5317, + }, + Expr: &binary.Identical{ + Position: &position.Position{ + StartLine: 280, + EndLine: 280, + StartPos: 5308, + EndPos: 5316, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 280, + EndLine: 280, + StartPos: 5308, + EndPos: 5309, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 280, + EndLine: 280, + StartPos: 5308, + EndPos: 5309, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 280, + EndLine: 280, + StartPos: 5315, + EndPos: 5316, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 280, + EndLine: 280, + StartPos: 5315, + EndPos: 5316, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 281, + EndLine: 281, + StartPos: 5321, + EndPos: 5330, + }, + Expr: &binary.LogicalAnd{ + Position: &position.Position{ + StartLine: 281, + EndLine: 281, + StartPos: 5321, + EndPos: 5329, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 281, + EndLine: 281, + StartPos: 5321, + EndPos: 5322, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 281, + EndLine: 281, + StartPos: 5321, + EndPos: 5322, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 281, + EndLine: 281, + StartPos: 5328, + EndPos: 5329, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 281, + EndLine: 281, + StartPos: 5328, + EndPos: 5329, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 282, + EndLine: 282, + StartPos: 5334, + EndPos: 5342, + }, + Expr: &binary.LogicalOr{ + Position: &position.Position{ + StartLine: 282, + EndLine: 282, + StartPos: 5334, + EndPos: 5341, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 282, + EndLine: 282, + StartPos: 5334, + EndPos: 5335, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 282, + EndLine: 282, + StartPos: 5334, + EndPos: 5335, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 282, + EndLine: 282, + StartPos: 5340, + EndPos: 5341, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 282, + EndLine: 282, + StartPos: 5340, + EndPos: 5341, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 283, + EndLine: 283, + StartPos: 5346, + EndPos: 5355, + }, + Expr: &binary.LogicalXor{ + Position: &position.Position{ + StartLine: 283, + EndLine: 283, + StartPos: 5346, + EndPos: 5354, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 283, + EndLine: 283, + StartPos: 5346, + EndPos: 5347, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 283, + EndLine: 283, + StartPos: 5346, + EndPos: 5347, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 283, + EndLine: 283, + StartPos: 5353, + EndPos: 5354, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 283, + EndLine: 283, + StartPos: 5353, + EndPos: 5354, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 284, + EndLine: 284, + StartPos: 5359, + EndPos: 5366, + }, + Expr: &binary.Minus{ + Position: &position.Position{ + StartLine: 284, + EndLine: 284, + StartPos: 5359, + EndPos: 5365, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 284, + EndLine: 284, + StartPos: 5359, + EndPos: 5360, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 284, + EndLine: 284, + StartPos: 5359, + EndPos: 5360, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 284, + EndLine: 284, + StartPos: 5364, + EndPos: 5365, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 284, + EndLine: 284, + StartPos: 5364, + EndPos: 5365, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 285, + EndLine: 285, + StartPos: 5370, + EndPos: 5377, + }, + Expr: &binary.Mod{ + Position: &position.Position{ + StartLine: 285, + EndLine: 285, + StartPos: 5370, + EndPos: 5376, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 285, + EndLine: 285, + StartPos: 5370, + EndPos: 5371, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 285, + EndLine: 285, + StartPos: 5370, + EndPos: 5371, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 285, + EndLine: 285, + StartPos: 5375, + EndPos: 5376, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 285, + EndLine: 285, + StartPos: 5375, + EndPos: 5376, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 286, + EndLine: 286, + StartPos: 5381, + EndPos: 5388, + }, + Expr: &binary.Mul{ + Position: &position.Position{ + StartLine: 286, + EndLine: 286, + StartPos: 5381, + EndPos: 5387, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 286, + EndLine: 286, + StartPos: 5381, + EndPos: 5382, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 286, + EndLine: 286, + StartPos: 5381, + EndPos: 5382, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 286, + EndLine: 286, + StartPos: 5386, + EndPos: 5387, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 286, + EndLine: 286, + StartPos: 5386, + EndPos: 5387, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 287, + EndLine: 287, + StartPos: 5392, + EndPos: 5400, + }, + Expr: &binary.NotEqual{ + Position: &position.Position{ + StartLine: 287, + EndLine: 287, + StartPos: 5392, + EndPos: 5399, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 287, + EndLine: 287, + StartPos: 5392, + EndPos: 5393, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 287, + EndLine: 287, + StartPos: 5392, + EndPos: 5393, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 287, + EndLine: 287, + StartPos: 5398, + EndPos: 5399, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 287, + EndLine: 287, + StartPos: 5398, + EndPos: 5399, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 288, + EndLine: 288, + StartPos: 5404, + EndPos: 5413, + }, + Expr: &binary.NotIdentical{ + Position: &position.Position{ + StartLine: 288, + EndLine: 288, + StartPos: 5404, + EndPos: 5412, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 288, + EndLine: 288, + StartPos: 5404, + EndPos: 5405, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 288, + EndLine: 288, + StartPos: 5404, + EndPos: 5405, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 288, + EndLine: 288, + StartPos: 5411, + EndPos: 5412, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 288, + EndLine: 288, + StartPos: 5411, + EndPos: 5412, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 289, + EndLine: 289, + StartPos: 5417, + EndPos: 5424, + }, + Expr: &binary.Plus{ + Position: &position.Position{ + StartLine: 289, + EndLine: 289, + StartPos: 5417, + EndPos: 5423, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 289, + EndLine: 289, + StartPos: 5417, + EndPos: 5418, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 289, + EndLine: 289, + StartPos: 5417, + EndPos: 5418, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 289, + EndLine: 289, + StartPos: 5422, + EndPos: 5423, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 289, + EndLine: 289, + StartPos: 5422, + EndPos: 5423, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 290, + EndLine: 290, + StartPos: 5428, + EndPos: 5436, + }, + Expr: &binary.Pow{ + Position: &position.Position{ + StartLine: 290, + EndLine: 290, + StartPos: 5428, + EndPos: 5435, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 290, + EndLine: 290, + StartPos: 5428, + EndPos: 5429, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 290, + EndLine: 290, + StartPos: 5428, + EndPos: 5429, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 290, + EndLine: 290, + StartPos: 5434, + EndPos: 5435, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 290, + EndLine: 290, + StartPos: 5434, + EndPos: 5435, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 291, + EndLine: 291, + StartPos: 5440, + EndPos: 5448, + }, + Expr: &binary.ShiftLeft{ + Position: &position.Position{ + StartLine: 291, + EndLine: 291, + StartPos: 5440, + EndPos: 5447, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 291, + EndLine: 291, + StartPos: 5440, + EndPos: 5441, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 291, + EndLine: 291, + StartPos: 5440, + EndPos: 5441, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 291, + EndLine: 291, + StartPos: 5446, + EndPos: 5447, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 291, + EndLine: 291, + StartPos: 5446, + EndPos: 5447, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 292, + EndLine: 292, + StartPos: 5452, + EndPos: 5460, + }, + Expr: &binary.ShiftRight{ + Position: &position.Position{ + StartLine: 292, + EndLine: 292, + StartPos: 5452, + EndPos: 5459, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 292, + EndLine: 292, + StartPos: 5452, + EndPos: 5453, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 292, + EndLine: 292, + StartPos: 5452, + EndPos: 5453, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 292, + EndLine: 292, + StartPos: 5458, + EndPos: 5459, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 292, + EndLine: 292, + StartPos: 5458, + EndPos: 5459, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 293, + EndLine: 293, + StartPos: 5464, + EndPos: 5472, + }, + Expr: &binary.SmallerOrEqual{ + Position: &position.Position{ + StartLine: 293, + EndLine: 293, + StartPos: 5464, + EndPos: 5471, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 293, + EndLine: 293, + StartPos: 5464, + EndPos: 5465, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 293, + EndLine: 293, + StartPos: 5464, + EndPos: 5465, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 293, + EndLine: 293, + StartPos: 5470, + EndPos: 5471, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 293, + EndLine: 293, + StartPos: 5470, + EndPos: 5471, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 294, + EndLine: 294, + StartPos: 5476, + EndPos: 5483, + }, + Expr: &binary.Smaller{ + Position: &position.Position{ + StartLine: 294, + EndLine: 294, + StartPos: 5476, + EndPos: 5482, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 294, + EndLine: 294, + StartPos: 5476, + EndPos: 5477, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 294, + EndLine: 294, + StartPos: 5476, + EndPos: 5477, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 294, + EndLine: 294, + StartPos: 5481, + EndPos: 5482, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 294, + EndLine: 294, + StartPos: 5481, + EndPos: 5482, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5488, + EndPos: 5496, + }, + Expr: &assign.Reference{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5488, + EndPos: 5495, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5488, + EndPos: 5489, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5488, + EndPos: 5489, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5494, + EndPos: 5495, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5494, + EndPos: 5495, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5500, + EndPos: 5513, + }, + Expr: &assign.Reference{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5500, + EndPos: 5512, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5500, + EndPos: 5501, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5500, + EndPos: 5501, + }, + Value: "a", + }, + }, + Expression: &expr.New{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5506, + EndPos: 5512, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5510, + EndPos: 5512, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5510, + EndPos: 5512, + }, + Value: "Foo", }, }, }, }, }, }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &expr.Array{}, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5517, + EndPos: 5534, + }, + Expr: &assign.Reference{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5517, + EndPos: 5533, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5517, + EndPos: 5518, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5517, + EndPos: 5518, + }, + Value: "a", + }, + }, + Expression: &expr.New{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5523, + EndPos: 5533, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5527, + EndPos: 5529, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5527, + EndPos: 5529, + }, + Value: "Foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5530, + EndPos: 5533, + }, + Arguments: []node.Node{ + &node.Argument{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5531, + EndPos: 5532, + }, + Variadic: false, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5531, + EndPos: 5532, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5531, + EndPos: 5532, + }, + Value: "b", + }, + }, + }, + }, + }, }, }, }, - &stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &expr.Array{ + &stmt.Expression{ + Position: &position.Position{ + StartLine: 299, + EndLine: 299, + StartPos: 5538, + EndPos: 5545, + }, + Expr: &assign.Assign{ + Position: &position.Position{ + StartLine: 299, + EndLine: 299, + StartPos: 5538, + EndPos: 5544, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 299, + EndLine: 299, + StartPos: 5538, + EndPos: 5539, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 299, + EndLine: 299, + StartPos: 5538, + EndPos: 5539, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 299, + EndLine: 299, + StartPos: 5543, + EndPos: 5544, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 299, + EndLine: 299, + StartPos: 5543, + EndPos: 5544, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 300, + EndLine: 300, + StartPos: 5549, + EndPos: 5557, + }, + Expr: &assign.BitwiseAnd{ + Position: &position.Position{ + StartLine: 300, + EndLine: 300, + StartPos: 5549, + EndPos: 5556, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 300, + EndLine: 300, + StartPos: 5549, + EndPos: 5550, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 300, + EndLine: 300, + StartPos: 5549, + EndPos: 5550, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 300, + EndLine: 300, + StartPos: 5555, + EndPos: 5556, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 300, + EndLine: 300, + StartPos: 5555, + EndPos: 5556, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 301, + EndLine: 301, + StartPos: 5561, + EndPos: 5569, + }, + Expr: &assign.BitwiseOr{ + Position: &position.Position{ + StartLine: 301, + EndLine: 301, + StartPos: 5561, + EndPos: 5568, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 301, + EndLine: 301, + StartPos: 5561, + EndPos: 5562, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 301, + EndLine: 301, + StartPos: 5561, + EndPos: 5562, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 301, + EndLine: 301, + StartPos: 5567, + EndPos: 5568, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 301, + EndLine: 301, + StartPos: 5567, + EndPos: 5568, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 302, + EndLine: 302, + StartPos: 5573, + EndPos: 5581, + }, + Expr: &assign.BitwiseXor{ + Position: &position.Position{ + StartLine: 302, + EndLine: 302, + StartPos: 5573, + EndPos: 5580, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 302, + EndLine: 302, + StartPos: 5573, + EndPos: 5574, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 302, + EndLine: 302, + StartPos: 5573, + EndPos: 5574, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 302, + EndLine: 302, + StartPos: 5579, + EndPos: 5580, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 302, + EndLine: 302, + StartPos: 5579, + EndPos: 5580, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 303, + EndLine: 303, + StartPos: 5585, + EndPos: 5593, + }, + Expr: &assign.Concat{ + Position: &position.Position{ + StartLine: 303, + EndLine: 303, + StartPos: 5585, + EndPos: 5592, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 303, + EndLine: 303, + StartPos: 5585, + EndPos: 5586, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 303, + EndLine: 303, + StartPos: 5585, + EndPos: 5586, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 303, + EndLine: 303, + StartPos: 5591, + EndPos: 5592, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 303, + EndLine: 303, + StartPos: 5591, + EndPos: 5592, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 304, + EndLine: 304, + StartPos: 5597, + EndPos: 5605, + }, + Expr: &assign.Div{ + Position: &position.Position{ + StartLine: 304, + EndLine: 304, + StartPos: 5597, + EndPos: 5604, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 304, + EndLine: 304, + StartPos: 5597, + EndPos: 5598, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 304, + EndLine: 304, + StartPos: 5597, + EndPos: 5598, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 304, + EndLine: 304, + StartPos: 5603, + EndPos: 5604, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 304, + EndLine: 304, + StartPos: 5603, + EndPos: 5604, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 305, + EndLine: 305, + StartPos: 5609, + EndPos: 5617, + }, + Expr: &assign.Minus{ + Position: &position.Position{ + StartLine: 305, + EndLine: 305, + StartPos: 5609, + EndPos: 5616, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 305, + EndLine: 305, + StartPos: 5609, + EndPos: 5610, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 305, + EndLine: 305, + StartPos: 5609, + EndPos: 5610, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 305, + EndLine: 305, + StartPos: 5615, + EndPos: 5616, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 305, + EndLine: 305, + StartPos: 5615, + EndPos: 5616, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 306, + EndLine: 306, + StartPos: 5621, + EndPos: 5629, + }, + Expr: &assign.Mod{ + Position: &position.Position{ + StartLine: 306, + EndLine: 306, + StartPos: 5621, + EndPos: 5628, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 306, + EndLine: 306, + StartPos: 5621, + EndPos: 5622, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 306, + EndLine: 306, + StartPos: 5621, + EndPos: 5622, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 306, + EndLine: 306, + StartPos: 5627, + EndPos: 5628, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 306, + EndLine: 306, + StartPos: 5627, + EndPos: 5628, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 307, + EndLine: 307, + StartPos: 5633, + EndPos: 5641, + }, + Expr: &assign.Mul{ + Position: &position.Position{ + StartLine: 307, + EndLine: 307, + StartPos: 5633, + EndPos: 5640, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 307, + EndLine: 307, + StartPos: 5633, + EndPos: 5634, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 307, + EndLine: 307, + StartPos: 5633, + EndPos: 5634, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 307, + EndLine: 307, + StartPos: 5639, + EndPos: 5640, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 307, + EndLine: 307, + StartPos: 5639, + EndPos: 5640, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 308, + EndLine: 308, + StartPos: 5645, + EndPos: 5653, + }, + Expr: &assign.Plus{ + Position: &position.Position{ + StartLine: 308, + EndLine: 308, + StartPos: 5645, + EndPos: 5652, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 308, + EndLine: 308, + StartPos: 5645, + EndPos: 5646, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 308, + EndLine: 308, + StartPos: 5645, + EndPos: 5646, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 308, + EndLine: 308, + StartPos: 5651, + EndPos: 5652, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 308, + EndLine: 308, + StartPos: 5651, + EndPos: 5652, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 309, + EndLine: 309, + StartPos: 5657, + EndPos: 5666, + }, + Expr: &assign.Pow{ + Position: &position.Position{ + StartLine: 309, + EndLine: 309, + StartPos: 5657, + EndPos: 5665, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 309, + EndLine: 309, + StartPos: 5657, + EndPos: 5658, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 309, + EndLine: 309, + StartPos: 5657, + EndPos: 5658, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 309, + EndLine: 309, + StartPos: 5664, + EndPos: 5665, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 309, + EndLine: 309, + StartPos: 5664, + EndPos: 5665, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 310, + EndLine: 310, + StartPos: 5670, + EndPos: 5679, + }, + Expr: &assign.ShiftLeft{ + Position: &position.Position{ + StartLine: 310, + EndLine: 310, + StartPos: 5670, + EndPos: 5678, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 310, + EndLine: 310, + StartPos: 5670, + EndPos: 5671, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 310, + EndLine: 310, + StartPos: 5670, + EndPos: 5671, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 310, + EndLine: 310, + StartPos: 5677, + EndPos: 5678, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 310, + EndLine: 310, + StartPos: 5677, + EndPos: 5678, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 311, + EndLine: 311, + StartPos: 5683, + EndPos: 5692, + }, + Expr: &assign.ShiftRight{ + Position: &position.Position{ + StartLine: 311, + EndLine: 311, + StartPos: 5683, + EndPos: 5691, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 311, + EndLine: 311, + StartPos: 5683, + EndPos: 5684, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 311, + EndLine: 311, + StartPos: 5683, + EndPos: 5684, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 311, + EndLine: 311, + StartPos: 5690, + EndPos: 5691, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 311, + EndLine: 311, + StartPos: 5690, + EndPos: 5691, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5699, + EndPos: 5710, + }, + Expr: &expr.New{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5699, + EndPos: 5708, + }, + Class: &name.FullyQualified{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5703, + EndPos: 5706, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5704, + EndPos: 5706, + }, + Value: "Foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5707, + EndPos: 5708, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5735, + EndPos: 5738, + }, + Expr: &expr.PropertyFetch{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5735, + EndPos: 5737, + }, + Variable: &expr.MethodCall{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5731, + EndPos: 5732, + }, + Variable: &expr.New{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5715, + EndPos: 5724, + }, + Class: &name.FullyQualified{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5719, + EndPos: 5722, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5720, + EndPos: 5722, + }, + Value: "Foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5723, + EndPos: 5724, + }, + }, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5728, + EndPos: 5730, + }, + Value: "bar", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5731, + EndPos: 5732, + }, + }, + }, + Property: &node.Identifier{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5735, + EndPos: 5737, + }, + Value: "baz", + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 316, + EndLine: 316, + StartPos: 5758, + EndPos: 5760, + }, + Expr: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 316, + EndLine: 316, + StartPos: 5758, + EndPos: 5758, + }, + Variable: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 316, + EndLine: 316, + StartPos: 5755, + EndPos: 5755, + }, + Variable: &expr.New{ + Position: &position.Position{ + StartLine: 316, + EndLine: 316, + StartPos: 5743, + EndPos: 5752, + }, + Class: &name.FullyQualified{ + Position: &position.Position{ + StartLine: 316, + EndLine: 316, + StartPos: 5747, + EndPos: 5750, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 316, + EndLine: 316, + StartPos: 5748, + EndPos: 5750, + }, + Value: "Foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 316, + EndLine: 316, + StartPos: 5751, + EndPos: 5752, + }, + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 316, + EndLine: 316, + StartPos: 5755, + EndPos: 5755, + }, + Value: "0", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 316, + EndLine: 316, + StartPos: 5758, + EndPos: 5758, + }, + Value: "0", + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 317, + EndLine: 317, + StartPos: 5784, + EndPos: 5786, + }, + Expr: &expr.MethodCall{ + Position: &position.Position{ + StartLine: 317, + EndLine: 317, + StartPos: 5784, + EndPos: 5785, + }, + Variable: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 317, + EndLine: 317, + StartPos: 5777, + EndPos: 5777, + }, + Variable: &expr.New{ + Position: &position.Position{ + StartLine: 317, + EndLine: 317, + StartPos: 5765, + EndPos: 5774, + }, + Class: &name.FullyQualified{ + Position: &position.Position{ + StartLine: 317, + EndLine: 317, + StartPos: 5769, + EndPos: 5772, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 317, + EndLine: 317, + StartPos: 5770, + EndPos: 5772, + }, + Value: "Foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 317, + EndLine: 317, + StartPos: 5773, + EndPos: 5774, + }, + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 317, + EndLine: 317, + StartPos: 5777, + EndPos: 5777, + }, + Value: "0", + }, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 317, + EndLine: 317, + StartPos: 5781, + EndPos: 5783, + }, + Value: "bar", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 317, + EndLine: 317, + StartPos: 5784, + EndPos: 5785, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5791, + EndPos: 5807, + }, + Expr: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5791, + EndPos: 5806, + }, + Variable: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5791, + EndPos: 5803, + }, + Variable: &expr.Array{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5791, + EndPos: 5800, + }, Items: []node.Node{ &expr.ArrayItem{ - Key: &scalar.Lnumber{Value: "1"}, - Val: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5797, + EndPos: 5799, + }, + Val: &expr.ShortArray{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5797, + EndPos: 5799, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5798, + EndPos: 5798, + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5798, + EndPos: 5798, + }, + Value: "0", + }, + }, + }, + }, }, - &expr.ArrayItem{ - Val: &scalar.Lnumber{Value: "2"}, + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5802, + EndPos: 5802, + }, + Value: "0", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5805, + EndPos: 5805, + }, + Value: "0", + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 320, + EndLine: 320, + StartPos: 5811, + EndPos: 5819, + }, + Expr: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 320, + EndLine: 320, + StartPos: 5811, + EndPos: 5818, + }, + Variable: &scalar.String{ + Position: &position.Position{ + StartLine: 320, + EndLine: 320, + StartPos: 5811, + EndPos: 5815, + }, + Value: "\"foo\"", + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 320, + EndLine: 320, + StartPos: 5817, + EndPos: 5817, + }, + Value: "0", + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 321, + EndLine: 321, + StartPos: 5823, + EndPos: 5829, + }, + Expr: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 321, + EndLine: 321, + StartPos: 5823, + EndPos: 5828, + }, + Variable: &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 321, + EndLine: 321, + StartPos: 5823, + EndPos: 5825, + }, + Constant: &name.Name{ + Position: &position.Position{ + StartLine: 321, + EndLine: 321, + StartPos: 5823, + EndPos: 5825, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 321, + EndLine: 321, + StartPos: 5823, + EndPos: 5825, + }, + Value: "foo", + }, + }, + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 321, + EndLine: 321, + StartPos: 5827, + EndPos: 5827, + }, + Value: "0", + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 322, + EndLine: 322, + StartPos: 5833, + EndPos: 5844, + }, + Expr: &expr.ClassConstFetch{ + Position: &position.Position{ + StartLine: 322, + EndLine: 322, + StartPos: 5833, + EndPos: 5843, + }, + Class: &node.Identifier{ + Position: &position.Position{ + StartLine: 322, + EndLine: 322, + StartPos: 5833, + EndPos: 5838, + }, + Value: "static", + }, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 322, + EndLine: 322, + StartPos: 5841, + EndPos: 5843, + }, + Value: "foo", + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 324, + EndLine: 324, + StartPos: 5849, + EndPos: 5857, + }, + Expr: &expr.New{ + Position: &position.Position{ + StartLine: 324, + EndLine: 324, + StartPos: 5849, + EndPos: 5856, + }, + Class: &expr.Variable{ + Position: &position.Position{ + StartLine: 324, + EndLine: 324, + StartPos: 5853, + EndPos: 5856, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 324, + EndLine: 324, + StartPos: 5853, + EndPos: 5856, + }, + Value: "foo", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5861, + EndPos: 5875, + }, + Expr: &expr.New{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5861, + EndPos: 5874, + }, + Class: &expr.StaticPropertyFetch{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5865, + EndPos: 5874, + }, + Class: &expr.Variable{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5865, + EndPos: 5868, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5865, + EndPos: 5868, + }, + Value: "foo", + }, + }, + Property: &expr.Variable{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5871, + EndPos: 5874, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5871, + EndPos: 5874, + }, + Value: "bar", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 326, + EndLine: 326, + StartPos: 5879, + EndPos: 5891, + }, + Expr: &expr.New{ + Position: &position.Position{ + StartLine: 326, + EndLine: 326, + StartPos: 5879, + EndPos: 5889, + }, + Class: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 326, + EndLine: 326, + StartPos: 5889, + EndPos: 5889, + }, + Variable: &expr.PropertyFetch{ + Position: &position.Position{ + StartLine: 326, + EndLine: 326, + StartPos: 5887, + EndPos: 5889, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 326, + EndLine: 326, + StartPos: 5883, + EndPos: 5887, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 326, + EndLine: 326, + StartPos: 5883, + EndPos: 5884, + }, + Value: "a", + }, + }, + Property: &node.Identifier{ + Position: &position.Position{ + StartLine: 326, + EndLine: 326, + StartPos: 5887, + EndPos: 5887, + }, + Value: "b", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 326, + EndLine: 326, + StartPos: 5889, + EndPos: 5889, + }, + Value: "0", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5895, + EndPos: 5926, + }, + Expr: &expr.New{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5895, + EndPos: 5924, + }, + Class: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5924, + EndPos: 5924, + }, + Variable: &expr.PropertyFetch{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5922, + EndPos: 5924, + }, + Variable: &expr.PropertyFetch{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5918, + EndPos: 5922, + }, + Variable: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5905, + EndPos: 5919, + }, + Variable: &expr.PropertyFetch{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5903, + EndPos: 5914, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5899, + EndPos: 5903, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5899, + EndPos: 5900, + }, + Value: "a", + }, + }, + Property: &node.Identifier{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5903, + EndPos: 5903, + }, + Value: "b", + }, + }, + Dim: &expr.Ternary{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5905, + EndPos: 5914, + }, + Condition: &expr.Variable{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5905, + EndPos: 5906, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5905, + EndPos: 5906, + }, + Value: "b", + }, + }, + IfFalse: &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5911, + EndPos: 5914, + }, + Constant: &name.Name{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5911, + EndPos: 5914, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5911, + EndPos: 5914, + }, + Value: "null", + }, + }, + }, + }, + }, + }, + Property: &expr.Variable{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5918, + EndPos: 5919, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5918, + EndPos: 5919, + }, + Value: "c", + }, + }, + }, + Property: &node.Identifier{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5922, + EndPos: 5922, + }, + Value: "d", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5924, + EndPos: 5924, + }, + Value: "0", + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5927, + EndPos: 5945, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5934, + EndPos: 5944, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5934, + EndPos: 5935, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5934, + EndPos: 5935, + }, + Value: "a", + }, + }, + Expr: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5939, + EndPos: 5944, + }, + Variable: &expr.ShortArray{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5939, + EndPos: 5941, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5940, + EndPos: 5940, + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5940, + EndPos: 5940, + }, + Value: "1", + }, + }, + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5943, + EndPos: 5943, + }, + Value: "0", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5950, + EndPos: 5964, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5957, + EndPos: 5963, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5957, + EndPos: 5958, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5957, + EndPos: 5958, + }, + Value: "a", + }, + }, + Expr: &expr.BooleanNot{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5962, + EndPos: 5963, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5963, + EndPos: 5963, + }, + Value: "1", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 5968, + EndPos: 5982, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 5975, + EndPos: 5981, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 5975, + EndPos: 5976, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 5975, + EndPos: 5976, + }, + Value: "a", + }, + }, + Expr: &expr.BitwiseNot{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 5980, + EndPos: 5981, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 5981, + EndPos: 5981, + }, + Value: "1", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 5986, + EndPos: 6000, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 5993, + EndPos: 5999, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 5993, + EndPos: 5994, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 5993, + EndPos: 5994, + }, + Value: "a", + }, + }, + Expr: &expr.UnaryPlus{ + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 5998, + EndPos: 5999, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 5999, + EndPos: 5999, + }, + Value: "1", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 332, + EndLine: 332, + StartPos: 6004, + EndPos: 6018, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 332, + EndLine: 332, + StartPos: 6011, + EndPos: 6017, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 332, + EndLine: 332, + StartPos: 6011, + EndPos: 6012, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 332, + EndLine: 332, + StartPos: 6011, + EndPos: 6012, + }, + Value: "a", + }, + }, + Expr: &expr.UnaryMinus{ + Position: &position.Position{ + StartLine: 332, + EndLine: 332, + StartPos: 6016, + EndPos: 6017, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 332, + EndLine: 332, + StartPos: 6017, + EndPos: 6017, + }, + Value: "1", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6022, + EndPos: 6037, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6029, + EndPos: 6035, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6029, + EndPos: 6030, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6029, + EndPos: 6030, + }, + Value: "a", + }, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6035, + EndPos: 6035, + }, + Value: "1", + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6041, + EndPos: 6059, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6048, + EndPos: 6058, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6048, + EndPos: 6049, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6048, + EndPos: 6049, + }, + Value: "a", + }, + }, + Expr: &expr.Ternary{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6053, + EndPos: 6058, + }, + Condition: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6053, + EndPos: 6053, + }, + Value: "1", + }, + IfFalse: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6058, + EndPos: 6058, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6063, + EndPos: 6084, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6070, + EndPos: 6083, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6070, + EndPos: 6071, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6070, + EndPos: 6071, + }, + Value: "a", + }, + }, + Expr: &expr.Ternary{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6075, + EndPos: 6083, + }, + Condition: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6075, + EndPos: 6075, + }, + Value: "1", + }, + IfTrue: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6079, + EndPos: 6079, + }, + Value: "2", + }, + IfFalse: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6083, + EndPos: 6083, + }, + Value: "3", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6088, + EndPos: 6105, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6095, + EndPos: 6104, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6095, + EndPos: 6096, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6095, + EndPos: 6096, + }, + Value: "a", + }, + }, + Expr: &binary.BitwiseAnd{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6100, + EndPos: 6104, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6100, + EndPos: 6100, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6104, + EndPos: 6104, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6109, + EndPos: 6126, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6116, + EndPos: 6125, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6116, + EndPos: 6117, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6116, + EndPos: 6117, + }, + Value: "a", + }, + }, + Expr: &binary.BitwiseOr{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6121, + EndPos: 6125, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6121, + EndPos: 6121, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6125, + EndPos: 6125, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6130, + EndPos: 6147, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6137, + EndPos: 6146, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6137, + EndPos: 6138, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6137, + EndPos: 6138, + }, + Value: "a", + }, + }, + Expr: &binary.BitwiseXor{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6142, + EndPos: 6146, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6142, + EndPos: 6142, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6146, + EndPos: 6146, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 339, + EndLine: 339, + StartPos: 6151, + EndPos: 6169, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 339, + EndLine: 339, + StartPos: 6158, + EndPos: 6168, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 339, + EndLine: 339, + StartPos: 6158, + EndPos: 6159, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 339, + EndLine: 339, + StartPos: 6158, + EndPos: 6159, + }, + Value: "a", + }, + }, + Expr: &binary.BooleanAnd{ + Position: &position.Position{ + StartLine: 339, + EndLine: 339, + StartPos: 6163, + EndPos: 6168, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 339, + EndLine: 339, + StartPos: 6163, + EndPos: 6163, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 339, + EndLine: 339, + StartPos: 6168, + EndPos: 6168, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6173, + EndPos: 6191, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6180, + EndPos: 6190, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6180, + EndPos: 6181, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6180, + EndPos: 6181, + }, + Value: "a", + }, + }, + Expr: &binary.BooleanOr{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6185, + EndPos: 6190, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6185, + EndPos: 6185, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6190, + EndPos: 6190, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6195, + EndPos: 6212, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6202, + EndPos: 6211, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6202, + EndPos: 6203, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6202, + EndPos: 6203, + }, + Value: "a", + }, + }, + Expr: &binary.Concat{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6207, + EndPos: 6211, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6207, + EndPos: 6207, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6211, + EndPos: 6211, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 342, + EndLine: 342, + StartPos: 6216, + EndPos: 6233, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 342, + EndLine: 342, + StartPos: 6223, + EndPos: 6232, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 342, + EndLine: 342, + StartPos: 6223, + EndPos: 6224, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 342, + EndLine: 342, + StartPos: 6223, + EndPos: 6224, + }, + Value: "a", + }, + }, + Expr: &binary.Div{ + Position: &position.Position{ + StartLine: 342, + EndLine: 342, + StartPos: 6228, + EndPos: 6232, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 342, + EndLine: 342, + StartPos: 6228, + EndPos: 6228, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 342, + EndLine: 342, + StartPos: 6232, + EndPos: 6232, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6237, + EndPos: 6255, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6244, + EndPos: 6254, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6244, + EndPos: 6245, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6244, + EndPos: 6245, + }, + Value: "a", + }, + }, + Expr: &binary.Equal{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6249, + EndPos: 6254, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6249, + EndPos: 6249, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6254, + EndPos: 6254, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6259, + EndPos: 6277, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6266, + EndPos: 6276, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6266, + EndPos: 6267, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6266, + EndPos: 6267, + }, + Value: "a", + }, + }, + Expr: &binary.GreaterOrEqual{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6271, + EndPos: 6276, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6271, + EndPos: 6271, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6276, + EndPos: 6276, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 345, + EndLine: 345, + StartPos: 6281, + EndPos: 6298, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 345, + EndLine: 345, + StartPos: 6288, + EndPos: 6297, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 345, + EndLine: 345, + StartPos: 6288, + EndPos: 6289, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 345, + EndLine: 345, + StartPos: 6288, + EndPos: 6289, + }, + Value: "a", + }, + }, + Expr: &binary.Greater{ + Position: &position.Position{ + StartLine: 345, + EndLine: 345, + StartPos: 6293, + EndPos: 6297, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 345, + EndLine: 345, + StartPos: 6293, + EndPos: 6293, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 345, + EndLine: 345, + StartPos: 6297, + EndPos: 6297, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6302, + EndPos: 6321, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6309, + EndPos: 6320, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6309, + EndPos: 6310, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6309, + EndPos: 6310, + }, + Value: "a", + }, + }, + Expr: &binary.Identical{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6314, + EndPos: 6320, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6314, + EndPos: 6314, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6320, + EndPos: 6320, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6325, + EndPos: 6344, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6332, + EndPos: 6343, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6332, + EndPos: 6333, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6332, + EndPos: 6333, + }, + Value: "a", + }, + }, + Expr: &binary.LogicalAnd{ + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6337, + EndPos: 6343, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6337, + EndPos: 6337, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6343, + EndPos: 6343, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 348, + EndLine: 348, + StartPos: 6348, + EndPos: 6366, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 348, + EndLine: 348, + StartPos: 6355, + EndPos: 6365, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 348, + EndLine: 348, + StartPos: 6355, + EndPos: 6356, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 348, + EndLine: 348, + StartPos: 6355, + EndPos: 6356, + }, + Value: "a", + }, + }, + Expr: &binary.LogicalOr{ + Position: &position.Position{ + StartLine: 348, + EndLine: 348, + StartPos: 6360, + EndPos: 6365, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 348, + EndLine: 348, + StartPos: 6360, + EndPos: 6360, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 348, + EndLine: 348, + StartPos: 6365, + EndPos: 6365, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 349, + EndLine: 349, + StartPos: 6370, + EndPos: 6389, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 349, + EndLine: 349, + StartPos: 6377, + EndPos: 6388, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 349, + EndLine: 349, + StartPos: 6377, + EndPos: 6378, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 349, + EndLine: 349, + StartPos: 6377, + EndPos: 6378, + }, + Value: "a", + }, + }, + Expr: &binary.LogicalXor{ + Position: &position.Position{ + StartLine: 349, + EndLine: 349, + StartPos: 6382, + EndPos: 6388, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 349, + EndLine: 349, + StartPos: 6382, + EndPos: 6382, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 349, + EndLine: 349, + StartPos: 6388, + EndPos: 6388, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 350, + EndLine: 350, + StartPos: 6393, + EndPos: 6410, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 350, + EndLine: 350, + StartPos: 6400, + EndPos: 6409, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 350, + EndLine: 350, + StartPos: 6400, + EndPos: 6401, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 350, + EndLine: 350, + StartPos: 6400, + EndPos: 6401, + }, + Value: "a", + }, + }, + Expr: &binary.Minus{ + Position: &position.Position{ + StartLine: 350, + EndLine: 350, + StartPos: 6405, + EndPos: 6409, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 350, + EndLine: 350, + StartPos: 6405, + EndPos: 6405, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 350, + EndLine: 350, + StartPos: 6409, + EndPos: 6409, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 351, + EndLine: 351, + StartPos: 6414, + EndPos: 6431, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 351, + EndLine: 351, + StartPos: 6421, + EndPos: 6430, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 351, + EndLine: 351, + StartPos: 6421, + EndPos: 6422, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 351, + EndLine: 351, + StartPos: 6421, + EndPos: 6422, + }, + Value: "a", + }, + }, + Expr: &binary.Mod{ + Position: &position.Position{ + StartLine: 351, + EndLine: 351, + StartPos: 6426, + EndPos: 6430, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 351, + EndLine: 351, + StartPos: 6426, + EndPos: 6426, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 351, + EndLine: 351, + StartPos: 6430, + EndPos: 6430, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 352, + EndLine: 352, + StartPos: 6435, + EndPos: 6452, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 352, + EndLine: 352, + StartPos: 6442, + EndPos: 6451, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 352, + EndLine: 352, + StartPos: 6442, + EndPos: 6443, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 352, + EndLine: 352, + StartPos: 6442, + EndPos: 6443, + }, + Value: "a", + }, + }, + Expr: &binary.Mul{ + Position: &position.Position{ + StartLine: 352, + EndLine: 352, + StartPos: 6447, + EndPos: 6451, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 352, + EndLine: 352, + StartPos: 6447, + EndPos: 6447, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 352, + EndLine: 352, + StartPos: 6451, + EndPos: 6451, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 353, + EndLine: 353, + StartPos: 6456, + EndPos: 6474, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 353, + EndLine: 353, + StartPos: 6463, + EndPos: 6473, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 353, + EndLine: 353, + StartPos: 6463, + EndPos: 6464, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 353, + EndLine: 353, + StartPos: 6463, + EndPos: 6464, + }, + Value: "a", + }, + }, + Expr: &binary.NotEqual{ + Position: &position.Position{ + StartLine: 353, + EndLine: 353, + StartPos: 6468, + EndPos: 6473, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 353, + EndLine: 353, + StartPos: 6468, + EndPos: 6468, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 353, + EndLine: 353, + StartPos: 6473, + EndPos: 6473, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 354, + EndLine: 354, + StartPos: 6478, + EndPos: 6497, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 354, + EndLine: 354, + StartPos: 6485, + EndPos: 6496, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 354, + EndLine: 354, + StartPos: 6485, + EndPos: 6486, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 354, + EndLine: 354, + StartPos: 6485, + EndPos: 6486, + }, + Value: "a", + }, + }, + Expr: &binary.NotIdentical{ + Position: &position.Position{ + StartLine: 354, + EndLine: 354, + StartPos: 6490, + EndPos: 6496, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 354, + EndLine: 354, + StartPos: 6490, + EndPos: 6490, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 354, + EndLine: 354, + StartPos: 6496, + EndPos: 6496, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 355, + EndLine: 355, + StartPos: 6501, + EndPos: 6518, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 355, + EndLine: 355, + StartPos: 6508, + EndPos: 6517, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 355, + EndLine: 355, + StartPos: 6508, + EndPos: 6509, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 355, + EndLine: 355, + StartPos: 6508, + EndPos: 6509, + }, + Value: "a", + }, + }, + Expr: &binary.Plus{ + Position: &position.Position{ + StartLine: 355, + EndLine: 355, + StartPos: 6513, + EndPos: 6517, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 355, + EndLine: 355, + StartPos: 6513, + EndPos: 6513, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 355, + EndLine: 355, + StartPos: 6517, + EndPos: 6517, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 356, + EndLine: 356, + StartPos: 6522, + EndPos: 6540, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 356, + EndLine: 356, + StartPos: 6529, + EndPos: 6539, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 356, + EndLine: 356, + StartPos: 6529, + EndPos: 6530, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 356, + EndLine: 356, + StartPos: 6529, + EndPos: 6530, + }, + Value: "a", + }, + }, + Expr: &binary.Pow{ + Position: &position.Position{ + StartLine: 356, + EndLine: 356, + StartPos: 6534, + EndPos: 6539, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 356, + EndLine: 356, + StartPos: 6534, + EndPos: 6534, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 356, + EndLine: 356, + StartPos: 6539, + EndPos: 6539, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 357, + EndLine: 357, + StartPos: 6544, + EndPos: 6562, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 357, + EndLine: 357, + StartPos: 6551, + EndPos: 6561, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 357, + EndLine: 357, + StartPos: 6551, + EndPos: 6552, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 357, + EndLine: 357, + StartPos: 6551, + EndPos: 6552, + }, + Value: "a", + }, + }, + Expr: &binary.ShiftLeft{ + Position: &position.Position{ + StartLine: 357, + EndLine: 357, + StartPos: 6556, + EndPos: 6561, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 357, + EndLine: 357, + StartPos: 6556, + EndPos: 6556, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 357, + EndLine: 357, + StartPos: 6561, + EndPos: 6561, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 358, + EndLine: 358, + StartPos: 6566, + EndPos: 6584, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 358, + EndLine: 358, + StartPos: 6573, + EndPos: 6583, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 358, + EndLine: 358, + StartPos: 6573, + EndPos: 6574, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 358, + EndLine: 358, + StartPos: 6573, + EndPos: 6574, + }, + Value: "a", + }, + }, + Expr: &binary.ShiftRight{ + Position: &position.Position{ + StartLine: 358, + EndLine: 358, + StartPos: 6578, + EndPos: 6583, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 358, + EndLine: 358, + StartPos: 6578, + EndPos: 6578, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 358, + EndLine: 358, + StartPos: 6583, + EndPos: 6583, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 359, + EndLine: 359, + StartPos: 6588, + EndPos: 6606, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 359, + EndLine: 359, + StartPos: 6595, + EndPos: 6605, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 359, + EndLine: 359, + StartPos: 6595, + EndPos: 6596, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 359, + EndLine: 359, + StartPos: 6595, + EndPos: 6596, + }, + Value: "a", + }, + }, + Expr: &binary.SmallerOrEqual{ + Position: &position.Position{ + StartLine: 359, + EndLine: 359, + StartPos: 6600, + EndPos: 6605, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 359, + EndLine: 359, + StartPos: 6600, + EndPos: 6600, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 359, + EndLine: 359, + StartPos: 6605, + EndPos: 6605, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 360, + EndLine: 360, + StartPos: 6610, + EndPos: 6627, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 360, + EndLine: 360, + StartPos: 6617, + EndPos: 6626, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 360, + EndLine: 360, + StartPos: 6617, + EndPos: 6618, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 360, + EndLine: 360, + StartPos: 6617, + EndPos: 6618, + }, + Value: "a", + }, + }, + Expr: &binary.Smaller{ + Position: &position.Position{ + StartLine: 360, + EndLine: 360, + StartPos: 6622, + EndPos: 6626, + }, + Left: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 360, + EndLine: 360, + StartPos: 6622, + EndPos: 6622, + }, + Value: "1", + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 360, + EndLine: 360, + StartPos: 6626, + EndPos: 6626, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 361, + EndLine: 361, + StartPos: 6631, + EndPos: 6651, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 361, + EndLine: 361, + StartPos: 6638, + EndPos: 6650, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 361, + EndLine: 361, + StartPos: 6638, + EndPos: 6639, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 361, + EndLine: 361, + StartPos: 6638, + EndPos: 6639, + }, + Value: "a", + }, + }, + Expr: &expr.ClassConstFetch{ + Position: &position.Position{ + StartLine: 361, + EndLine: 361, + StartPos: 6643, + EndPos: 6650, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 361, + EndLine: 361, + StartPos: 6643, + EndPos: 6645, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 361, + EndLine: 361, + StartPos: 6643, + EndPos: 6645, + }, + Value: "Foo", + }, + }, + }, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 361, + EndLine: 361, + StartPos: 6648, + EndPos: 6650, + }, + Value: "bar", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 362, + EndLine: 362, + StartPos: 6655, + EndPos: 6677, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 362, + EndLine: 362, + StartPos: 6662, + EndPos: 6676, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 362, + EndLine: 362, + StartPos: 6662, + EndPos: 6663, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 362, + EndLine: 362, + StartPos: 6662, + EndPos: 6663, + }, + Value: "a", + }, + }, + Expr: &expr.ClassConstFetch{ + Position: &position.Position{ + StartLine: 362, + EndLine: 362, + StartPos: 6667, + EndPos: 6676, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 362, + EndLine: 362, + StartPos: 6667, + EndPos: 6669, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 362, + EndLine: 362, + StartPos: 6667, + EndPos: 6669, + }, + Value: "Foo", + }, + }, + }, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 362, + EndLine: 362, + StartPos: 6672, + EndPos: 6676, + }, + Value: "class", + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 363, + EndLine: 363, + StartPos: 6681, + EndPos: 6702, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 363, + EndLine: 363, + StartPos: 6688, + EndPos: 6701, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 363, + EndLine: 363, + StartPos: 6688, + EndPos: 6689, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 363, + EndLine: 363, + StartPos: 6688, + EndPos: 6689, + }, + Value: "a", + }, + }, + Expr: &scalar.MagicConstant{ + Position: &position.Position{ + StartLine: 363, + EndLine: 363, + StartPos: 6693, + EndPos: 6701, + }, + Value: "__CLASS__", + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 364, + EndLine: 364, + StartPos: 6706, + EndPos: 6721, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 364, + EndLine: 364, + StartPos: 6713, + EndPos: 6720, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 364, + EndLine: 364, + StartPos: 6713, + EndPos: 6714, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 364, + EndLine: 364, + StartPos: 6713, + EndPos: 6714, + }, + Value: "a", + }, + }, + Expr: &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 364, + EndLine: 364, + StartPos: 6718, + EndPos: 6720, + }, + Constant: &name.Name{ + Position: &position.Position{ + StartLine: 364, + EndLine: 364, + StartPos: 6718, + EndPos: 6720, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 364, + EndLine: 364, + StartPos: 6718, + EndPos: 6720, + }, + Value: "Foo", + }, }, }, }, @@ -3558,82 +17728,762 @@ func TestPhp5(t *testing.T) { }, }, &stmt.Static{ + Position: &position.Position{ + StartLine: 365, + EndLine: 365, + StartPos: 6725, + EndPos: 6750, + }, Vars: []node.Node{ &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expr: &expr.ArrayDimFetch{ - Variable: &expr.ShortArray{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &scalar.Lnumber{Value: "1"}, - }, - &expr.ArrayItem{ - Key: &scalar.Lnumber{Value: "2"}, - Val: &scalar.Lnumber{Value: "2"}, + Position: &position.Position{ + StartLine: 365, + EndLine: 365, + StartPos: 6732, + EndPos: 6749, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 365, + EndLine: 365, + StartPos: 6732, + EndPos: 6733, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 365, + EndLine: 365, + StartPos: 6732, + EndPos: 6733, + }, + Value: "a", + }, + }, + Expr: &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 365, + EndLine: 365, + StartPos: 6737, + EndPos: 6749, + }, + Constant: &name.Relative{ + Position: &position.Position{ + StartLine: 365, + EndLine: 365, + StartPos: 6737, + EndPos: 6749, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 365, + EndLine: 365, + StartPos: 6747, + EndPos: 6749, + }, + Value: "Foo", }, }, }, - Dim: &scalar.Lnumber{Value: "0"}, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 366, + EndLine: 366, + StartPos: 6754, + EndPos: 6770, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 366, + EndLine: 366, + StartPos: 6761, + EndPos: 6769, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 366, + EndLine: 366, + StartPos: 6761, + EndPos: 6762, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 366, + EndLine: 366, + StartPos: 6761, + EndPos: 6762, + }, + Value: "a", + }, + }, + Expr: &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 366, + EndLine: 366, + StartPos: 6766, + EndPos: 6769, + }, + Constant: &name.FullyQualified{ + Position: &position.Position{ + StartLine: 366, + EndLine: 366, + StartPos: 6766, + EndPos: 6769, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 366, + EndLine: 366, + StartPos: 6767, + EndPos: 6769, + }, + Value: "Foo", + }, + }, + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 367, + EndLine: 367, + StartPos: 6774, + EndPos: 6793, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 367, + EndLine: 367, + StartPos: 6781, + EndPos: 6792, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 367, + EndLine: 367, + StartPos: 6781, + EndPos: 6782, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 367, + EndLine: 367, + StartPos: 6781, + EndPos: 6782, + }, + Value: "a", + }, + }, + Expr: &expr.Array{ + Position: &position.Position{ + StartLine: 367, + EndLine: 367, + StartPos: 6786, + EndPos: 6792, + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 368, + EndLine: 368, + StartPos: 6797, + EndPos: 6825, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 368, + EndLine: 368, + StartPos: 6804, + EndPos: 6824, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 368, + EndLine: 368, + StartPos: 6804, + EndPos: 6805, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 368, + EndLine: 368, + StartPos: 6804, + EndPos: 6805, + }, + Value: "a", + }, + }, + Expr: &expr.Array{ + Position: &position.Position{ + StartLine: 368, + EndLine: 368, + StartPos: 6809, + EndPos: 6824, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 368, + EndLine: 368, + StartPos: 6815, + EndPos: 6820, + }, + Key: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 368, + EndLine: 368, + StartPos: 6815, + EndPos: 6815, + }, + Value: "1", + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 368, + EndLine: 368, + StartPos: 6820, + EndPos: 6820, + }, + Value: "1", + }, + }, + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 368, + EndLine: 368, + StartPos: 6823, + EndPos: 6823, + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 368, + EndLine: 368, + StartPos: 6823, + EndPos: 6823, + }, + Value: "2", + }, + }, + }, + }, + }, + }, + }, + &stmt.Static{ + Position: &position.Position{ + StartLine: 369, + EndLine: 369, + StartPos: 6829, + EndPos: 6855, + }, + Vars: []node.Node{ + &stmt.StaticVar{ + Position: &position.Position{ + StartLine: 369, + EndLine: 369, + StartPos: 6836, + EndPos: 6854, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 369, + EndLine: 369, + StartPos: 6836, + EndPos: 6837, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 369, + EndLine: 369, + StartPos: 6836, + EndPos: 6837, + }, + Value: "a", + }, + }, + Expr: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 369, + EndLine: 369, + StartPos: 6841, + EndPos: 6854, + }, + Variable: &expr.ShortArray{ + Position: &position.Position{ + StartLine: 369, + EndLine: 369, + StartPos: 6841, + EndPos: 6851, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 369, + EndLine: 369, + StartPos: 6842, + EndPos: 6842, + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 369, + EndLine: 369, + StartPos: 6842, + EndPos: 6842, + }, + Value: "1", + }, + }, + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 369, + EndLine: 369, + StartPos: 6845, + EndPos: 6850, + }, + Key: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 369, + EndLine: 369, + StartPos: 6845, + EndPos: 6845, + }, + Value: "2", + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 369, + EndLine: 369, + StartPos: 6850, + EndPos: 6850, + }, + Value: "2", + }, + }, + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 369, + EndLine: 369, + StartPos: 6853, + EndPos: 6853, + }, + Value: "0", + }, }, }, }, }, &stmt.If{ + Position: &position.Position{ + StartLine: 371, + EndLine: 371, + StartPos: 6860, + EndPos: 6874, + }, Cond: &expr.Yield{ - Value: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 371, + EndLine: 371, + StartPos: 6864, + EndPos: 6870, + }, + Value: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 371, + EndLine: 371, + StartPos: 6870, + EndPos: 6870, + }, + Value: "1", + }, }, Stmt: &stmt.StmtList{ - Stmts: []node.Node{}, - }, - }, - &stmt.Expression{ - Expr: &expr.StaticPropertyFetch{ - Class: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - Property: &expr.Variable{VarName: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}}, - }, - }, - &stmt.Expression{ - Expr: &expr.FunctionCall{ - Function: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - ArgumentList: &node.ArgumentList{}, - }, - }, - &stmt.Expression{ - Expr: &expr.ArrayDimFetch{ - Variable: &expr.ArrayDimFetch{ - Variable: &expr.FunctionCall{ - Function: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - ArgumentList: &node.ArgumentList{}, - }, - Dim: &scalar.Lnumber{Value: "0"}, + Position: &position.Position{ + StartLine: 371, + EndLine: 371, + StartPos: 6873, + EndPos: 6874, + }, + Stmts: []node.Node{ }, - Dim: &scalar.Lnumber{Value: "0"}, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 372, + EndLine: 372, + StartPos: 6878, + EndPos: 6888, + }, + Expr: &expr.StaticPropertyFetch{ + Position: &position.Position{ + StartLine: 372, + EndLine: 372, + StartPos: 6878, + EndPos: 6887, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 372, + EndLine: 372, + StartPos: 6878, + EndPos: 6880, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 372, + EndLine: 372, + StartPos: 6878, + EndPos: 6880, + }, + Value: "Foo", + }, + }, + }, + Property: &expr.Variable{ + Position: &position.Position{ + StartLine: 372, + EndLine: 372, + StartPos: 6883, + EndPos: 6887, + }, + VarName: &expr.Variable{ + Position: &position.Position{ + StartLine: 372, + EndLine: 372, + StartPos: 6884, + EndPos: 6887, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 372, + EndLine: 372, + StartPos: 6884, + EndPos: 6887, + }, + Value: "bar", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 374, + EndLine: 374, + StartPos: 6893, + EndPos: 6899, + }, + Expr: &expr.FunctionCall{ + Position: &position.Position{ + StartLine: 374, + EndLine: 374, + StartPos: 6893, + EndPos: 6898, + }, + Function: &expr.Variable{ + Position: &position.Position{ + StartLine: 374, + EndLine: 374, + StartPos: 6893, + EndPos: 6896, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 374, + EndLine: 374, + StartPos: 6893, + EndPos: 6896, + }, + Value: "foo", + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 374, + EndLine: 374, + StartPos: 6897, + EndPos: 6898, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 375, + EndLine: 375, + StartPos: 6903, + EndPos: 6915, + }, Expr: &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Dim: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 375, + EndLine: 375, + StartPos: 6903, + EndPos: 6914, + }, + Variable: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 375, + EndLine: 375, + StartPos: 6903, + EndPos: 6911, + }, + Variable: &expr.FunctionCall{ + Position: &position.Position{ + StartLine: 375, + EndLine: 375, + StartPos: 6903, + EndPos: 6908, + }, + Function: &expr.Variable{ + Position: &position.Position{ + StartLine: 375, + EndLine: 375, + StartPos: 6903, + EndPos: 6906, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 375, + EndLine: 375, + StartPos: 6903, + EndPos: 6906, + }, + Value: "foo", + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 375, + EndLine: 375, + StartPos: 6907, + EndPos: 6908, + }, + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 375, + EndLine: 375, + StartPos: 6910, + EndPos: 6910, + }, + Value: "0", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 375, + EndLine: 375, + StartPos: 6913, + EndPos: 6913, + }, + Value: "0", + }, }, }, &stmt.Expression{ - Expr: &expr.Variable{VarName: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + Position: &position.Position{ + StartLine: 376, + EndLine: 376, + StartPos: 6919, + EndPos: 6925, + }, + Expr: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 376, + EndLine: 376, + StartPos: 6919, + EndPos: 6924, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 376, + EndLine: 376, + StartPos: 6919, + EndPos: 6920, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 376, + EndLine: 376, + StartPos: 6919, + EndPos: 6920, + }, + Value: "a", + }, + }, + Dim: &expr.Variable{ + Position: &position.Position{ + StartLine: 376, + EndLine: 376, + StartPos: 6922, + EndPos: 6923, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 376, + EndLine: 376, + StartPos: 6922, + EndPos: 6923, + }, + Value: "b", + }, + }, + }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 377, + EndLine: 377, + StartPos: 6929, + EndPos: 6934, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 377, + EndLine: 377, + StartPos: 6929, + EndPos: 6933, + }, + VarName: &expr.Variable{ + Position: &position.Position{ + StartLine: 377, + EndLine: 377, + StartPos: 6931, + EndPos: 6932, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 377, + EndLine: 377, + StartPos: 6931, + EndPos: 6932, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 378, + EndLine: 378, + StartPos: 6938, + EndPos: 6952, + }, Expr: &expr.StaticCall{ - Class: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Call: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, - ArgumentList: &node.ArgumentList{}, + Position: &position.Position{ + StartLine: 378, + EndLine: 378, + StartPos: 6938, + EndPos: 6951, + }, + Class: &expr.Variable{ + Position: &position.Position{ + StartLine: 378, + EndLine: 378, + StartPos: 6938, + EndPos: 6941, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 378, + EndLine: 378, + StartPos: 6938, + EndPos: 6941, + }, + Value: "foo", + }, + }, + Call: &expr.Variable{ + Position: &position.Position{ + StartLine: 378, + EndLine: 378, + StartPos: 6944, + EndPos: 6949, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 378, + EndLine: 378, + StartPos: 6945, + EndPos: 6948, + }, + Value: "bar", + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 378, + EndLine: 378, + StartPos: 6950, + EndPos: 6951, + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 379, + EndLine: 379, + StartPos: 6956, + EndPos: 6965, + }, Expr: &expr.ClassConstFetch{ - Class: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - ConstantName: &node.Identifier{Value: "bar"}, + Position: &position.Position{ + StartLine: 379, + EndLine: 379, + StartPos: 6956, + EndPos: 6964, + }, + Class: &expr.Variable{ + Position: &position.Position{ + StartLine: 379, + EndLine: 379, + StartPos: 6956, + EndPos: 6959, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 379, + EndLine: 379, + StartPos: 6956, + EndPos: 6959, + }, + Value: "foo", + }, + }, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 379, + EndLine: 379, + StartPos: 6962, + EndPos: 6964, + }, + Value: "bar", + }, }, }, }, } + php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") php5parser.Parse() @@ -3654,25 +18504,102 @@ func TestPhp5Strings(t *testing.T) { '; ` - expected := &node.Root{ + expected :=&node.Root{ + Position: &position.Position{ + StartLine: 2, + EndLine: 10, + StartPos: 6, + EndPos: 70, + }, Stmts: []node.Node{ &stmt.Expression{ - Expr: &scalar.String{Value: "\"test\""}, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 6, + EndPos: 12, + }, + Expr: &scalar.String{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 6, + EndPos: 11, + }, + Value: "\"test\"", + }, }, &stmt.Expression{ - Expr: &scalar.String{Value: "\"\\$test\""}, + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 16, + EndPos: 24, + }, + Expr: &scalar.String{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 16, + EndPos: 23, + }, + Value: "\"\\$test\"", + }, }, &stmt.Expression{ - Expr: &scalar.String{Value: "\"\n\t\t\ttest\n\t\t\""}, + Position: &position.Position{ + StartLine: 4, + EndLine: 6, + StartPos: 28, + EndPos: 41, + }, + Expr: &scalar.String{ + Position: &position.Position{ + StartLine: 4, + EndLine: 6, + StartPos: 28, + EndPos: 40, + }, + Value: "\"\n\t\t\ttest\n\t\t\"", + }, }, &stmt.Expression{ - Expr: &scalar.String{Value: "'$test'"}, + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 45, + EndPos: 52, + }, + Expr: &scalar.String{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 45, + EndPos: 51, + }, + Value: "'$test'", + }, }, &stmt.Expression{ - Expr: &scalar.String{Value: "'\n\t\t\t$test\n\t\t'"}, + Position: &position.Position{ + StartLine: 8, + EndLine: 10, + StartPos: 56, + EndPos: 70, + }, + Expr: &scalar.String{ + Position: &position.Position{ + StartLine: 8, + EndLine: 10, + StartPos: 56, + EndPos: 69, + }, + Value: "'\n\t\t\t$test\n\t\t'", + }, }, }, } + php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") php5parser.Parse() @@ -3699,48 +18626,171 @@ CAD; ` expected := &node.Root{ + Position: &position.Position{ + StartLine: 2, + EndLine: 15, + StartPos: 9, + EndPos: 120, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 2, + EndLine: 3, + StartPos: 9, + EndPos: 16, + }, Expr: &scalar.Heredoc{ + Position: &position.Position{ + StartLine: 2, + EndLine: 3, + StartPos: 9, + EndPos: 15, + }, Label: "CAD", }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 4, + EndLine: 6, + StartPos: 23, + EndPos: 37, + }, Expr: &scalar.Heredoc{ + Position: &position.Position{ + StartLine: 4, + EndLine: 6, + StartPos: 23, + EndPos: 36, + }, Label: "CAD", Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "\thello\n"}, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 27, + EndPos: 33, + }, + Value: "\thello\n", + }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 7, + EndLine: 9, + StartPos: 44, + EndPos: 60, + }, Expr: &scalar.Heredoc{ + Position: &position.Position{ + StartLine: 7, + EndLine: 9, + StartPos: 44, + EndPos: 59, + }, Label: "\"CAD\"", Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "\thello\n"}, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 8, + EndLine: 8, + StartPos: 50, + EndPos: 56, + }, + Value: "\thello\n", + }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 10, + EndLine: 12, + StartPos: 67, + EndPos: 90, + }, Expr: &scalar.Heredoc{ + Position: &position.Position{ + StartLine: 10, + EndLine: 12, + StartPos: 67, + EndPos: 89, + }, Label: "\"CAD\"", Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "\thello "}, - &expr.Variable{VarName: &node.Identifier{Value: "world"}}, - &scalar.EncapsedStringPart{Value: "\n"}, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 73, + EndPos: 79, + }, + Value: "\thello ", + }, + &expr.Variable{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 80, + EndPos: 85, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 80, + EndPos: 85, + }, + Value: "world", + }, + }, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 86, + EndPos: 86, + }, + Value: "\n", + }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 13, + EndLine: 15, + StartPos: 97, + EndPos: 120, + }, Expr: &scalar.Heredoc{ + Position: &position.Position{ + StartLine: 13, + EndLine: 15, + StartPos: 97, + EndPos: 119, + }, Label: "'CAD'", Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "\thello $world\n"}, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 14, + EndLine: 14, + StartPos: 103, + EndPos: 116, + }, + Value: "\thello $world\n", + }, }, }, }, }, } + php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") php5parser.Parse() diff --git a/php7/parser.go b/php7/parser.go index 9271442..0ee0d61 100644 --- a/php7/parser.go +++ b/php7/parser.go @@ -22,7 +22,6 @@ type Parser struct { errors []*errors.Error rootNode node.Node comments parser.Comments - positions parser.Positions } // NewParser creates and returns new Parser @@ -37,7 +36,6 @@ func NewParser(src io.Reader, path string) *Parser { nil, nil, nil, - nil, } } @@ -58,11 +56,7 @@ func (l *Parser) Parse() int { l.errors = nil l.rootNode = nil l.comments = parser.Comments{} - l.positions = parser.Positions{} - l.positionBuilder = &parser.PositionBuilder{ - Positions: &l.positions, - PositionPool: &l.PositionPool, - } + l.positionBuilder = &parser.PositionBuilder{} // parse @@ -89,11 +83,6 @@ func (l *Parser) GetComments() parser.Comments { return l.comments } -// GetPositions returns positions list -func (l *Parser) GetPositions() parser.Positions { - return l.positions -} - // helpers func lastNode(nn []node.Node) node.Node { @@ -112,7 +101,6 @@ func (p *Parser) returnTokenToPool(yyDollar []yySymType, yyVAL *yySymType) { for i := 1; i < len(yyDollar); i++ { if yyDollar[i].token != nil { p.TokenPool.Put(yyDollar[i].token) - p.PositionPool.Put(yyDollar[i].token.Position) } yyDollar[i].token = nil } diff --git a/php7/php7.go b/php7/php7.go index dead580..26893c8 100644 --- a/php7/php7.go +++ b/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line php7/php7.y:5344 +//line php7/php7.y:5346 //line yacctab:1 var yyExca = [...]int{ @@ -2119,7 +2119,7 @@ yydefault: yylex.(*Parser).rootNode = node.NewRoot(yyDollar[1].list) // save position - yylex.(*Parser).positions.AddPosition(yylex.(*Parser).rootNode, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).rootNode.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2605,7 +2605,7 @@ yydefault: yyVAL.list = []node.Node{namePart} // save position - yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(namePart, yyDollar[1].token, comment.StringToken) @@ -2620,7 +2620,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, namePart) // save position - yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.NsSeparatorToken) @@ -2635,7 +2635,7 @@ yydefault: yyVAL.node = name.NewName(yyDollar[1].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2646,7 +2646,7 @@ yydefault: yyVAL.node = name.NewRelative(yyDollar[3].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) @@ -2661,7 +2661,7 @@ yydefault: yyVAL.node = name.NewFullyQualified(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) @@ -2724,7 +2724,7 @@ yydefault: yyVAL.node = stmt.NewHaltCompiler() // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.HaltCompilerToken) @@ -2742,8 +2742,8 @@ yydefault: yyVAL.node = stmt.NewNamespace(name, nil) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) @@ -2759,8 +2759,8 @@ yydefault: yyVAL.node = stmt.NewNamespace(name, yyDollar[4].list) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) @@ -2776,7 +2776,7 @@ yydefault: yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) @@ -2792,7 +2792,7 @@ yydefault: yyVAL.node = yyDollar[2].node // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UseToken) @@ -2807,7 +2807,7 @@ yydefault: yyVAL.node = yyDollar[3].node.(*stmt.GroupUse).SetUseType(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UseToken) @@ -2822,7 +2822,7 @@ yydefault: yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UseToken) @@ -2837,7 +2837,7 @@ yydefault: yyVAL.node = stmt.NewUseList(yyDollar[2].node, yyDollar[3].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UseToken) @@ -2852,7 +2852,7 @@ yydefault: yyVAL.node = stmt.NewConstList(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ConstToken) @@ -2867,7 +2867,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FunctionToken) @@ -2881,7 +2881,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ConstToken) @@ -2896,8 +2896,8 @@ yydefault: yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.NsSeparatorToken) @@ -2917,8 +2917,8 @@ yydefault: yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) @@ -2939,8 +2939,8 @@ yydefault: yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.NsSeparatorToken) @@ -2960,8 +2960,8 @@ yydefault: yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) @@ -3067,8 +3067,8 @@ yydefault: yyVAL.node = stmt.NewUse(nil, name, nil) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3081,9 +3081,9 @@ yydefault: yyVAL.node = stmt.NewUse(nil, name, alias) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) @@ -3203,7 +3203,7 @@ yydefault: yyVAL.node = stmt.NewHaltCompiler() // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.HaltCompilerToken) @@ -3220,7 +3220,7 @@ yydefault: yyVAL.node = stmt.NewStmtList(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) @@ -3258,7 +3258,7 @@ yydefault: yyVAL.node = yyDollar[5].node // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.WhileToken) @@ -3274,7 +3274,7 @@ yydefault: yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[5].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DoToken) @@ -3303,7 +3303,7 @@ yydefault: yyVAL.node = yyDollar[9].node // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ForToken) @@ -3330,7 +3330,7 @@ yydefault: yyVAL.node = yyDollar[5].node // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.SwitchToken) @@ -3346,7 +3346,7 @@ yydefault: yyVAL.node = stmt.NewBreak(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.BreakToken) @@ -3361,7 +3361,7 @@ yydefault: yyVAL.node = stmt.NewContinue(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ContinueToken) @@ -3376,7 +3376,7 @@ yydefault: yyVAL.node = stmt.NewReturn(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ReturnToken) @@ -3391,7 +3391,7 @@ yydefault: yyVAL.node = stmt.NewGlobal(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.GlobalToken) @@ -3406,7 +3406,7 @@ yydefault: yyVAL.node = stmt.NewStatic(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StaticToken) @@ -3421,7 +3421,7 @@ yydefault: yyVAL.node = stmt.NewEcho(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EchoToken) @@ -3436,7 +3436,7 @@ yydefault: yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.InlineHTMLToken) @@ -3450,7 +3450,7 @@ yydefault: yyVAL.node = stmt.NewExpression(yyDollar[1].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SemiColonToken) @@ -3464,7 +3464,7 @@ yydefault: yyVAL.node = stmt.NewUnset(yyDollar[3].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UnsetToken) @@ -3493,7 +3493,7 @@ yydefault: yyVAL.node = yyDollar[7].node // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[7].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[7].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ForeachToken) @@ -3521,7 +3521,7 @@ yydefault: yyVAL.node = yyDollar[9].node // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ForeachToken) @@ -3539,7 +3539,7 @@ yydefault: yyVAL.node = stmt.NewDeclare(yyDollar[3].list, yyDollar[5].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DeclareToken) @@ -3555,7 +3555,7 @@ yydefault: yyVAL.node = stmt.NewNop() // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.SemiColonToken) @@ -3568,10 +3568,10 @@ yydefault: { if yyDollar[6].node == nil { yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list)) } else { yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) } // save comments @@ -3588,7 +3588,7 @@ yydefault: yyVAL.node = stmt.NewThrow(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ThrowToken) @@ -3604,8 +3604,8 @@ yydefault: yyVAL.node = stmt.NewGoto(label) // save position - yylex.(*Parser).positions.AddPosition(label, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + label.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.GotoToken) @@ -3622,8 +3622,8 @@ yydefault: yyVAL.node = stmt.NewLabel(label) // save position - yylex.(*Parser).positions.AddPosition(label, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + label.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(label, yyDollar[1].token, comment.StringToken) @@ -3649,9 +3649,9 @@ yydefault: yyVAL.list = append(yyDollar[1].list, catch) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[5].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[5].token)) - yylex.(*Parser).positions.AddPosition(catch, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[2].token, yyDollar[9].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[5].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[5].token)) + catch.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[2].token, yyDollar[9].token)) // save comments yylex.(*Parser).comments.AddFromToken(catch, yyDollar[2].token, comment.CatchToken) @@ -3697,7 +3697,7 @@ yydefault: yyVAL.node = stmt.NewFinally(yyDollar[3].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FinallyToken) @@ -3741,8 +3741,8 @@ yydefault: yyVAL.node = stmt.NewFunction(name, yyDollar[2].token != nil, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list, yyDollar[4].str) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FunctionToken) @@ -3789,8 +3789,8 @@ yydefault: yyVAL.node = stmt.NewClass(name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list, yyDollar[6].str) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ClassToken) @@ -3808,8 +3808,8 @@ yydefault: yyVAL.node = stmt.NewClass(name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list, yyDollar[5].str) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ClassToken) @@ -3842,7 +3842,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AbstractToken) @@ -3856,7 +3856,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FinalToken) @@ -3871,8 +3871,8 @@ yydefault: yyVAL.node = stmt.NewTrait(name, yyDollar[5].list, yyDollar[3].str) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.TraitToken) @@ -3890,8 +3890,8 @@ yydefault: yyVAL.node = stmt.NewInterface(name, yyDollar[3].InterfaceExtends, yyDollar[6].list, yyDollar[4].str) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.InterfaceToken) @@ -3916,7 +3916,7 @@ yydefault: yyVAL.ClassExtends = stmt.NewClassExtends(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.ClassExtends, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.ClassExtends.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.ClassExtends, yyDollar[1].token, comment.ExtendsToken) @@ -3938,7 +3938,7 @@ yydefault: yyVAL.InterfaceExtends = stmt.NewInterfaceExtends(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.InterfaceExtends, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yyVAL.InterfaceExtends.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.InterfaceExtends, yyDollar[1].token, comment.ExtendsToken) @@ -3960,7 +3960,7 @@ yydefault: yyVAL.ClassImplements = stmt.NewClassImplements(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.ClassImplements, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yyVAL.ClassImplements.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.ClassImplements, yyDollar[1].token, comment.ImplementsToken) @@ -3982,7 +3982,7 @@ yydefault: yyVAL.node = expr.NewReference(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyDollar[2].node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AmpersandToken) @@ -3996,7 +3996,7 @@ yydefault: yyVAL.node = expr.NewList(yyDollar[3].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ListToken) @@ -4012,7 +4012,7 @@ yydefault: yyVAL.node = expr.NewShortList(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenSquareBracket) @@ -4027,7 +4027,7 @@ yydefault: yyVAL.node = stmt.NewFor(nil, nil, nil, yyDollar[1].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4039,8 +4039,8 @@ yydefault: yyVAL.node = stmt.NewAltFor(nil, nil, nil, stmtList) // save position - yylex.(*Parser).positions.AddPosition(stmtList, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ColonToken) @@ -4056,7 +4056,7 @@ yydefault: yyVAL.node = stmt.NewForeach(nil, nil, nil, yyDollar[1].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4068,8 +4068,8 @@ yydefault: yyVAL.node = stmt.NewAltForeach(nil, nil, nil, stmtList) // save position - yylex.(*Parser).positions.AddPosition(stmtList, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ColonToken) @@ -4093,7 +4093,7 @@ yydefault: yyVAL.node = stmt.NewStmtList(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ColonToken) @@ -4110,8 +4110,8 @@ yydefault: yyVAL.node = stmt.NewSwitch(nil, caseList) // save position - yylex.(*Parser).positions.AddPosition(caseList, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + caseList.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[1].token, comment.OpenCurlyBracesToken) @@ -4127,8 +4127,8 @@ yydefault: yyVAL.node = stmt.NewSwitch(nil, caseList) // save position - yylex.(*Parser).positions.AddPosition(caseList, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + caseList.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[1].token, comment.OpenCurlyBracesToken) @@ -4145,8 +4145,8 @@ yydefault: yyVAL.node = stmt.NewAltSwitch(nil, caseList) // save position - yylex.(*Parser).positions.AddPosition(caseList, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + caseList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[1].token, comment.ColonToken) @@ -4164,8 +4164,8 @@ yydefault: yyVAL.node = stmt.NewAltSwitch(nil, caseList) // save position - yylex.(*Parser).positions.AddPosition(caseList, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[3].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) + caseList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[3].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) // save comments yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[1].token, comment.ColonToken) @@ -4191,7 +4191,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, _case) // save position - yylex.(*Parser).positions.AddPosition(_case, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) + _case.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) // save comments yylex.(*Parser).comments.AddFromToken(_case, yyDollar[2].token, comment.CaseToken) @@ -4207,7 +4207,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, _default) // save position - yylex.(*Parser).positions.AddPosition(_default, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) + _default.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) // save comments yylex.(*Parser).comments.AddFromToken(_default, yyDollar[2].token, comment.DefaultToken) @@ -4234,7 +4234,7 @@ yydefault: yyVAL.node = stmt.NewWhile(nil, yyDollar[1].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4246,8 +4246,8 @@ yydefault: yyVAL.node = stmt.NewAltWhile(nil, stmtList) // save position - yylex.(*Parser).positions.AddPosition(stmtList, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ColonToken) @@ -4263,7 +4263,7 @@ yydefault: yyVAL.node = stmt.NewIf(yyDollar[3].node, yyDollar[5].node, nil, nil) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IfToken) @@ -4280,8 +4280,8 @@ yydefault: yyVAL.node = yyDollar[1].node.(*stmt.If).AddElseIf(_elseIf) // save position - yylex.(*Parser).positions.AddPosition(_elseIf, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node)) + _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node)) // save comments yylex.(*Parser).comments.AddFromToken(_elseIf, yyDollar[2].token, comment.ElseifToken) @@ -4306,8 +4306,8 @@ yydefault: yyVAL.node = yyDollar[1].node.(*stmt.If).SetElse(_else) // save position - yylex.(*Parser).positions.AddPosition(_else, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[3].node)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + _else.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ElseToken) @@ -4322,8 +4322,8 @@ yydefault: yyVAL.node = stmt.NewAltIf(yyDollar[3].node, stmts, nil, nil) // save position - yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[6].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list)) + stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[6].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IfToken) @@ -4342,8 +4342,8 @@ yydefault: yyVAL.node = yyDollar[1].node.(*stmt.AltIf).AddElseIf(_elseIf) // save position - yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[7].list)) - yylex.(*Parser).positions.AddPosition(_elseIf, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list)) + stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[7].list)) + _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list)) // save comments yylex.(*Parser).comments.AddFromToken(_elseIf, yyDollar[2].token, comment.ElseifToken) @@ -4360,7 +4360,7 @@ yydefault: yyVAL.node = yyDollar[1].node // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EndifToken) @@ -4377,9 +4377,9 @@ yydefault: yyVAL.node = yyDollar[1].node.(*stmt.AltIf).SetElse(_else) // save position - yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[4].list)) - yylex.(*Parser).positions.AddPosition(_else, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token)) + stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[4].list)) + _else.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token)) // save comments yylex.(*Parser).comments.AddFromToken(_else, yyDollar[2].token, comment.ElseToken) @@ -4433,16 +4433,16 @@ yydefault: yyVAL.node = node.NewParameter(yyDollar[1].node, variable, nil, yyDollar[2].token != nil, yyDollar[3].token != nil) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) if yyDollar[1].node != nil { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) } else if yyDollar[2].token != nil { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token)) } else if yyDollar[3].token != nil { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token)) } else { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) } // save comments @@ -4465,16 +4465,16 @@ yydefault: yyVAL.node = node.NewParameter(yyDollar[1].node, variable, yyDollar[6].node, yyDollar[2].token != nil, yyDollar[3].token != nil) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) if yyDollar[1].node != nil { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node)) } else if yyDollar[2].token != nil { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node)) } else if yyDollar[3].token != nil { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[6].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[6].node)) } else { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node)) } // save comments @@ -4520,7 +4520,7 @@ yydefault: yyVAL.node = node.NewNullable(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.QuestionMarkToken) @@ -4534,7 +4534,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ArrayToken) @@ -4548,7 +4548,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.CallableToken) @@ -4589,7 +4589,7 @@ yydefault: yyVAL.node = node.NewArgumentList(nil) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenParenthesisToken) @@ -4604,7 +4604,7 @@ yydefault: yyVAL.node = node.NewArgumentList(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenParenthesisToken) @@ -4641,7 +4641,7 @@ yydefault: yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4652,7 +4652,7 @@ yydefault: yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EllipsisToken) @@ -4714,9 +4714,9 @@ yydefault: yyVAL.node = stmt.NewStaticVar(variable, nil) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) @@ -4732,9 +4732,9 @@ yydefault: yyVAL.node = stmt.NewStaticVar(variable, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) @@ -4765,7 +4765,7 @@ yydefault: yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) @@ -4779,7 +4779,7 @@ yydefault: yyVAL.node = stmt.NewClassConstList(yyDollar[1].list, yyDollar[3].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ConstToken) @@ -4804,7 +4804,7 @@ yydefault: yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, adaptationList) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UseToken) @@ -4819,11 +4819,11 @@ yydefault: yyVAL.node = stmt.NewClassMethod(name, yyDollar[1].list, yyDollar[3].token != nil, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node, yyDollar[5].str) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) if yyDollar[1].list == nil { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node)) } else { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListNodePosition(yyDollar[1].list, yyDollar[10].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListNodePosition(yyDollar[1].list, yyDollar[10].node)) } // save comments @@ -4862,7 +4862,7 @@ yydefault: { yyVAL.node = stmt.NewNop() - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.SemiColonToken) @@ -4875,7 +4875,7 @@ yydefault: { yyVAL.node = stmt.NewTraitAdaptationList(nil) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) @@ -4889,7 +4889,7 @@ yydefault: { yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) @@ -4942,7 +4942,7 @@ yydefault: yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.InsteadofToken) @@ -4957,8 +4957,8 @@ yydefault: yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) // save position - yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) @@ -4974,8 +4974,8 @@ yydefault: yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) // save position - yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) @@ -4991,8 +4991,8 @@ yydefault: yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) // save position - yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) @@ -5007,7 +5007,7 @@ yydefault: yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) @@ -5022,8 +5022,8 @@ yydefault: yyVAL.node = stmt.NewTraitMethodRef(nil, name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(name, yyDollar[1].token, comment.IdentifierToken) @@ -5046,8 +5046,8 @@ yydefault: yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) // save position - yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) @@ -5062,7 +5062,7 @@ yydefault: yyVAL.node = stmt.NewNop() // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.SemiColonToken) @@ -5076,7 +5076,7 @@ yydefault: yyVAL.node = stmt.NewStmtList(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) @@ -5100,7 +5100,7 @@ yydefault: yyVAL.list = []node.Node{modifier} // save position - yylex.(*Parser).positions.AddPosition(modifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + modifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(modifier, yyDollar[1].token, comment.VarToken) @@ -5146,7 +5146,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PublicToken) @@ -5160,7 +5160,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ProtectedToken) @@ -5174,7 +5174,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PrivateToken) @@ -5188,7 +5188,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StaticToken) @@ -5202,7 +5202,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AbstractToken) @@ -5216,7 +5216,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FinalToken) @@ -5251,9 +5251,9 @@ yydefault: yyVAL.node = stmt.NewProperty(variable, nil, yyDollar[2].str) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) @@ -5269,9 +5269,9 @@ yydefault: yyVAL.node = stmt.NewProperty(variable, yyDollar[3].node, yyDollar[4].str) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) @@ -5306,8 +5306,8 @@ yydefault: yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(name, yyDollar[1].token, comment.IdentifierToken) @@ -5323,8 +5323,8 @@ yydefault: yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(name, yyDollar[1].token, comment.StringToken) @@ -5405,7 +5405,7 @@ yydefault: } // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ClassToken) @@ -5420,10 +5420,10 @@ yydefault: { if yyDollar[3].node != nil { yyVAL.node = expr.NewNew(yyDollar[2].node, yyDollar[3].node.(*node.ArgumentList)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) } else { yyVAL.node = expr.NewNew(yyDollar[2].node, nil) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) } // save comments @@ -5438,7 +5438,7 @@ yydefault: yyVAL.node = expr.NewNew(yyDollar[2].node, nil) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NewToken) @@ -5453,8 +5453,8 @@ yydefault: yyVAL.node = assign.NewAssign(list, yyDollar[6].node) // save position - yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) + list.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) // save comments yylex.(*Parser).comments.AddFromToken(list, yyDollar[1].token, comment.ListToken) @@ -5472,8 +5472,8 @@ yydefault: yyVAL.node = assign.NewAssign(shortList, yyDollar[5].node) // save position - yylex.(*Parser).positions.AddPosition(shortList, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + shortList.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) // save comments yylex.(*Parser).comments.AddFromToken(shortList, yyDollar[1].token, comment.OpenSquareBracket) @@ -5489,7 +5489,7 @@ yydefault: yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EqualToken) @@ -5503,7 +5503,7 @@ yydefault: yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EqualToken) @@ -5518,7 +5518,7 @@ yydefault: yyVAL.node = expr.NewClone(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.CloneToken) @@ -5532,7 +5532,7 @@ yydefault: yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PlusEqualToken) @@ -5546,7 +5546,7 @@ yydefault: yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.MinusEqualToken) @@ -5560,7 +5560,7 @@ yydefault: yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.MulEqualToken) @@ -5574,7 +5574,7 @@ yydefault: yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PowEqualToken) @@ -5588,7 +5588,7 @@ yydefault: yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DivEqualToken) @@ -5602,7 +5602,7 @@ yydefault: yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ConcatEqualToken) @@ -5616,7 +5616,7 @@ yydefault: yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ModEqualToken) @@ -5630,7 +5630,7 @@ yydefault: yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AndEqualToken) @@ -5644,7 +5644,7 @@ yydefault: yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OrEqualToken) @@ -5658,7 +5658,7 @@ yydefault: yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.XorEqualToken) @@ -5672,7 +5672,7 @@ yydefault: yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SlEqualToken) @@ -5686,7 +5686,7 @@ yydefault: yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SrEqualToken) @@ -5700,7 +5700,7 @@ yydefault: yyVAL.node = expr.NewPostInc(yyDollar[1].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IncToken) @@ -5714,7 +5714,7 @@ yydefault: yyVAL.node = expr.NewPreInc(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IncToken) @@ -5728,7 +5728,7 @@ yydefault: yyVAL.node = expr.NewPostDec(yyDollar[1].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DecToken) @@ -5742,7 +5742,7 @@ yydefault: yyVAL.node = expr.NewPreDec(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DecToken) @@ -5756,7 +5756,7 @@ yydefault: yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.BooleanOrToken) @@ -5770,7 +5770,7 @@ yydefault: yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.BooleanAndToken) @@ -5784,7 +5784,7 @@ yydefault: yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LogicalOrToken) @@ -5798,7 +5798,7 @@ yydefault: yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LogicalAndToken) @@ -5812,7 +5812,7 @@ yydefault: yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LogicalXorToken) @@ -5826,7 +5826,7 @@ yydefault: yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.VerticalBarToken) @@ -5840,7 +5840,7 @@ yydefault: yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AmpersandToken) @@ -5854,7 +5854,7 @@ yydefault: yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.CaretToken) @@ -5868,7 +5868,7 @@ yydefault: yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DotToken) @@ -5882,7 +5882,7 @@ yydefault: yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PlusToken) @@ -5896,7 +5896,7 @@ yydefault: yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.MinusToken) @@ -5910,7 +5910,7 @@ yydefault: yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsteriskToken) @@ -5924,7 +5924,7 @@ yydefault: yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PowToken) @@ -5938,7 +5938,7 @@ yydefault: yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SlashToken) @@ -5952,7 +5952,7 @@ yydefault: yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PercentToken) @@ -5966,7 +5966,7 @@ yydefault: yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SlToken) @@ -5980,7 +5980,7 @@ yydefault: yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SrToken) @@ -5994,7 +5994,7 @@ yydefault: yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PlusToken) @@ -6008,7 +6008,7 @@ yydefault: yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.MinusToken) @@ -6022,7 +6022,7 @@ yydefault: yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ExclamationMarkToken) @@ -6036,7 +6036,7 @@ yydefault: yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.TildeToken) @@ -6050,7 +6050,7 @@ yydefault: yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsIdenticalToken) @@ -6064,7 +6064,7 @@ yydefault: yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsNotIdenticalToken) @@ -6078,7 +6078,7 @@ yydefault: yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsEqualToken) @@ -6092,7 +6092,7 @@ yydefault: yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsNotEqualToken) @@ -6106,7 +6106,7 @@ yydefault: yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LessToken) @@ -6120,7 +6120,7 @@ yydefault: yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsSmallerOrEqualToken) @@ -6134,7 +6134,7 @@ yydefault: yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.GreaterToken) @@ -6148,7 +6148,7 @@ yydefault: yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsGreaterOrEqualToken) @@ -6162,7 +6162,7 @@ yydefault: yyVAL.node = binary.NewSpaceship(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SpaceshipToken) @@ -6176,7 +6176,7 @@ yydefault: yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.InstanceofToken) @@ -6210,7 +6210,7 @@ yydefault: yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.QuestionMarkToken) @@ -6225,7 +6225,7 @@ yydefault: yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.QuestionMarkToken) @@ -6240,7 +6240,7 @@ yydefault: yyVAL.node = binary.NewCoalesce(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.CoalesceToken) @@ -6262,7 +6262,7 @@ yydefault: yyVAL.node = cast.NewInt(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IntCastToken) @@ -6276,7 +6276,7 @@ yydefault: yyVAL.node = cast.NewDouble(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DoubleCastToken) @@ -6290,7 +6290,7 @@ yydefault: yyVAL.node = cast.NewString(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StringCastToken) @@ -6304,7 +6304,7 @@ yydefault: yyVAL.node = cast.NewArray(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ArrayCastToken) @@ -6318,7 +6318,7 @@ yydefault: yyVAL.node = cast.NewObject(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ObjectCastToken) @@ -6332,7 +6332,7 @@ yydefault: yyVAL.node = cast.NewBool(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.BoolCastToken) @@ -6346,7 +6346,7 @@ yydefault: yyVAL.node = cast.NewUnset(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UnsetCastToken) @@ -6371,9 +6371,9 @@ yydefault: // save position if yyDollar[2].node == nil { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) } else { - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) } // save comments @@ -6392,7 +6392,7 @@ yydefault: yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AtToken) @@ -6414,7 +6414,7 @@ yydefault: yyVAL.node = expr.NewShellExec(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.BackquoteToken) @@ -6429,7 +6429,7 @@ yydefault: yyVAL.node = expr.NewPrint(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PrintToken) @@ -6443,7 +6443,7 @@ yydefault: yyVAL.node = expr.NewYield(nil, nil) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldToken) @@ -6457,7 +6457,7 @@ yydefault: yyVAL.node = expr.NewYield(nil, yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldToken) @@ -6471,7 +6471,7 @@ yydefault: yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldToken) @@ -6486,7 +6486,7 @@ yydefault: yyVAL.node = expr.NewYieldFrom(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldFromToken) @@ -6500,7 +6500,7 @@ yydefault: yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list, false, yyDollar[2].token != nil, yyDollar[3].str) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FunctionToken) @@ -6521,7 +6521,7 @@ yydefault: yyVAL.node = expr.NewClosure(yyDollar[6].list, yyDollar[8].ClosureUse, yyDollar[9].node, yyDollar[11].list, true, yyDollar[3].token != nil, yyDollar[4].str) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[12].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[12].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StaticToken) @@ -6572,7 +6572,7 @@ yydefault: yyVAL.ClosureUse = expr.NewClosureUse(yyDollar[3].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.ClosureUse, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.ClosureUse.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.ClosureUse, yyDollar[1].token, comment.UseToken) @@ -6608,8 +6608,8 @@ yydefault: yyVAL.node = expr.NewVariable(identifier) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.VariableToken) @@ -6625,9 +6625,9 @@ yydefault: yyVAL.node = expr.NewReference(variable) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AmpersandToken) @@ -6642,7 +6642,7 @@ yydefault: yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6653,7 +6653,7 @@ yydefault: yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) @@ -6667,7 +6667,7 @@ yydefault: yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) @@ -6681,7 +6681,7 @@ yydefault: yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6692,7 +6692,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StaticToken) @@ -6738,7 +6738,7 @@ yydefault: yyVAL.node = expr.NewExit(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenParenthesisToken) @@ -6793,7 +6793,7 @@ yydefault: yyVAL.node = expr.NewArray(yyDollar[3].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ArrayToken) @@ -6809,7 +6809,7 @@ yydefault: yyVAL.node = expr.NewShortArray(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenSquareBracket) @@ -6824,7 +6824,7 @@ yydefault: yyVAL.node = scalar.NewString(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ConstantEncapsedStringToken) @@ -6838,7 +6838,7 @@ yydefault: yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.LnumberToken) @@ -6852,7 +6852,7 @@ yydefault: yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DnumberToken) @@ -6866,7 +6866,7 @@ yydefault: yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.LineToken) @@ -6880,7 +6880,7 @@ yydefault: yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FileToken) @@ -6894,7 +6894,7 @@ yydefault: yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DirToken) @@ -6908,7 +6908,7 @@ yydefault: yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.TraitCToken) @@ -6922,7 +6922,7 @@ yydefault: yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.MethodCToken) @@ -6936,7 +6936,7 @@ yydefault: yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FuncCToken) @@ -6950,7 +6950,7 @@ yydefault: yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsCToken) @@ -6964,7 +6964,7 @@ yydefault: yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ClassCToken) @@ -6979,8 +6979,8 @@ yydefault: yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) // save position - yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StartHeredocToken) @@ -6994,7 +6994,7 @@ yydefault: yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StartHeredocToken) @@ -7008,7 +7008,7 @@ yydefault: yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DoubleQuoteToken) @@ -7022,7 +7022,7 @@ yydefault: yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StartHeredocToken) @@ -7052,7 +7052,7 @@ yydefault: yyVAL.node = expr.NewConstFetch(yyDollar[1].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7064,8 +7064,8 @@ yydefault: yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) // save position - yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) @@ -7081,8 +7081,8 @@ yydefault: yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) // save position - yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) @@ -7201,7 +7201,7 @@ yydefault: yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) @@ -7216,7 +7216,7 @@ yydefault: yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) @@ -7231,7 +7231,7 @@ yydefault: yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenCurlyBracesToken) @@ -7246,7 +7246,7 @@ yydefault: yyVAL.node = expr.NewMethodCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ObjectOperatorToken) @@ -7284,7 +7284,7 @@ yydefault: yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ObjectOperatorToken) @@ -7299,8 +7299,8 @@ yydefault: yyVAL.node = expr.NewVariable(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.VariableToken) @@ -7314,7 +7314,7 @@ yydefault: yyVAL.node = expr.NewVariable(yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarToken) @@ -7330,7 +7330,7 @@ yydefault: yyVAL.node = expr.NewVariable(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarToken) @@ -7344,7 +7344,7 @@ yydefault: yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) @@ -7358,7 +7358,7 @@ yydefault: yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) @@ -7380,7 +7380,7 @@ yydefault: yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) @@ -7395,7 +7395,7 @@ yydefault: yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenCurlyBracesToken) @@ -7410,7 +7410,7 @@ yydefault: yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ObjectOperatorToken) @@ -7424,7 +7424,7 @@ yydefault: yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) @@ -7438,7 +7438,7 @@ yydefault: yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) @@ -7452,7 +7452,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IdentifierToken) @@ -7486,7 +7486,7 @@ yydefault: yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StringToken) @@ -7567,7 +7567,7 @@ yydefault: yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DoubleArrowToken) @@ -7581,7 +7581,7 @@ yydefault: yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7593,7 +7593,8 @@ yydefault: yyVAL.node = expr.NewArrayItem(yyDollar[1].node, reference) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DoubleArrowToken) @@ -7603,13 +7604,14 @@ yydefault: } case 462: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4942 + //line php7/php7.y:4943 { reference := expr.NewReference(yyDollar[2].node) yyVAL.node = expr.NewArrayItem(nil, reference) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(reference, yyDollar[1].token, comment.AmpersandToken) @@ -7618,15 +7620,15 @@ yydefault: } case 463: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:4955 + //line php7/php7.y:4957 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[5].list) yyVAL.node = expr.NewArrayItem(yyDollar[1].node, list) // save position - yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[6].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token)) + list.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[6].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DoubleArrowToken) @@ -7638,15 +7640,15 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4973 + //line php7/php7.y:4975 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[3].list) yyVAL.node = expr.NewArrayItem(nil, list) // save position - yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + list.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(list, yyDollar[1].token, comment.ListToken) @@ -7657,7 +7659,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4993 + //line php7/php7.y:4995 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -7665,13 +7667,13 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4999 + //line php7/php7.y:5001 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.list = append(yyDollar[1].list, encapsed) // save position - yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(encapsed, yyDollar[2].token, comment.EncapsedAndWhitespaceToken) @@ -7680,7 +7682,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5012 + //line php7/php7.y:5014 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -7688,13 +7690,13 @@ yydefault: } case 468: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5018 + //line php7/php7.y:5020 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} // save position - yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(encapsed, yyDollar[1].token, comment.EncapsedAndWhitespaceToken) @@ -7703,14 +7705,14 @@ yydefault: } case 469: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5034 + //line php7/php7.y:5036 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.VariableToken) @@ -7719,16 +7721,16 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5048 + //line php7/php7.y:5050 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) @@ -7739,7 +7741,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5066 + //line php7/php7.y:5068 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -7747,10 +7749,10 @@ yydefault: yyVAL.node = expr.NewPropertyFetch(variable, fetch) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + fetch.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) @@ -7761,12 +7763,12 @@ yydefault: } case 472: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5086 + //line php7/php7.y:5088 { yyVAL.node = expr.NewVariable(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarOpenCurlyBracesToken) @@ -7776,14 +7778,14 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5099 + //line php7/php7.y:5101 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = expr.NewVariable(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarOpenCurlyBracesToken) @@ -7794,16 +7796,16 @@ yydefault: } case 474: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:5115 + //line php7/php7.y:5117 { identifier := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(identifier) yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[4].node) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarOpenCurlyBracesToken) @@ -7816,7 +7818,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5135 + //line php7/php7.y:5137 { yyVAL.node = yyDollar[2].node @@ -7824,12 +7826,12 @@ yydefault: } case 476: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5144 + //line php7/php7.y:5146 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StringToken) @@ -7838,7 +7840,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5156 + //line php7/php7.y:5158 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -7848,7 +7850,7 @@ yydefault: } // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NumStringToken) @@ -7857,7 +7859,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5173 + //line php7/php7.y:5175 { var lnumber *scalar.Lnumber // TODO: add option to handle 64 bit integer @@ -7874,9 +7876,9 @@ yydefault: // save position if isInt { - yylex.(*Parser).positions.AddPosition(lnumber, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + lnumber.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) } - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.MinusToken) @@ -7890,14 +7892,14 @@ yydefault: } case 479: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5204 + //line php7/php7.y:5206 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.VariableToken) @@ -7906,12 +7908,12 @@ yydefault: } case 480: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:5221 + //line php7/php7.y:5223 { yyVAL.node = expr.NewIsset(yyDollar[3].list) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IssetToken) @@ -7925,12 +7927,12 @@ yydefault: } case 481: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5238 + //line php7/php7.y:5240 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EmptyToken) @@ -7941,12 +7943,12 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5252 + //line php7/php7.y:5254 { yyVAL.node = expr.NewInclude(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IncludeToken) @@ -7955,12 +7957,12 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5264 + //line php7/php7.y:5266 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IncludeOnceToken) @@ -7969,12 +7971,12 @@ yydefault: } case 484: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5276 + //line php7/php7.y:5278 { yyVAL.node = expr.NewEval(yyDollar[3].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EvalToken) @@ -7985,12 +7987,12 @@ yydefault: } case 485: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5290 + //line php7/php7.y:5292 { yyVAL.node = expr.NewRequire(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.RequireToken) @@ -7999,12 +8001,12 @@ yydefault: } case 486: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5302 + //line php7/php7.y:5304 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.RequireOnceToken) @@ -8013,7 +8015,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5317 + //line php7/php7.y:5319 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -8021,7 +8023,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5323 + //line php7/php7.y:5325 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8032,7 +8034,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5335 + //line php7/php7.y:5337 { yyVAL.node = yyDollar[1].node diff --git a/php7/php7.y b/php7/php7.y index 1620098..eee2747 100644 --- a/php7/php7.y +++ b/php7/php7.y @@ -301,7 +301,7 @@ start: yylex.(*Parser).rootNode = node.NewRoot($1) // save position - yylex.(*Parser).positions.AddPosition(yylex.(*Parser).rootNode, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).rootNode.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -360,7 +360,7 @@ namespace_name: $$ = []node.Node{namePart} // save position - yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken(namePart, $1, comment.StringToken) @@ -373,7 +373,7 @@ namespace_name: $$ = append($1, namePart) // save position - yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.NsSeparatorToken) @@ -389,7 +389,7 @@ name: $$ = name.NewName($1) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -398,7 +398,7 @@ name: $$ = name.NewRelative($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) @@ -411,7 +411,7 @@ name: $$ = name.NewFullyQualified($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) @@ -463,7 +463,7 @@ top_statement: $$ = stmt.NewHaltCompiler() // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.HaltCompilerToken) @@ -479,8 +479,8 @@ top_statement: $$ = stmt.NewNamespace(name, nil) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) @@ -494,8 +494,8 @@ top_statement: $$ = stmt.NewNamespace(name, $4) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) @@ -509,7 +509,7 @@ top_statement: $$ = stmt.NewNamespace(nil, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) @@ -523,7 +523,7 @@ top_statement: $$ = $2 // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) @@ -536,7 +536,7 @@ top_statement: $$ = $3.(*stmt.GroupUse).SetUseType($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) @@ -549,7 +549,7 @@ top_statement: $$ = stmt.NewUseList(nil, $2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) @@ -562,7 +562,7 @@ top_statement: $$ = stmt.NewUseList($2, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) @@ -575,7 +575,7 @@ top_statement: $$ = stmt.NewConstList($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ConstToken) @@ -591,7 +591,7 @@ use_type: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.FunctionToken) @@ -603,7 +603,7 @@ use_type: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ConstToken) @@ -619,8 +619,8 @@ group_use_declaration: $$ = stmt.NewGroupUse(nil, name, $4) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $6)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $6)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.NsSeparatorToken) @@ -638,8 +638,8 @@ group_use_declaration: $$ = stmt.NewGroupUse(nil, name, $5) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) @@ -661,8 +661,8 @@ mixed_group_use_declaration: $$ = stmt.NewGroupUse(nil, name, $4) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $6)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $6)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.NsSeparatorToken) @@ -680,8 +680,8 @@ mixed_group_use_declaration: $$ = stmt.NewGroupUse(nil, name, $5) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) @@ -783,8 +783,8 @@ unprefixed_use_declaration: $$ = stmt.NewUse(nil, name, nil) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -795,9 +795,9 @@ unprefixed_use_declaration: $$ = stmt.NewUse(nil, name, alias) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) @@ -903,7 +903,7 @@ inner_statement: $$ = stmt.NewHaltCompiler() // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.HaltCompilerToken) @@ -920,7 +920,7 @@ statement: $$ = stmt.NewStmtList($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) @@ -952,7 +952,7 @@ statement: $$ = $5 // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.WhileToken) @@ -966,7 +966,7 @@ statement: $$ = stmt.NewDo($2, $5) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DoToken) @@ -993,7 +993,7 @@ statement: $$ = $9 // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ForToken) @@ -1018,7 +1018,7 @@ statement: $$ = $5 // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.SwitchToken) @@ -1032,7 +1032,7 @@ statement: $$ = stmt.NewBreak($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.BreakToken) @@ -1045,7 +1045,7 @@ statement: $$ = stmt.NewContinue($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ContinueToken) @@ -1058,7 +1058,7 @@ statement: $$ = stmt.NewReturn($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ReturnToken) @@ -1071,7 +1071,7 @@ statement: $$ = stmt.NewGlobal($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.GlobalToken) @@ -1084,7 +1084,7 @@ statement: $$ = stmt.NewStatic($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StaticToken) @@ -1097,7 +1097,7 @@ statement: $$ = stmt.NewEcho($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.EchoToken) @@ -1110,7 +1110,7 @@ statement: $$ = stmt.NewInlineHtml($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.InlineHTMLToken) @@ -1122,7 +1122,7 @@ statement: $$ = stmt.NewExpression($1) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SemiColonToken) @@ -1134,7 +1134,7 @@ statement: $$ = stmt.NewUnset($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UnsetToken) @@ -1161,7 +1161,7 @@ statement: $$ = $7 // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $7)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $7)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ForeachToken) @@ -1187,7 +1187,7 @@ statement: $$ = $9 // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ForeachToken) @@ -1203,7 +1203,7 @@ statement: $$ = stmt.NewDeclare($3, $5) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DeclareToken) @@ -1217,7 +1217,7 @@ statement: $$ = stmt.NewNop() // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.SemiColonToken) @@ -1228,10 +1228,10 @@ statement: { if $6 == nil { $$ = stmt.NewTry($3, $5, $6) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $5)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $5)) } else { $$ = stmt.NewTry($3, $5, $6) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6)) } // save comments @@ -1246,7 +1246,7 @@ statement: $$ = stmt.NewThrow($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ThrowToken) @@ -1260,8 +1260,8 @@ statement: $$ = stmt.NewGoto(label) // save position - yylex.(*Parser).positions.AddPosition(label, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + label.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.GotoToken) @@ -1276,8 +1276,8 @@ statement: $$ = stmt.NewLabel(label) // save position - yylex.(*Parser).positions.AddPosition(label, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + label.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken(label, $1, comment.StringToken) @@ -1301,9 +1301,9 @@ catch_list: $$ = append($1, catch) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($5)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($5)) - yylex.(*Parser).positions.AddPosition(catch, yylex.(*Parser).positionBuilder.NewTokensPosition($2, $9)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($5)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($5)) + catch.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($2, $9)) // save comments yylex.(*Parser).comments.AddFromToken(catch, $2, comment.CatchToken) @@ -1346,7 +1346,7 @@ finally_statement: $$ = stmt.NewFinally($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.FinallyToken) @@ -1391,8 +1391,8 @@ function_declaration_statement: $$ = stmt.NewFunction(name, $2 != nil, $6, $8, $10, $4) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $11)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $11)) // save comments @@ -1439,8 +1439,8 @@ class_declaration_statement: $$ = stmt.NewClass(name, $1, nil, $4, $5, $8, $6) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition($1, $2, $9)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition($1, $2, $9)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.ClassToken) @@ -1456,8 +1456,8 @@ class_declaration_statement: $$ = stmt.NewClass(name, nil, nil, $3, $4, $7, $5) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ClassToken) @@ -1490,7 +1490,7 @@ class_modifier: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.AbstractToken) @@ -1502,7 +1502,7 @@ class_modifier: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.FinalToken) @@ -1518,8 +1518,8 @@ trait_declaration_statement: $$ = stmt.NewTrait(name, $5, $3) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.TraitToken) @@ -1538,8 +1538,8 @@ interface_declaration_statement: $$ = stmt.NewInterface(name, $3, $6, $4) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.InterfaceToken) @@ -1563,7 +1563,7 @@ extends_from: $$ = stmt.NewClassExtends($2); // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ExtendsToken) @@ -1584,7 +1584,7 @@ interface_extends_list: $$ = stmt.NewInterfaceExtends($2); // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ExtendsToken) @@ -1605,7 +1605,7 @@ implements_list: $$ = stmt.NewClassImplements($2); // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ImplementsToken) @@ -1626,7 +1626,7 @@ foreach_variable: $$ = expr.NewReference($2) // save position - yylex.(*Parser).positions.AddPosition($2, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.AmpersandToken) @@ -1638,7 +1638,7 @@ foreach_variable: $$ = expr.NewList($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ListToken) @@ -1652,7 +1652,7 @@ foreach_variable: $$ = expr.NewShortList($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenSquareBracket) @@ -1668,7 +1668,7 @@ for_statement: $$ = stmt.NewFor(nil, nil, nil, $1) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1678,8 +1678,8 @@ for_statement: $$ = stmt.NewAltFor(nil, nil, nil, stmtList) // save position - yylex.(*Parser).positions.AddPosition(stmtList, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ColonToken) @@ -1696,7 +1696,7 @@ foreach_statement: $$ = stmt.NewForeach(nil, nil, nil, $1) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1706,8 +1706,8 @@ foreach_statement: $$ = stmt.NewAltForeach(nil, nil, nil, stmtList) // save position - yylex.(*Parser).positions.AddPosition(stmtList, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ColonToken) @@ -1730,7 +1730,7 @@ declare_statement: $$ = stmt.NewStmtList($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ColonToken) @@ -1748,8 +1748,8 @@ switch_case_list: $$ = stmt.NewSwitch(nil, caseList) // save position - yylex.(*Parser).positions.AddPosition(caseList, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + caseList.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken(caseList, $1, comment.OpenCurlyBracesToken) @@ -1763,8 +1763,8 @@ switch_case_list: $$ = stmt.NewSwitch(nil, caseList) // save position - yylex.(*Parser).positions.AddPosition(caseList, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + caseList.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken(caseList, $1, comment.OpenCurlyBracesToken) @@ -1779,8 +1779,8 @@ switch_case_list: $$ = stmt.NewAltSwitch(nil, caseList) // save position - yylex.(*Parser).positions.AddPosition(caseList, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + caseList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken(caseList, $1, comment.ColonToken) @@ -1796,8 +1796,8 @@ switch_case_list: $$ = stmt.NewAltSwitch(nil, caseList) // save position - yylex.(*Parser).positions.AddPosition(caseList, yylex.(*Parser).positionBuilder.NewNodeListPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) + caseList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) // save comments yylex.(*Parser).comments.AddFromToken(caseList, $1, comment.ColonToken) @@ -1822,7 +1822,7 @@ case_list: $$ = append($1, _case) // save position - yylex.(*Parser).positions.AddPosition(_case, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5)) + _case.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5)) // save comments yylex.(*Parser).comments.AddFromToken(_case, $2, comment.CaseToken) @@ -1836,7 +1836,7 @@ case_list: $$ = append($1, _default) // save position - yylex.(*Parser).positions.AddPosition(_default, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4)) + _default.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4)) // save comments yylex.(*Parser).comments.AddFromToken(_default, $2, comment.DefaultToken) @@ -1863,7 +1863,7 @@ while_statement: $$ = stmt.NewWhile(nil, $1) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1873,8 +1873,8 @@ while_statement: $$ = stmt.NewAltWhile(nil, stmtList) // save position - yylex.(*Parser).positions.AddPosition(stmtList, yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ColonToken) @@ -1891,7 +1891,7 @@ if_stmt_without_else: $$ = stmt.NewIf($3, $5, nil, nil) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IfToken) @@ -1906,8 +1906,8 @@ if_stmt_without_else: $$ = $1.(*stmt.If).AddElseIf(_elseIf) // save position - yylex.(*Parser).positions.AddPosition(_elseIf, yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $6)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $6)) + _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $6)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $6)) // save comments yylex.(*Parser).comments.AddFromToken(_elseIf, $2, comment.ElseifToken) @@ -1931,8 +1931,8 @@ if_stmt: $$ = $1.(*stmt.If).SetElse(_else) // save position - yylex.(*Parser).positions.AddPosition(_else, yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + _else.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.ElseToken) @@ -1948,8 +1948,8 @@ alt_if_stmt_without_else: $$ = stmt.NewAltIf($3, stmts, nil, nil) // save position - yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition($6)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $6)) + stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($6)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $6)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IfToken) @@ -1966,8 +1966,8 @@ alt_if_stmt_without_else: $$ = $1.(*stmt.AltIf).AddElseIf(_elseIf) // save position - yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition($7)) - yylex.(*Parser).positions.AddPosition(_elseIf, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $7)) + stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($7)) + _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $7)) // save comments yylex.(*Parser).comments.AddFromToken(_elseIf, $2, comment.ElseifToken) @@ -1985,7 +1985,7 @@ alt_if_stmt: $$ = $1 // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.EndifToken) @@ -2000,9 +2000,9 @@ alt_if_stmt: $$ = $1.(*stmt.AltIf).SetElse(_else) // save position - yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition($4)) - yylex.(*Parser).positions.AddPosition(_else, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $6)) + stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($4)) + _else.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $6)) // save comments yylex.(*Parser).comments.AddFromToken(_else, $2, comment.ElseToken) @@ -2055,16 +2055,16 @@ parameter: $$ = node.NewParameter($1, variable, nil, $2 != nil, $3 != nil) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) if $1 != nil { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) } else if $2 != nil { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($2, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($2, $4)) } else if $3 != nil { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($3, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($3, $4)) } else { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) } // save comments @@ -2085,16 +2085,16 @@ parameter: $$ = node.NewParameter($1, variable, $6, $2 != nil, $3 != nil) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) if $1 != nil { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $6)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $6)) } else if $2 != nil { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $6)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $6)) } else if $3 != nil { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $6)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $6)) } else { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $6)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $6)) } // save comments @@ -2138,7 +2138,7 @@ type_expr: $$ = node.NewNullable($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.QuestionMarkToken) @@ -2153,7 +2153,7 @@ type: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ArrayToken) @@ -2165,7 +2165,7 @@ type: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.CallableToken) @@ -2204,7 +2204,7 @@ argument_list: $$ = node.NewArgumentList(nil) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenParenthesisToken) @@ -2217,7 +2217,7 @@ argument_list: $$ = node.NewArgumentList($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenParenthesisToken) @@ -2254,7 +2254,7 @@ argument: $$ = node.NewArgument($1, false, false) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2263,7 +2263,7 @@ argument: $$ = node.NewArgument($2, true, false) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.EllipsisToken) @@ -2325,9 +2325,9 @@ static_var: $$ = stmt.NewStaticVar(variable, nil) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) @@ -2341,9 +2341,9 @@ static_var: $$ = stmt.NewStaticVar(variable, $3) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) @@ -2374,7 +2374,7 @@ class_statement: $$ = stmt.NewPropertyList($1, $2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) @@ -2386,7 +2386,7 @@ class_statement: $$ = stmt.NewClassConstList($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition($1, $2, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition($1, $2, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.ConstToken) @@ -2409,7 +2409,7 @@ class_statement: $$ = stmt.NewTraitUse($2, adaptationList) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) @@ -2422,11 +2422,11 @@ class_statement: $$ = stmt.NewClassMethod(name, $1, $3 != nil, $7, $9, $10, $5) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) if $1 == nil { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $10)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $10)) } else { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListNodePosition($1, $10)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListNodePosition($1, $10)) } // save comments @@ -2465,7 +2465,7 @@ trait_adaptations: { $$ = stmt.NewNop() - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.SemiColonToken) @@ -2477,7 +2477,7 @@ trait_adaptations: { $$ = stmt.NewTraitAdaptationList(nil) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) @@ -2489,7 +2489,7 @@ trait_adaptations: { $$ = stmt.NewTraitAdaptationList($2) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) @@ -2541,7 +2541,7 @@ trait_precedence: $$ = stmt.NewTraitUsePrecedence($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.InsteadofToken) @@ -2557,8 +2557,8 @@ trait_alias: $$ = stmt.NewTraitUseAlias($1, nil, alias) // save position - yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) + alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) @@ -2572,8 +2572,8 @@ trait_alias: $$ = stmt.NewTraitUseAlias($1, nil, alias) // save position - yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) + alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) @@ -2587,8 +2587,8 @@ trait_alias: $$ = stmt.NewTraitUseAlias($1, $3, alias) // save position - yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) @@ -2601,7 +2601,7 @@ trait_alias: $$ = stmt.NewTraitUseAlias($1, $3, nil) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) @@ -2617,8 +2617,8 @@ trait_method_reference: $$ = stmt.NewTraitMethodRef(nil, name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken(name, $1, comment.IdentifierToken) @@ -2640,8 +2640,8 @@ absolute_trait_method_reference: $$ = stmt.NewTraitMethodRef($1, target) // save position - yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) + target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) @@ -2657,7 +2657,7 @@ method_body: $$ = stmt.NewNop() // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.SemiColonToken) @@ -2669,7 +2669,7 @@ method_body: $$ = stmt.NewStmtList($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) @@ -2692,7 +2692,7 @@ variable_modifiers: $$ = []node.Node{modifier} // save position - yylex.(*Parser).positions.AddPosition(modifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + modifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken(modifier, $1, comment.VarToken) @@ -2737,7 +2737,7 @@ member_modifier: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.PublicToken) @@ -2749,7 +2749,7 @@ member_modifier: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ProtectedToken) @@ -2761,7 +2761,7 @@ member_modifier: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.PrivateToken) @@ -2773,7 +2773,7 @@ member_modifier: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StaticToken) @@ -2785,7 +2785,7 @@ member_modifier: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.AbstractToken) @@ -2797,7 +2797,7 @@ member_modifier: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.FinalToken) @@ -2832,9 +2832,9 @@ property: $$ = stmt.NewProperty(variable, nil, $2) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) @@ -2848,9 +2848,9 @@ property: $$ = stmt.NewProperty(variable, $3, $4) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) @@ -2885,8 +2885,8 @@ class_const_decl: $$ = stmt.NewConstant(name, $3, $4) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken(name, $1, comment.IdentifierToken) @@ -2903,8 +2903,8 @@ const_decl: $$ = stmt.NewConstant(name, $3, $4) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken(name, $1, comment.StringToken) @@ -2984,7 +2984,7 @@ anonymous_class: } // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ClassToken) @@ -3000,10 +3000,10 @@ new_expr: { if $3 != nil { $$ = expr.NewNew($2, $3.(*node.ArgumentList)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) } else { $$ = expr.NewNew($2, nil) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) } // save comments @@ -3016,7 +3016,7 @@ new_expr: $$ = expr.NewNew($2, nil) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NewToken) @@ -3032,8 +3032,8 @@ expr_without_variable: $$ = assign.NewAssign(list, $6) // save position - yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6)) + list.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6)) // save comments yylex.(*Parser).comments.AddFromToken(list, $1, comment.ListToken) @@ -3049,8 +3049,8 @@ expr_without_variable: $$ = assign.NewAssign(shortList, $5) // save position - yylex.(*Parser).positions.AddPosition(shortList, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) + shortList.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) // save comments yylex.(*Parser).comments.AddFromToken(shortList, $1, comment.OpenSquareBracket) @@ -3064,7 +3064,7 @@ expr_without_variable: $$ = assign.NewAssign($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.EqualToken) @@ -3076,7 +3076,7 @@ expr_without_variable: $$ = assign.NewReference($1, $4) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.EqualToken) @@ -3089,7 +3089,7 @@ expr_without_variable: $$ = expr.NewClone($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.CloneToken) @@ -3101,7 +3101,7 @@ expr_without_variable: $$ = assign.NewPlus($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PlusEqualToken) @@ -3113,7 +3113,7 @@ expr_without_variable: $$ = assign.NewMinus($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.MinusEqualToken) @@ -3125,7 +3125,7 @@ expr_without_variable: $$ = assign.NewMul($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.MulEqualToken) @@ -3137,7 +3137,7 @@ expr_without_variable: $$ = assign.NewPow($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PowEqualToken) @@ -3149,7 +3149,7 @@ expr_without_variable: $$ = assign.NewDiv($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.DivEqualToken) @@ -3161,7 +3161,7 @@ expr_without_variable: $$ = assign.NewConcat($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.ConcatEqualToken) @@ -3173,7 +3173,7 @@ expr_without_variable: $$ = assign.NewMod($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.ModEqualToken) @@ -3185,7 +3185,7 @@ expr_without_variable: $$ = assign.NewBitwiseAnd($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AndEqualToken) @@ -3197,7 +3197,7 @@ expr_without_variable: $$ = assign.NewBitwiseOr($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OrEqualToken) @@ -3209,7 +3209,7 @@ expr_without_variable: $$ = assign.NewBitwiseXor($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.XorEqualToken) @@ -3221,7 +3221,7 @@ expr_without_variable: $$ = assign.NewShiftLeft($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SlEqualToken) @@ -3233,7 +3233,7 @@ expr_without_variable: $$ = assign.NewShiftRight($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SrEqualToken) @@ -3245,7 +3245,7 @@ expr_without_variable: $$ = expr.NewPostInc($1) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IncToken) @@ -3257,7 +3257,7 @@ expr_without_variable: $$ = expr.NewPreInc($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IncToken) @@ -3269,7 +3269,7 @@ expr_without_variable: $$ = expr.NewPostDec($1) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.DecToken) @@ -3281,7 +3281,7 @@ expr_without_variable: $$ = expr.NewPreDec($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DecToken) @@ -3293,7 +3293,7 @@ expr_without_variable: $$ = binary.NewBooleanOr($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.BooleanOrToken) @@ -3305,7 +3305,7 @@ expr_without_variable: $$ = binary.NewBooleanAnd($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.BooleanAndToken) @@ -3317,7 +3317,7 @@ expr_without_variable: $$ = binary.NewLogicalOr($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LogicalOrToken) @@ -3329,7 +3329,7 @@ expr_without_variable: $$ = binary.NewLogicalAnd($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LogicalAndToken) @@ -3341,7 +3341,7 @@ expr_without_variable: $$ = binary.NewLogicalXor($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LogicalXorToken) @@ -3353,7 +3353,7 @@ expr_without_variable: $$ = binary.NewBitwiseOr($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.VerticalBarToken) @@ -3365,7 +3365,7 @@ expr_without_variable: $$ = binary.NewBitwiseAnd($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AmpersandToken) @@ -3377,7 +3377,7 @@ expr_without_variable: $$ = binary.NewBitwiseXor($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.CaretToken) @@ -3389,7 +3389,7 @@ expr_without_variable: $$ = binary.NewConcat($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.DotToken) @@ -3401,7 +3401,7 @@ expr_without_variable: $$ = binary.NewPlus($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PlusToken) @@ -3413,7 +3413,7 @@ expr_without_variable: $$ = binary.NewMinus($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.MinusToken) @@ -3425,7 +3425,7 @@ expr_without_variable: $$ = binary.NewMul($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsteriskToken) @@ -3437,7 +3437,7 @@ expr_without_variable: $$ = binary.NewPow($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PowToken) @@ -3449,7 +3449,7 @@ expr_without_variable: $$ = binary.NewDiv($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SlashToken) @@ -3461,7 +3461,7 @@ expr_without_variable: $$ = binary.NewMod($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PercentToken) @@ -3473,7 +3473,7 @@ expr_without_variable: $$ = binary.NewShiftLeft($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SlToken) @@ -3485,7 +3485,7 @@ expr_without_variable: $$ = binary.NewShiftRight($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SrToken) @@ -3497,7 +3497,7 @@ expr_without_variable: $$ = expr.NewUnaryPlus($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.PlusToken) @@ -3509,7 +3509,7 @@ expr_without_variable: $$ = expr.NewUnaryMinus($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.MinusToken) @@ -3521,7 +3521,7 @@ expr_without_variable: $$ = expr.NewBooleanNot($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ExclamationMarkToken) @@ -3533,7 +3533,7 @@ expr_without_variable: $$ = expr.NewBitwiseNot($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.TildeToken) @@ -3545,7 +3545,7 @@ expr_without_variable: $$ = binary.NewIdentical($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsIdenticalToken) @@ -3557,7 +3557,7 @@ expr_without_variable: $$ = binary.NewNotIdentical($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsNotIdenticalToken) @@ -3569,7 +3569,7 @@ expr_without_variable: $$ = binary.NewEqual($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsEqualToken) @@ -3581,7 +3581,7 @@ expr_without_variable: $$ = binary.NewNotEqual($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsNotEqualToken) @@ -3593,7 +3593,7 @@ expr_without_variable: $$ = binary.NewSmaller($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LessToken) @@ -3605,7 +3605,7 @@ expr_without_variable: $$ = binary.NewSmallerOrEqual($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsSmallerOrEqualToken) @@ -3617,7 +3617,7 @@ expr_without_variable: $$ = binary.NewGreater($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.GreaterToken) @@ -3629,7 +3629,7 @@ expr_without_variable: $$ = binary.NewGreaterOrEqual($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsGreaterOrEqualToken) @@ -3641,7 +3641,7 @@ expr_without_variable: $$ = binary.NewSpaceship($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SpaceshipToken) @@ -3653,7 +3653,7 @@ expr_without_variable: $$ = expr.NewInstanceOf($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.InstanceofToken) @@ -3681,7 +3681,7 @@ expr_without_variable: $$ = expr.NewTernary($1, $3, $5) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.QuestionMarkToken) @@ -3694,7 +3694,7 @@ expr_without_variable: $$ = expr.NewTernary($1, nil, $4) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.QuestionMarkToken) @@ -3707,7 +3707,7 @@ expr_without_variable: $$ = binary.NewCoalesce($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.CoalesceToken) @@ -3725,7 +3725,7 @@ expr_without_variable: $$ = cast.NewInt($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IntCastToken) @@ -3737,7 +3737,7 @@ expr_without_variable: $$ = cast.NewDouble($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DoubleCastToken) @@ -3749,7 +3749,7 @@ expr_without_variable: $$ = cast.NewString($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StringCastToken) @@ -3761,7 +3761,7 @@ expr_without_variable: $$ = cast.NewArray($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ArrayCastToken) @@ -3773,7 +3773,7 @@ expr_without_variable: $$ = cast.NewObject($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ObjectCastToken) @@ -3785,7 +3785,7 @@ expr_without_variable: $$ = cast.NewBool($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.BoolCastToken) @@ -3797,7 +3797,7 @@ expr_without_variable: $$ = cast.NewUnset($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UnsetCastToken) @@ -3820,9 +3820,9 @@ expr_without_variable: // save position if $2 == nil { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) } else { - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) } // save comments @@ -3839,7 +3839,7 @@ expr_without_variable: $$ = expr.NewErrorSuppress($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.AtToken) @@ -3857,7 +3857,7 @@ expr_without_variable: $$ = expr.NewShellExec($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.BackquoteToken) @@ -3870,7 +3870,7 @@ expr_without_variable: $$ = expr.NewPrint($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.PrintToken) @@ -3882,7 +3882,7 @@ expr_without_variable: $$ = expr.NewYield(nil, nil) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldToken) @@ -3894,7 +3894,7 @@ expr_without_variable: $$ = expr.NewYield(nil, $2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldToken) @@ -3906,7 +3906,7 @@ expr_without_variable: $$ = expr.NewYield($2, $4) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldToken) @@ -3919,7 +3919,7 @@ expr_without_variable: $$ = expr.NewYieldFrom($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldFromToken) @@ -3931,7 +3931,7 @@ expr_without_variable: $$ = expr.NewClosure($5, $7, $8, $10, false, $2 != nil, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $11)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $11)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.FunctionToken) @@ -3950,7 +3950,7 @@ expr_without_variable: $$ = expr.NewClosure($6, $8, $9, $11, true, $3 != nil, $4) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $12)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $12)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StaticToken) @@ -4000,7 +4000,7 @@ lexical_vars: $$ = expr.NewClosureUse($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) @@ -4036,8 +4036,8 @@ lexical_var: $$ = expr.NewVariable(identifier) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.VariableToken) @@ -4051,9 +4051,9 @@ lexical_var: $$ = expr.NewReference(variable) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.AmpersandToken) @@ -4069,7 +4069,7 @@ function_call: $$ = expr.NewFunctionCall($1, $2.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4078,7 +4078,7 @@ function_call: $$ = expr.NewStaticCall($1, $3, $4.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) @@ -4090,7 +4090,7 @@ function_call: $$ = expr.NewStaticCall($1, $3, $4.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) @@ -4102,7 +4102,7 @@ function_call: $$ = expr.NewFunctionCall($1, $2.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4114,7 +4114,7 @@ class_name: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StaticToken) @@ -4156,7 +4156,7 @@ exit_expr: $$ = expr.NewExit($2); // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenParenthesisToken) @@ -4208,7 +4208,7 @@ dereferencable_scalar: $$ = expr.NewArray($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ArrayToken) @@ -4222,7 +4222,7 @@ dereferencable_scalar: $$ = expr.NewShortArray($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenSquareBracket) @@ -4235,7 +4235,7 @@ dereferencable_scalar: $$ = scalar.NewString($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ConstantEncapsedStringToken) @@ -4250,7 +4250,7 @@ scalar: $$ = scalar.NewLnumber($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.LnumberToken) @@ -4262,7 +4262,7 @@ scalar: $$ = scalar.NewDnumber($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DnumberToken) @@ -4274,7 +4274,7 @@ scalar: $$ = scalar.NewMagicConstant($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.LineToken) @@ -4286,7 +4286,7 @@ scalar: $$ = scalar.NewMagicConstant($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.FileToken) @@ -4298,7 +4298,7 @@ scalar: $$ = scalar.NewMagicConstant($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DirToken) @@ -4310,7 +4310,7 @@ scalar: $$ = scalar.NewMagicConstant($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.TraitCToken) @@ -4322,7 +4322,7 @@ scalar: $$ = scalar.NewMagicConstant($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.MethodCToken) @@ -4334,7 +4334,7 @@ scalar: $$ = scalar.NewMagicConstant($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.FuncCToken) @@ -4346,7 +4346,7 @@ scalar: $$ = scalar.NewMagicConstant($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsCToken) @@ -4358,7 +4358,7 @@ scalar: $$ = scalar.NewMagicConstant($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ClassCToken) @@ -4371,8 +4371,8 @@ scalar: $$ = scalar.NewHeredoc($1.Value, []node.Node{encapsed}) // save position - yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StartHeredocToken) @@ -4384,7 +4384,7 @@ scalar: $$ = scalar.NewHeredoc($1.Value, nil) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StartHeredocToken) @@ -4396,7 +4396,7 @@ scalar: $$ = scalar.NewEncapsed($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DoubleQuoteToken) @@ -4408,7 +4408,7 @@ scalar: $$ = scalar.NewHeredoc($1.Value, $2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StartHeredocToken) @@ -4435,7 +4435,7 @@ constant: $$ = expr.NewConstFetch($1) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4445,8 +4445,8 @@ constant: $$ = expr.NewClassConstFetch($1, target) // save position - yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) + target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) @@ -4460,8 +4460,8 @@ constant: $$ = expr.NewClassConstFetch($1, target) // save position - yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) + target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) @@ -4572,7 +4572,7 @@ callable_variable: $$ = expr.NewArrayDimFetch($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) @@ -4585,7 +4585,7 @@ callable_variable: $$ = expr.NewArrayDimFetch($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) @@ -4598,7 +4598,7 @@ callable_variable: $$ = expr.NewArrayDimFetch($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenCurlyBracesToken) @@ -4611,7 +4611,7 @@ callable_variable: $$ = expr.NewMethodCall($1, $3, $4.(*node.ArgumentList)) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.ObjectOperatorToken) @@ -4644,7 +4644,7 @@ variable: $$ = expr.NewPropertyFetch($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.ObjectOperatorToken) @@ -4660,8 +4660,8 @@ simple_variable: $$ = expr.NewVariable(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.VariableToken) @@ -4673,7 +4673,7 @@ simple_variable: $$ = expr.NewVariable($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarToken) @@ -4687,7 +4687,7 @@ simple_variable: $$ = expr.NewVariable($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarToken) @@ -4702,7 +4702,7 @@ static_member: $$ = expr.NewStaticPropertyFetch($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) @@ -4714,7 +4714,7 @@ static_member: $$ = expr.NewStaticPropertyFetch($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) @@ -4735,7 +4735,7 @@ new_variable: $$ = expr.NewArrayDimFetch($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) @@ -4748,7 +4748,7 @@ new_variable: $$ = expr.NewArrayDimFetch($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenCurlyBracesToken) @@ -4761,7 +4761,7 @@ new_variable: $$ = expr.NewPropertyFetch($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.ObjectOperatorToken) @@ -4773,7 +4773,7 @@ new_variable: $$ = expr.NewStaticPropertyFetch($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) @@ -4785,7 +4785,7 @@ new_variable: $$ = expr.NewStaticPropertyFetch($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) @@ -4800,7 +4800,7 @@ member_name: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IdentifierToken) @@ -4831,7 +4831,7 @@ property_name: $$ = node.NewIdentifier($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StringToken) @@ -4908,7 +4908,7 @@ array_pair: $$ = expr.NewArrayItem($1, $3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.DoubleArrowToken) @@ -4920,7 +4920,7 @@ array_pair: $$ = expr.NewArrayItem(nil, $1) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4930,7 +4930,8 @@ array_pair: $$ = expr.NewArrayItem($1, reference) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.DoubleArrowToken) @@ -4944,7 +4945,8 @@ array_pair: $$ = expr.NewArrayItem(nil, reference) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken(reference, $1, comment.AmpersandToken) @@ -4958,8 +4960,8 @@ array_pair: $$ = expr.NewArrayItem($1, list) // save position - yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition($3, $6)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $6)) + list.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($3, $6)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $6)) // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.DoubleArrowToken) @@ -4976,8 +4978,8 @@ array_pair: $$ = expr.NewArrayItem(nil, list) // save position - yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + list.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken(list, $1, comment.ListToken) @@ -5001,7 +5003,7 @@ encaps_list: $$ = append($1, encapsed) // save position - yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) // save comments yylex.(*Parser).comments.AddFromToken(encapsed, $2, comment.EncapsedAndWhitespaceToken) @@ -5020,7 +5022,7 @@ encaps_list: $$ = []node.Node{encapsed, $2} // save position - yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken(encapsed, $1, comment.EncapsedAndWhitespaceToken) @@ -5036,8 +5038,8 @@ encaps_var: $$ = expr.NewVariable(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.VariableToken) @@ -5051,9 +5053,9 @@ encaps_var: $$ = expr.NewArrayDimFetch(variable, $3) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) @@ -5070,10 +5072,10 @@ encaps_var: $$ = expr.NewPropertyFetch(variable, fetch) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + fetch.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) @@ -5087,7 +5089,7 @@ encaps_var: $$ = expr.NewVariable($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarOpenCurlyBracesToken) @@ -5101,8 +5103,8 @@ encaps_var: $$ = expr.NewVariable(name) // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarOpenCurlyBracesToken) @@ -5118,9 +5120,9 @@ encaps_var: $$ = expr.NewArrayDimFetch(variable, $4) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition(variable, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarOpenCurlyBracesToken) @@ -5145,7 +5147,7 @@ encaps_var_offset: $$ = scalar.NewString($1.Value) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StringToken) @@ -5162,7 +5164,7 @@ encaps_var_offset: } // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NumStringToken) @@ -5186,9 +5188,9 @@ encaps_var_offset: // save position if isInt { - yylex.(*Parser).positions.AddPosition(lnumber, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + lnumber.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) } - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.MinusToken) @@ -5206,8 +5208,8 @@ encaps_var_offset: $$ = expr.NewVariable(identifier) // save position - yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.VariableToken) @@ -5222,7 +5224,7 @@ internal_functions_in_yacc: $$ = expr.NewIsset($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IssetToken) @@ -5239,7 +5241,7 @@ internal_functions_in_yacc: $$ = expr.NewEmpty($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.EmptyToken) @@ -5253,7 +5255,7 @@ internal_functions_in_yacc: $$ = expr.NewInclude($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IncludeToken) @@ -5265,7 +5267,7 @@ internal_functions_in_yacc: $$ = expr.NewIncludeOnce($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IncludeOnceToken) @@ -5277,7 +5279,7 @@ internal_functions_in_yacc: $$ = expr.NewEval($3) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.EvalToken) @@ -5291,7 +5293,7 @@ internal_functions_in_yacc: $$ = expr.NewRequire($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.RequireToken) @@ -5303,7 +5305,7 @@ internal_functions_in_yacc: $$ = expr.NewRequireOnce($2) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.RequireOnceToken) diff --git a/php7/php7_test.go b/php7/php7_test.go index b466d4e..ec20ae1 100644 --- a/php7/php7_test.go +++ b/php7/php7_test.go @@ -12,9 +12,9 @@ import ( "github.com/z7zmey/php-parser/node/expr/cast" "github.com/z7zmey/php-parser/node/name" "github.com/z7zmey/php-parser/node/scalar" - "github.com/z7zmey/php-parser/node" "github.com/z7zmey/php-parser/node/stmt" + "github.com/z7zmey/php-parser/position" "github.com/z7zmey/php-parser/php7" ) @@ -381,1109 +381,6431 @@ func TestPhp7(t *testing.T) { [1=>&$a, 2=>list($b)]; ` - expectedParams := []node.Node{ - &node.Parameter{ - ByRef: false, - Variadic: false, - VariableType: &node.Nullable{Expr: &name.Name{Parts: []node.Node{&name.NamePart{Value: "bar"}}}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, - DefaultValue: &expr.ConstFetch{Constant: &name.Name{Parts: []node.Node{&name.NamePart{Value: "null"}}}}, - }, - &node.Parameter{ - ByRef: true, - Variadic: true, - VariableType: &name.Name{Parts: []node.Node{&name.NamePart{Value: "baz"}}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "baz"}}, - }, - } - expected := &node.Root{ + Position: &position.Position{ + StartLine: 2, + EndLine: 347, + StartPos: 6, + EndPos: 6318, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 6, + EndPos: 20, + }, Expr: &expr.FunctionCall{ - Function: &name.Name{Parts: []node.Node{&name.NamePart{Value: "foo"}}}, - ArgumentList: &node.ArgumentList{ - Arguments: []node.Node{ - &node.Argument{Variadic: false, Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, - &node.Argument{Variadic: true, Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 6, + EndPos: 19, }, - }, - }, - &stmt.Expression{ - Expr: &expr.FunctionCall{ - Function: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - ArgumentList: &node.ArgumentList{ - Arguments: []node.Node{ - &node.Argument{Variadic: false, Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, - &node.Argument{Variadic: true, Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + Function: &name.Name{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 6, + EndPos: 8, }, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.MethodCall{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Method: &node.Identifier{Value: "bar"}, - ArgumentList: &node.ArgumentList{ - Arguments: []node.Node{ - &node.Argument{Variadic: false, Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, - &node.Argument{Variadic: true, Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.StaticCall{ - Class: &name.Name{Parts: []node.Node{&name.NamePart{Value: "foo"}}}, - Call: &node.Identifier{Value: "bar"}, - ArgumentList: &node.ArgumentList{ - Arguments: []node.Node{ - &node.Argument{Variadic: false, Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, - &node.Argument{Variadic: true, Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.StaticCall{ - Class: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Call: &node.Identifier{Value: "bar"}, - ArgumentList: &node.ArgumentList{ - Arguments: []node.Node{ - &node.Argument{Variadic: false, Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, - &node.Argument{Variadic: true, Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.New{ - Class: &name.Name{Parts: []node.Node{&name.NamePart{Value: "foo"}}}, - ArgumentList: &node.ArgumentList{ - Arguments: []node.Node{ - &node.Argument{Variadic: false, Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, - &node.Argument{Variadic: true, Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.New{ - Class: &stmt.Class{ - PhpDocComment: "/** anonymous class */", - ArgumentList: &node.ArgumentList{ - Arguments: []node.Node{ - &node.Argument{Variadic: false, Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, - &node.Argument{Variadic: true, Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 6, + EndPos: 8, + }, + Value: "foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 9, + EndPos: 19, + }, + Arguments: []node.Node{ + &node.Argument{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 10, + EndPos: 11, + }, + Variadic: false, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 10, + EndPos: 11, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 10, + EndPos: 11, + }, + Value: "a", + }, + }, + }, + &node.Argument{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 14, + EndPos: 18, + }, + IsReference: false, + Variadic: true, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 17, + EndPos: 18, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 17, + EndPos: 18, + }, + Value: "b", + }, + }, }, }, - Stmts: []node.Node{}, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 24, + EndPos: 39, + }, + Expr: &expr.FunctionCall{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 24, + EndPos: 38, + }, + Function: &expr.Variable{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 24, + EndPos: 27, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 24, + EndPos: 27, + }, + Value: "foo", + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 28, + EndPos: 38, + }, + Arguments: []node.Node{ + &node.Argument{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 29, + EndPos: 30, + }, + Variadic: false, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 29, + EndPos: 30, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 29, + EndPos: 30, + }, + Value: "a", + }, + }, + }, + &node.Argument{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 33, + EndPos: 37, + }, + Variadic: true, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 36, + EndPos: 37, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 36, + EndPos: 37, + }, + Value: "b", + }, + }, + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 43, + EndPos: 63, + }, + Expr: &expr.MethodCall{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 43, + EndPos: 62, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 43, + EndPos: 46, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 43, + EndPos: 46, + }, + Value: "foo", + }, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 49, + EndPos: 51, + }, + Value: "bar", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 52, + EndPos: 62, + }, + Arguments: []node.Node{ + &node.Argument{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 53, + EndPos: 54, + }, + Variadic: false, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 53, + EndPos: 54, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 53, + EndPos: 54, + }, + Value: "a", + }, + }, + }, + &node.Argument{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 57, + EndPos: 61, + }, + Variadic: true, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 60, + EndPos: 61, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 60, + EndPos: 61, + }, + Value: "b", + }, + }, + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 67, + EndPos: 86, + }, + Expr: &expr.StaticCall{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 67, + EndPos: 85, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 67, + EndPos: 69, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 67, + EndPos: 69, + }, + Value: "foo", + }, + }, + }, + Call: &node.Identifier{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 72, + EndPos: 74, + }, + Value: "bar", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 75, + EndPos: 85, + }, + Arguments: []node.Node{ + &node.Argument{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 76, + EndPos: 77, + }, + Variadic: false, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 76, + EndPos: 77, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 76, + EndPos: 77, + }, + Value: "a", + }, + }, + }, + &node.Argument{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 80, + EndPos: 84, + }, + Variadic: true, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 83, + EndPos: 84, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 83, + EndPos: 84, + }, + Value: "b", + }, + }, + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 90, + EndPos: 110, + }, + Expr: &expr.StaticCall{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 90, + EndPos: 109, + }, + Class: &expr.Variable{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 90, + EndPos: 93, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 90, + EndPos: 93, + }, + Value: "foo", + }, + }, + Call: &node.Identifier{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 96, + EndPos: 98, + }, + Value: "bar", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 99, + EndPos: 109, + }, + Arguments: []node.Node{ + &node.Argument{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 100, + EndPos: 101, + }, + IsReference: false, + Variadic: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 100, + EndPos: 101, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 100, + EndPos: 101, + }, + Value: "a", + }, + }, + }, + &node.Argument{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 104, + EndPos: 108, + }, + Variadic: true, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 107, + EndPos: 108, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 107, + EndPos: 108, + }, + Value: "b", + }, + }, + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 114, + EndPos: 132, + }, Expr: &expr.New{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 114, + EndPos: 131, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 118, + EndPos: 120, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 118, + EndPos: 120, + }, + Value: "foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 121, + EndPos: 131, + }, + Arguments: []node.Node{ + &node.Argument{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 122, + EndPos: 123, + }, + Variadic: false, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 122, + EndPos: 123, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 122, + EndPos: 123, + }, + Value: "a", + }, + }, + }, + &node.Argument{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 126, + EndPos: 130, + }, + Variadic: true, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 129, + EndPos: 130, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 129, + EndPos: 130, + }, + Value: "b", + }, + }, + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 161, + EndPos: 185, + }, + Expr: &expr.New{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 161, + EndPos: 184, + }, Class: &stmt.Class{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 165, + EndPos: 184, + }, + PhpDocComment: "/** anonymous class */", + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 171, + EndPos: 181, + }, + Arguments: []node.Node{ + &node.Argument{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 172, + EndPos: 173, + }, + Variadic: false, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 172, + EndPos: 173, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 172, + EndPos: 173, + }, + Value: "a", + }, + }, + }, + &node.Argument{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 176, + EndPos: 180, + }, + Variadic: true, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 179, + EndPos: 180, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 179, + EndPos: 180, + }, + Value: "b", + }, + }, + }, + }, + }, + Stmts: []node.Node{ + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 189, + EndPos: 201, + }, + Expr: &expr.New{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 189, + EndPos: 200, + }, + Class: &stmt.Class{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 193, + EndPos: 200, + }, PhpDocComment: "", - Stmts: []node.Node{}, + Stmts: []node.Node{ + }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 205, + EndPos: 213, + }, Expr: &expr.New{ - Class: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 205, + EndPos: 212, + }, + Class: &expr.Variable{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 209, + EndPos: 212, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 209, + EndPos: 212, + }, + Value: "foo", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 217, + EndPos: 228, + }, Expr: &expr.New{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 217, + EndPos: 227, + }, Class: &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Dim: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 221, + EndPos: 227, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 221, + EndPos: 224, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 221, + EndPos: 224, + }, + Value: "foo", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 226, + EndPos: 226, + }, + Value: "1", + }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 13, + EndLine: 13, + StartPos: 232, + EndPos: 246, + }, Expr: &expr.New{ + Position: &position.Position{ + StartLine: 13, + EndLine: 13, + StartPos: 232, + EndPos: 245, + }, Class: &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Dim: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, + Position: &position.Position{ + StartLine: 13, + EndLine: 13, + StartPos: 236, + EndPos: 245, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 13, + EndLine: 13, + StartPos: 236, + EndPos: 239, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 13, + EndLine: 13, + StartPos: 236, + EndPos: 239, + }, + Value: "foo", + }, + }, + Dim: &expr.Variable{ + Position: &position.Position{ + StartLine: 13, + EndLine: 13, + StartPos: 241, + EndPos: 244, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 13, + EndLine: 13, + StartPos: 241, + EndPos: 244, + }, + Value: "bar", + }, + }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 14, + EndLine: 14, + StartPos: 250, + EndPos: 263, + }, Expr: &expr.New{ + Position: &position.Position{ + StartLine: 14, + EndLine: 14, + StartPos: 250, + EndPos: 262, + }, Class: &expr.PropertyFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Property: &node.Identifier{Value: "bar"}, + Position: &position.Position{ + StartLine: 14, + EndLine: 14, + StartPos: 254, + EndPos: 262, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 14, + EndLine: 14, + StartPos: 254, + EndPos: 257, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 14, + EndLine: 14, + StartPos: 254, + EndPos: 257, + }, + Value: "foo", + }, + }, + Property: &node.Identifier{ + Position: &position.Position{ + StartLine: 14, + EndLine: 14, + StartPos: 260, + EndPos: 262, + }, + Value: "bar", + }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 15, + EndLine: 15, + StartPos: 267, + EndPos: 281, + }, Expr: &expr.New{ + Position: &position.Position{ + StartLine: 15, + EndLine: 15, + StartPos: 267, + EndPos: 280, + }, Class: &expr.StaticPropertyFetch{ - Class: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Property: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, + Position: &position.Position{ + StartLine: 15, + EndLine: 15, + StartPos: 271, + EndPos: 280, + }, + Class: &expr.Variable{ + Position: &position.Position{ + StartLine: 15, + EndLine: 15, + StartPos: 271, + EndPos: 274, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 15, + EndLine: 15, + StartPos: 271, + EndPos: 274, + }, + Value: "foo", + }, + }, + Property: &expr.Variable{ + Position: &position.Position{ + StartLine: 15, + EndLine: 15, + StartPos: 277, + EndPos: 280, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 15, + EndLine: 15, + StartPos: 277, + EndPos: 280, + }, + Value: "bar", + }, + }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 16, + EndLine: 16, + StartPos: 285, + EndPos: 301, + }, Expr: &expr.New{ + Position: &position.Position{ + StartLine: 16, + EndLine: 16, + StartPos: 285, + EndPos: 300, + }, Class: &expr.StaticPropertyFetch{ - Class: &node.Identifier{Value: "static"}, - Property: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, + Position: &position.Position{ + StartLine: 16, + EndLine: 16, + StartPos: 289, + EndPos: 300, + }, + Class: &node.Identifier{ + Position: &position.Position{ + StartLine: 16, + EndLine: 16, + StartPos: 289, + EndPos: 294, + }, + Value: "static", + }, + Property: &expr.Variable{ + Position: &position.Position{ + StartLine: 16, + EndLine: 16, + StartPos: 297, + EndPos: 300, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 16, + EndLine: 16, + StartPos: 297, + EndPos: 300, + }, + Value: "bar", + }, + }, }, }, }, &stmt.Function{ - ReturnsRef: false, + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 306, + EndPos: 350, + }, PhpDocComment: "", - FunctionName: &node.Identifier{Value: "foo"}, - Params: expectedParams, - Stmts: []node.Node{}, + ReturnsRef: false, + FunctionName: &node.Identifier{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 315, + EndPos: 317, + }, + Value: "foo", + }, + Params: []node.Node{ + &node.Parameter{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 319, + EndPos: 332, + }, + ByRef: false, + Variadic: false, + VariableType: &node.Nullable{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 319, + EndPos: 322, + }, + Expr: &name.Name{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 320, + EndPos: 322, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 320, + EndPos: 322, + }, + Value: "bar", + }, + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 324, + EndPos: 327, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 324, + EndPos: 327, + }, + Value: "bar", + }, + }, + DefaultValue: &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 329, + EndPos: 332, + }, + Constant: &name.Name{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 329, + EndPos: 332, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 329, + EndPos: 332, + }, + Value: "null", + }, + }, + }, + }, + }, + &node.Parameter{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 335, + EndPos: 346, + }, + ByRef: true, + Variadic: true, + VariableType: &name.Name{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 335, + EndPos: 337, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 335, + EndPos: 337, + }, + Value: "baz", + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 343, + EndPos: 346, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 343, + EndPos: 346, + }, + Value: "baz", + }, + }, + }, + }, + Stmts: []node.Node{ + }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 354, + EndPos: 417, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 360, + EndPos: 362, + }, + Value: "foo", + }, Stmts: []node.Node{ &stmt.ClassMethod{ - MethodName: &node.Identifier{Value: "foo"}, - Modifiers: []node.Node{&node.Identifier{Value: "public"}}, - Params: expectedParams, + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 365, + EndPos: 416, + }, + PhpDocComment: "", + ReturnsRef: false, + MethodName: &node.Identifier{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 381, + EndPos: 383, + }, + Value: "foo", + }, + Modifiers: []node.Node{ + &node.Identifier{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 365, + EndPos: 370, + }, + Value: "public", + }, + }, + Params: []node.Node{ + &node.Parameter{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 385, + EndPos: 398, + }, + ByRef: false, + Variadic: false, + VariableType: &node.Nullable{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 385, + EndPos: 388, + }, + Expr: &name.Name{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 386, + EndPos: 388, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 386, + EndPos: 388, + }, + Value: "bar", + }, + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 390, + EndPos: 393, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 390, + EndPos: 393, + }, + Value: "bar", + }, + }, + DefaultValue: &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 395, + EndPos: 398, + }, + Constant: &name.Name{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 395, + EndPos: 398, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 395, + EndPos: 398, + }, + Value: "null", + }, + }, + }, + }, + }, + &node.Parameter{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 401, + EndPos: 412, + }, + ByRef: true, + Variadic: true, + VariableType: &name.Name{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 401, + EndPos: 403, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 401, + EndPos: 403, + }, + Value: "baz", + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 409, + EndPos: 412, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 409, + EndPos: 412, + }, + Value: "baz", + }, + }, + }, + }, Stmt: &stmt.StmtList{ - Stmts: []node.Node{}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.Closure{ - Params: expectedParams, - Stmts: []node.Node{}, - }, - }, - &stmt.Expression{ - Expr: &expr.Closure{ - Static: true, - Params: expectedParams, - Stmts: []node.Node{}, - }, - }, - &stmt.Expression{ - Expr: &scalar.Lnumber{Value: "1234567890123456789"}, - }, - &stmt.Expression{ - Expr: &scalar.Dnumber{Value: "12345678901234567890"}, - }, - &stmt.Expression{ - Expr: &scalar.Dnumber{Value: "0."}, - }, - &stmt.Expression{ - Expr: &scalar.Lnumber{Value: "0b0111111111111111111111111111111111111111111111111111111111111111"}, - }, - &stmt.Expression{ - Expr: &scalar.Dnumber{Value: "0b1111111111111111111111111111111111111111111111111111111111111111"}, - }, - &stmt.Expression{ - Expr: &scalar.Lnumber{Value: "0x007111111111111111"}, - }, - &stmt.Expression{ - Expr: &scalar.Dnumber{Value: "0x8111111111111111"}, - }, - - &stmt.Expression{ - Expr: &scalar.MagicConstant{Value: "__CLASS__"}, - }, - &stmt.Expression{ - Expr: &scalar.MagicConstant{Value: "__DIR__"}, - }, - &stmt.Expression{ - Expr: &scalar.MagicConstant{Value: "__FILE__"}, - }, - &stmt.Expression{ - Expr: &scalar.MagicConstant{Value: "__FUNCTION__"}, - }, - &stmt.Expression{ - Expr: &scalar.MagicConstant{Value: "__LINE__"}, - }, - &stmt.Expression{ - Expr: &scalar.MagicConstant{Value: "__NAMESPACE__"}, - }, - &stmt.Expression{ - Expr: &scalar.MagicConstant{Value: "__METHOD__"}, - }, - &stmt.Expression{ - Expr: &scalar.MagicConstant{Value: "__TRAIT__"}, - }, - - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - }, - }, - }, - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - Dim: &scalar.Lnumber{Value: "1"}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - Dim: &expr.UnaryMinus{ - Expr: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 415, + EndPos: 416, + }, + Stmts: []node.Node{ }, }, }, }, }, &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - Dim: &scalar.String{Value: "1234567890123456789012345678901234567890"}, + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 421, + EndPos: 462, + }, + Expr: &expr.Closure{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 421, + EndPos: 461, + }, + PhpDocComment: "", + ReturnsRef: false, + Static: false, + Params: []node.Node{ + &node.Parameter{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 430, + EndPos: 443, + }, + ByRef: false, + Variadic: false, + VariableType: &node.Nullable{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 430, + EndPos: 433, + }, + Expr: &name.Name{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 431, + EndPos: 433, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 431, + EndPos: 433, + }, + Value: "bar", + }, + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 435, + EndPos: 438, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 435, + EndPos: 438, + }, + Value: "bar", + }, + }, + DefaultValue: &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 440, + EndPos: 443, + }, + Constant: &name.Name{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 440, + EndPos: 443, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 440, + EndPos: 443, + }, + Value: "null", + }, + }, + }, + }, + }, + &node.Parameter{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 446, + EndPos: 457, + }, + ByRef: true, + Variadic: true, + VariableType: &name.Name{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 446, + EndPos: 448, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 446, + EndPos: 448, + }, + Value: "baz", + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 454, + EndPos: 457, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 454, + EndPos: 457, + }, + Value: "baz", + }, + }, }, }, - }, - }, - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - Dim: &scalar.String{Value: "-1234567890123456789012345678901234567890"}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - Dim: &scalar.String{Value: "bar"}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - Dim: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - &scalar.EncapsedStringPart{Value: " "}, - &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, - }, - }, - }, - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.PropertyFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Property: &node.Identifier{Value: "bar"}, - }, - &scalar.EncapsedStringPart{Value: "()"}, - }, - }, - }, - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - }, - }, - }, - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Dim: &scalar.Lnumber{Value: "0"}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.Variable{VarName: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}}, - }, - }, - }, - &stmt.Expression{ - Expr: &scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "test "}, - &expr.MethodCall{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Method: &node.Identifier{Value: "bar"}, - - ArgumentList: &node.ArgumentList{}, - }, - }, - }, - }, - - &stmt.AltIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - &stmt.AltIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - ElseIf: []node.Node{ - &stmt.AltElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - }, - }, - &stmt.AltIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - Else: &stmt.AltElse{ - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - }, - &stmt.AltIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - ElseIf: []node.Node{ - &stmt.AltElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - &stmt.AltElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - }, - Else: &stmt.AltElse{ - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - }, - &stmt.While{ - Cond: &scalar.Lnumber{Value: "1"}, - Stmt: &stmt.StmtList{ Stmts: []node.Node{ - &stmt.Break{}, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 466, + EndPos: 514, + }, + Expr: &expr.Closure{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 466, + EndPos: 513, + }, + PhpDocComment: "", + ReturnsRef: false, + Static: true, + Params: []node.Node{ + &node.Parameter{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 482, + EndPos: 495, + }, + ByRef: false, + Variadic: false, + VariableType: &node.Nullable{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 482, + EndPos: 485, + }, + Expr: &name.Name{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 483, + EndPos: 485, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 483, + EndPos: 485, + }, + Value: "bar", + }, + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 487, + EndPos: 490, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 487, + EndPos: 490, + }, + Value: "bar", + }, + }, + DefaultValue: &expr.ConstFetch{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 492, + EndPos: 495, + }, + Constant: &name.Name{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 492, + EndPos: 495, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 492, + EndPos: 495, + }, + Value: "null", + }, + }, + }, + }, + }, + &node.Parameter{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 498, + EndPos: 509, + }, + ByRef: true, + Variadic: true, + VariableType: &name.Name{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 498, + EndPos: 500, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 498, + EndPos: 500, + }, + Value: "baz", + }, + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 506, + EndPos: 509, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 506, + EndPos: 509, + }, + Value: "baz", + }, + }, + }, + }, + Stmts: []node.Node{ + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 23, + EndLine: 23, + StartPos: 519, + EndPos: 538, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 23, + EndLine: 23, + StartPos: 519, + EndPos: 537, + }, + Value: "1234567890123456789", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 24, + EndLine: 24, + StartPos: 542, + EndPos: 562, + }, + Expr: &scalar.Dnumber{ + Position: &position.Position{ + StartLine: 24, + EndLine: 24, + StartPos: 542, + EndPos: 561, + }, + Value: "12345678901234567890", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 25, + EndLine: 25, + StartPos: 566, + EndPos: 568, + }, + Expr: &scalar.Dnumber{ + Position: &position.Position{ + StartLine: 25, + EndLine: 25, + StartPos: 566, + EndPos: 567, + }, + Value: "0.", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 26, + EndLine: 26, + StartPos: 572, + EndPos: 638, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 26, + EndLine: 26, + StartPos: 572, + EndPos: 637, + }, + Value: "0b0111111111111111111111111111111111111111111111111111111111111111", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 27, + EndLine: 27, + StartPos: 642, + EndPos: 708, + }, + Expr: &scalar.Dnumber{ + Position: &position.Position{ + StartLine: 27, + EndLine: 27, + StartPos: 642, + EndPos: 707, + }, + Value: "0b1111111111111111111111111111111111111111111111111111111111111111", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 28, + EndLine: 28, + StartPos: 712, + EndPos: 732, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 28, + EndLine: 28, + StartPos: 712, + EndPos: 731, + }, + Value: "0x007111111111111111", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 29, + EndLine: 29, + StartPos: 736, + EndPos: 754, + }, + Expr: &scalar.Dnumber{ + Position: &position.Position{ + StartLine: 29, + EndLine: 29, + StartPos: 736, + EndPos: 753, + }, + Value: "0x8111111111111111", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 30, + EndLine: 30, + StartPos: 758, + EndPos: 767, + }, + Expr: &scalar.MagicConstant{ + Position: &position.Position{ + StartLine: 30, + EndLine: 30, + StartPos: 758, + EndPos: 766, + }, + Value: "__CLASS__", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 31, + EndLine: 31, + StartPos: 771, + EndPos: 778, + }, + Expr: &scalar.MagicConstant{ + Position: &position.Position{ + StartLine: 31, + EndLine: 31, + StartPos: 771, + EndPos: 777, + }, + Value: "__DIR__", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 32, + EndLine: 32, + StartPos: 782, + EndPos: 790, + }, + Expr: &scalar.MagicConstant{ + Position: &position.Position{ + StartLine: 32, + EndLine: 32, + StartPos: 782, + EndPos: 789, + }, + Value: "__FILE__", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 33, + EndLine: 33, + StartPos: 794, + EndPos: 806, + }, + Expr: &scalar.MagicConstant{ + Position: &position.Position{ + StartLine: 33, + EndLine: 33, + StartPos: 794, + EndPos: 805, + }, + Value: "__FUNCTION__", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 34, + EndLine: 34, + StartPos: 810, + EndPos: 818, + }, + Expr: &scalar.MagicConstant{ + Position: &position.Position{ + StartLine: 34, + EndLine: 34, + StartPos: 810, + EndPos: 817, + }, + Value: "__LINE__", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 35, + EndLine: 35, + StartPos: 822, + EndPos: 835, + }, + Expr: &scalar.MagicConstant{ + Position: &position.Position{ + StartLine: 35, + EndLine: 35, + StartPos: 822, + EndPos: 834, + }, + Value: "__NAMESPACE__", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 36, + EndLine: 36, + StartPos: 839, + EndPos: 849, + }, + Expr: &scalar.MagicConstant{ + Position: &position.Position{ + StartLine: 36, + EndLine: 36, + StartPos: 839, + EndPos: 848, + }, + Value: "__METHOD__", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 37, + EndLine: 37, + StartPos: 853, + EndPos: 862, + }, + Expr: &scalar.MagicConstant{ + Position: &position.Position{ + StartLine: 37, + EndLine: 37, + StartPos: 853, + EndPos: 861, + }, + Value: "__TRAIT__", + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 867, + EndPos: 878, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 867, + EndPos: 877, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 868, + EndPos: 872, + }, + Value: "test ", + }, + &expr.Variable{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 873, + EndPos: 876, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 873, + EndPos: 876, + }, + Value: "var", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 40, + EndLine: 40, + StartPos: 882, + EndPos: 896, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 40, + EndLine: 40, + StartPos: 882, + EndPos: 895, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 40, + EndLine: 40, + StartPos: 883, + EndPos: 887, + }, + Value: "test ", + }, + &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 40, + EndLine: 40, + StartPos: 888, + EndPos: 894, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 40, + EndLine: 40, + StartPos: 888, + EndPos: 891, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 40, + EndLine: 40, + StartPos: 888, + EndPos: 891, + }, + Value: "var", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 40, + EndLine: 40, + StartPos: 893, + EndPos: 893, + }, + Value: "1", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 41, + EndLine: 41, + StartPos: 900, + EndPos: 915, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 41, + EndLine: 41, + StartPos: 900, + EndPos: 914, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 41, + EndLine: 41, + StartPos: 901, + EndPos: 905, + }, + Value: "test ", + }, + &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 41, + EndLine: 41, + StartPos: 906, + EndPos: 913, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 41, + EndLine: 41, + StartPos: 906, + EndPos: 909, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 41, + EndLine: 41, + StartPos: 906, + EndPos: 909, + }, + Value: "var", + }, + }, + Dim: &expr.UnaryMinus{ + Position: &position.Position{ + StartLine: 41, + EndLine: 41, + StartPos: 911, + EndPos: 912, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 41, + EndLine: 41, + StartPos: 911, + EndPos: 912, + }, + Value: "1", + }, + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 42, + EndLine: 42, + StartPos: 919, + EndPos: 972, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 42, + EndLine: 42, + StartPos: 919, + EndPos: 971, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 42, + EndLine: 42, + StartPos: 920, + EndPos: 924, + }, + Value: "test ", + }, + &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 42, + EndLine: 42, + StartPos: 925, + EndPos: 970, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 42, + EndLine: 42, + StartPos: 925, + EndPos: 928, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 42, + EndLine: 42, + StartPos: 925, + EndPos: 928, + }, + Value: "var", + }, + }, + Dim: &scalar.String{ + Position: &position.Position{ + StartLine: 42, + EndLine: 42, + StartPos: 930, + EndPos: 969, + }, + Value: "1234567890123456789012345678901234567890", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 43, + EndLine: 43, + StartPos: 976, + EndPos: 1030, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 43, + EndLine: 43, + StartPos: 976, + EndPos: 1029, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 43, + EndLine: 43, + StartPos: 977, + EndPos: 981, + }, + Value: "test ", + }, + &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 43, + EndLine: 43, + StartPos: 982, + EndPos: 1028, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 43, + EndLine: 43, + StartPos: 982, + EndPos: 985, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 43, + EndLine: 43, + StartPos: 982, + EndPos: 985, + }, + Value: "var", + }, + }, + Dim: &scalar.String{ + Position: &position.Position{ + StartLine: 43, + EndLine: 43, + StartPos: 987, + EndPos: 1027, + }, + Value: "-1234567890123456789012345678901234567890", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 44, + EndLine: 44, + StartPos: 1034, + EndPos: 1050, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 44, + EndLine: 44, + StartPos: 1034, + EndPos: 1049, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 44, + EndLine: 44, + StartPos: 1035, + EndPos: 1039, + }, + Value: "test ", + }, + &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 44, + EndLine: 44, + StartPos: 1040, + EndPos: 1048, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 44, + EndLine: 44, + StartPos: 1040, + EndPos: 1043, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 44, + EndLine: 44, + StartPos: 1040, + EndPos: 1043, + }, + Value: "var", + }, + }, + Dim: &scalar.String{ + Position: &position.Position{ + StartLine: 44, + EndLine: 44, + StartPos: 1045, + EndPos: 1047, + }, + Value: "bar", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 45, + EndLine: 45, + StartPos: 1054, + EndPos: 1071, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 45, + EndLine: 45, + StartPos: 1054, + EndPos: 1070, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 45, + EndLine: 45, + StartPos: 1055, + EndPos: 1059, + }, + Value: "test ", + }, + &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 45, + EndLine: 45, + StartPos: 1060, + EndPos: 1069, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 45, + EndLine: 45, + StartPos: 1060, + EndPos: 1063, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 45, + EndLine: 45, + StartPos: 1060, + EndPos: 1063, + }, + Value: "var", + }, + }, + Dim: &expr.Variable{ + Position: &position.Position{ + StartLine: 45, + EndLine: 45, + StartPos: 1065, + EndPos: 1068, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 45, + EndLine: 45, + StartPos: 1065, + EndPos: 1068, + }, + Value: "bar", + }, + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 46, + EndLine: 46, + StartPos: 1075, + EndPos: 1086, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 46, + EndLine: 46, + StartPos: 1075, + EndPos: 1085, + }, + Parts: []node.Node{ + &expr.Variable{ + Position: &position.Position{ + StartLine: 46, + EndLine: 46, + StartPos: 1076, + EndPos: 1079, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 46, + EndLine: 46, + StartPos: 1076, + EndPos: 1079, + }, + Value: "foo", + }, + }, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 46, + EndLine: 46, + StartPos: 1080, + EndPos: 1080, + }, + Value: " ", + }, + &expr.Variable{ + Position: &position.Position{ + StartLine: 46, + EndLine: 46, + StartPos: 1081, + EndPos: 1084, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 46, + EndLine: 46, + StartPos: 1081, + EndPos: 1084, + }, + Value: "bar", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 47, + EndLine: 47, + StartPos: 1090, + EndPos: 1108, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 47, + EndLine: 47, + StartPos: 1090, + EndPos: 1107, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 47, + EndLine: 47, + StartPos: 1091, + EndPos: 1095, + }, + Value: "test ", + }, + &expr.PropertyFetch{ + Position: &position.Position{ + StartLine: 47, + EndLine: 47, + StartPos: 1096, + EndPos: 1104, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 47, + EndLine: 47, + StartPos: 1096, + EndPos: 1099, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 47, + EndLine: 47, + StartPos: 1096, + EndPos: 1099, + }, + Value: "foo", + }, + }, + Property: &node.Identifier{ + Position: &position.Position{ + StartLine: 47, + EndLine: 47, + StartPos: 1102, + EndPos: 1104, + }, + Value: "bar", + }, + }, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 47, + EndLine: 47, + StartPos: 1105, + EndPos: 1106, + }, + Value: "()", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 48, + EndLine: 48, + StartPos: 1112, + EndPos: 1125, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 48, + EndLine: 48, + StartPos: 1112, + EndPos: 1124, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 48, + EndLine: 48, + StartPos: 1113, + EndPos: 1117, + }, + Value: "test ", + }, + &expr.Variable{ + Position: &position.Position{ + StartLine: 48, + EndLine: 48, + StartPos: 1118, + EndPos: 1123, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 48, + EndLine: 48, + StartPos: 1120, + EndPos: 1122, + }, + Value: "foo", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 49, + EndLine: 49, + StartPos: 1129, + EndPos: 1145, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 49, + EndLine: 49, + StartPos: 1129, + EndPos: 1144, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 49, + EndLine: 49, + StartPos: 1130, + EndPos: 1134, + }, + Value: "test ", + }, + &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 49, + EndLine: 49, + StartPos: 1135, + EndPos: 1143, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 49, + EndLine: 49, + StartPos: 1137, + EndPos: 1139, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 49, + EndLine: 49, + StartPos: 1137, + EndPos: 1139, + }, + Value: "foo", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 49, + EndLine: 49, + StartPos: 1141, + EndPos: 1141, + }, + Value: "0", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 50, + EndLine: 50, + StartPos: 1149, + EndPos: 1163, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 50, + EndLine: 50, + StartPos: 1149, + EndPos: 1162, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 50, + EndLine: 50, + StartPos: 1150, + EndPos: 1154, + }, + Value: "test ", + }, + &expr.Variable{ + Position: &position.Position{ + StartLine: 50, + EndLine: 50, + StartPos: 1155, + EndPos: 1161, + }, + VarName: &expr.Variable{ + Position: &position.Position{ + StartLine: 50, + EndLine: 50, + StartPos: 1157, + EndPos: 1160, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 50, + EndLine: 50, + StartPos: 1157, + EndPos: 1160, + }, + Value: "foo", + }, + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 51, + EndLine: 51, + StartPos: 1167, + EndPos: 1187, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 51, + EndLine: 51, + StartPos: 1167, + EndPos: 1186, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 51, + EndLine: 51, + StartPos: 1168, + EndPos: 1172, + }, + Value: "test ", + }, + &expr.MethodCall{ + Position: &position.Position{ + StartLine: 51, + EndLine: 51, + StartPos: 1174, + EndPos: 1184, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 51, + EndLine: 51, + StartPos: 1174, + EndPos: 1177, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 51, + EndLine: 51, + StartPos: 1174, + EndPos: 1177, + }, + Value: "foo", + }, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 51, + EndLine: 51, + StartPos: 1180, + EndPos: 1182, + }, + Value: "bar", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 51, + EndLine: 51, + StartPos: 1183, + EndPos: 1184, + }, + }, + }, + }, + }, + }, + &stmt.AltIf{ + Position: &position.Position{ + StartLine: 53, + EndLine: 54, + StartPos: 1192, + EndPos: 1209, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 53, + EndLine: 53, + StartPos: 1196, + EndPos: 1197, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 53, + EndLine: 53, + StartPos: 1196, + EndPos: 1197, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ + }, + }, + }, + &stmt.AltIf{ + Position: &position.Position{ + StartLine: 55, + EndLine: 57, + StartPos: 1213, + EndPos: 1245, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 55, + EndLine: 55, + StartPos: 1217, + EndPos: 1218, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 55, + EndLine: 55, + StartPos: 1217, + EndPos: 1218, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ + }, + }, + ElseIf: []node.Node{ + &stmt.AltElseIf{ + Position: &position.Position{ + StartLine: 56, + EndLine: -1, + StartPos: 1225, + EndPos: -1, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 56, + EndLine: 56, + StartPos: 1233, + EndPos: 1234, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 56, + EndLine: 56, + StartPos: 1233, + EndPos: 1234, + }, + Value: "b", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ + }, + }, + }, + }, + }, + &stmt.AltIf{ + Position: &position.Position{ + StartLine: 58, + EndLine: 60, + StartPos: 1249, + EndPos: 1274, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 58, + EndLine: 58, + StartPos: 1253, + EndPos: 1254, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 58, + EndLine: 58, + StartPos: 1253, + EndPos: 1254, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ + }, + }, + Else: &stmt.AltElse{ + Position: &position.Position{ + StartLine: 59, + EndLine: -1, + StartPos: 1261, + EndPos: -1, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ + }, + }, + }, + }, + &stmt.AltIf{ + Position: &position.Position{ + StartLine: 61, + EndLine: 65, + StartPos: 1278, + EndPos: 1333, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 61, + EndLine: 61, + StartPos: 1282, + EndPos: 1283, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 61, + EndLine: 61, + StartPos: 1282, + EndPos: 1283, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ + }, + }, + ElseIf: []node.Node{ + &stmt.AltElseIf{ + Position: &position.Position{ + StartLine: 62, + EndLine: -1, + StartPos: 1290, + EndPos: -1, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 62, + EndLine: 62, + StartPos: 1298, + EndPos: 1299, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 62, + EndLine: 62, + StartPos: 1298, + EndPos: 1299, + }, + Value: "b", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ + }, + }, + }, + &stmt.AltElseIf{ + Position: &position.Position{ + StartLine: 63, + EndLine: -1, + StartPos: 1305, + EndPos: -1, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 63, + EndLine: 63, + StartPos: 1313, + EndPos: 1314, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 63, + EndLine: 63, + StartPos: 1313, + EndPos: 1314, + }, + Value: "c", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ + }, + }, + }, + }, + Else: &stmt.AltElse{ + Position: &position.Position{ + StartLine: 64, + EndLine: -1, + StartPos: 1320, + EndPos: -1, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ + }, }, }, }, &stmt.While{ - Cond: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 67, + EndLine: 67, + StartPos: 1338, + EndPos: 1357, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 67, + EndLine: 67, + StartPos: 1345, + EndPos: 1345, + }, + Value: "1", + }, Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 67, + EndLine: 67, + StartPos: 1348, + EndPos: 1357, + }, Stmts: []node.Node{ &stmt.Break{ - Expr: &scalar.Lnumber{Value: "2"}, + Position: &position.Position{ + StartLine: 67, + EndLine: 67, + StartPos: 1350, + EndPos: 1355, + }, + }, + }, + }, + }, + &stmt.While{ + Position: &position.Position{ + StartLine: 68, + EndLine: 68, + StartPos: 1361, + EndPos: 1382, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 68, + EndLine: 68, + StartPos: 1368, + EndPos: 1368, + }, + Value: "1", + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 68, + EndLine: 68, + StartPos: 1371, + EndPos: 1382, + }, + Stmts: []node.Node{ + &stmt.Break{ + Position: &position.Position{ + StartLine: 68, + EndLine: 68, + StartPos: 1373, + EndPos: 1380, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 68, + EndLine: 68, + StartPos: 1379, + EndPos: 1379, + }, + Value: "2", + }, }, }, }, }, &stmt.AltWhile{ - Cond: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 69, + EndLine: 69, + StartPos: 1386, + EndPos: 1416, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 69, + EndLine: 69, + StartPos: 1393, + EndPos: 1393, + }, + Value: "1", + }, Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 69, + EndLine: 69, + StartPos: 1398, + EndPos: 1406, + }, Stmts: []node.Node{ &stmt.Break{ - Expr: &scalar.Lnumber{Value: "3"}, + Position: &position.Position{ + StartLine: 69, + EndLine: 69, + StartPos: 1398, + EndPos: 1406, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 69, + EndLine: 69, + StartPos: 1404, + EndPos: 1404, + }, + Value: "3", + }, }, }, }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1420, + EndPos: 1462, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1426, + EndPos: 1428, + }, + Value: "foo", + }, Stmts: []node.Node{ &stmt.ClassConstList{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1431, + EndPos: 1460, + }, Modifiers: []node.Node{ - &node.Identifier{Value: "public"}, + &node.Identifier{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1431, + EndPos: 1436, + }, + Value: "public", + }, }, Consts: []node.Node{ &stmt.Constant{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1444, + EndPos: 1450, + }, PhpDocComment: "", - ConstantName: &node.Identifier{Value: "FOO"}, - Expr: &scalar.Lnumber{Value: "1"}, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1444, + EndPos: 1446, + }, + Value: "FOO", + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1450, + EndPos: 1450, + }, + Value: "1", + }, }, &stmt.Constant{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1453, + EndPos: 1459, + }, PhpDocComment: "", - ConstantName: &node.Identifier{Value: "BAR"}, - Expr: &scalar.Lnumber{Value: "2"}, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1453, + EndPos: 1455, + }, + Value: "BAR", + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1459, + EndPos: 1459, + }, + Value: "2", + }, }, }, }, }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1466, + EndPos: 1501, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1472, + EndPos: 1474, + }, + Value: "foo", + }, Stmts: []node.Node{ &stmt.ClassConstList{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1477, + EndPos: 1499, + }, Consts: []node.Node{ &stmt.Constant{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1483, + EndPos: 1489, + }, PhpDocComment: "", - ConstantName: &node.Identifier{Value: "FOO"}, - Expr: &scalar.Lnumber{Value: "1"}, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1483, + EndPos: 1485, + }, + Value: "FOO", + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1489, + EndPos: 1489, + }, + Value: "1", + }, }, &stmt.Constant{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1492, + EndPos: 1498, + }, PhpDocComment: "", - ConstantName: &node.Identifier{Value: "BAR"}, - Expr: &scalar.Lnumber{Value: "2"}, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1492, + EndPos: 1494, + }, + Value: "BAR", + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1498, + EndPos: 1498, + }, + Value: "2", + }, }, }, }, }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1505, + EndPos: 1534, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1511, + EndPos: 1513, + }, + Value: "foo", + }, Stmts: []node.Node{ &stmt.ClassMethod{ + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1516, + EndPos: 1532, + }, + ReturnsRef: false, PhpDocComment: "", - MethodName: &node.Identifier{Value: "bar"}, + MethodName: &node.Identifier{ + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1525, + EndPos: 1527, + }, + Value: "bar", + }, Stmt: &stmt.StmtList{ - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1531, + EndPos: 1532, + }, + Stmts: []node.Node{ + }, }, }, }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1538, + EndPos: 1582, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1544, + EndPos: 1546, + }, + Value: "foo", + }, Stmts: []node.Node{ &stmt.ClassMethod{ + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1549, + EndPos: 1580, + }, + ReturnsRef: true, PhpDocComment: "", - ReturnsRef: true, - MethodName: &node.Identifier{Value: "bar"}, + MethodName: &node.Identifier{ + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1573, + EndPos: 1575, + }, + Value: "bar", + }, Modifiers: []node.Node{ - &node.Identifier{Value: "public"}, - &node.Identifier{Value: "static"}, + &node.Identifier{ + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1549, + EndPos: 1554, + }, + Value: "public", + }, + &node.Identifier{ + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1556, + EndPos: 1561, + }, + Value: "static", + }, }, Stmt: &stmt.StmtList{ - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1579, + EndPos: 1580, + }, + Stmts: []node.Node{ + }, }, }, }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1586, + EndPos: 1636, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1592, + EndPos: 1594, + }, + Value: "foo", + }, Stmts: []node.Node{ &stmt.ClassMethod{ + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1597, + EndPos: 1634, + }, + ReturnsRef: true, PhpDocComment: "", - ReturnsRef: true, - MethodName: &node.Identifier{Value: "bar"}, + MethodName: &node.Identifier{ + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1621, + EndPos: 1623, + }, + Value: "bar", + }, Modifiers: []node.Node{ - &node.Identifier{Value: "public"}, - &node.Identifier{Value: "static"}, + &node.Identifier{ + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1597, + EndPos: 1602, + }, + Value: "public", + }, + &node.Identifier{ + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1604, + EndPos: 1609, + }, + Value: "static", + }, }, ReturnType: &name.Name{ + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1628, + EndPos: 1631, + }, Parts: []node.Node{ - &name.NamePart{Value: "void"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1628, + EndPos: 1631, + }, + Value: "void", + }, }, }, Stmt: &stmt.StmtList{ - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1633, + EndPos: 1634, + }, + Stmts: []node.Node{ + }, }, }, }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, - Modifiers: []node.Node{ - &node.Identifier{Value: "abstract"}, + Position: &position.Position{ + StartLine: 75, + EndLine: 75, + StartPos: 1640, + EndPos: 1660, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 75, + EndLine: 75, + StartPos: 1655, + EndPos: 1657, + }, + Value: "foo", + }, + Modifiers: []node.Node{ + &node.Identifier{ + Position: &position.Position{ + StartLine: 75, + EndLine: 75, + StartPos: 1640, + EndPos: 1647, + }, + Value: "abstract", + }, + }, + Stmts: []node.Node{ }, - Stmts: []node.Node{}, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 76, + EndLine: 76, + StartPos: 1664, + EndPos: 1694, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 76, + EndLine: 76, + StartPos: 1676, + EndPos: 1678, + }, + Value: "foo", + }, Modifiers: []node.Node{ - &node.Identifier{Value: "final"}, + &node.Identifier{ + Position: &position.Position{ + StartLine: 76, + EndLine: 76, + StartPos: 1664, + EndPos: 1668, + }, + Value: "final", + }, }, Extends: &stmt.ClassExtends{ + Position: &position.Position{ + StartLine: 76, + EndLine: 76, + StartPos: 1680, + EndPos: 1690, + }, ClassName: &name.Name{ + Position: &position.Position{ + StartLine: 76, + EndLine: 76, + StartPos: 1688, + EndPos: 1690, + }, Parts: []node.Node{ - &name.NamePart{Value: "bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 76, + EndLine: 76, + StartPos: 1688, + EndPos: 1690, + }, + Value: "bar", + }, }, }, }, - Stmts: []node.Node{}, + Stmts: []node.Node{ + }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1698, + EndPos: 1731, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1710, + EndPos: 1712, + }, + Value: "foo", + }, Modifiers: []node.Node{ - &node.Identifier{Value: "final"}, + &node.Identifier{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1698, + EndPos: 1702, + }, + Value: "final", + }, }, Implements: &stmt.ClassImplements{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1714, + EndPos: 1727, + }, InterfaceNames: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1725, + EndPos: 1727, + }, Parts: []node.Node{ - &name.NamePart{Value: "bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1725, + EndPos: 1727, + }, + Value: "bar", + }, }, }, }, }, - Stmts: []node.Node{}, + Stmts: []node.Node{ + }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1735, + EndPos: 1773, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1747, + EndPos: 1749, + }, + Value: "foo", + }, Modifiers: []node.Node{ - &node.Identifier{Value: "final"}, + &node.Identifier{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1735, + EndPos: 1739, + }, + Value: "final", + }, }, Implements: &stmt.ClassImplements{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1751, + EndPos: 1769, + }, InterfaceNames: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1762, + EndPos: 1764, + }, Parts: []node.Node{ - &name.NamePart{Value: "bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1762, + EndPos: 1764, + }, + Value: "bar", + }, }, }, &name.Name{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1767, + EndPos: 1769, + }, Parts: []node.Node{ - &name.NamePart{Value: "baz"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1767, + EndPos: 1769, + }, + Value: "baz", + }, }, }, }, }, - Stmts: []node.Node{}, + Stmts: []node.Node{ + }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1777, + EndPos: 1824, + }, Expr: &expr.New{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1777, + EndPos: 1823, + }, Class: &stmt.Class{ - - ArgumentList: &node.ArgumentList{}, + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1781, + EndPos: 1823, + }, + PhpDocComment: "", + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1786, + EndPos: 1787, + }, + }, Extends: &stmt.ClassExtends{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1789, + EndPos: 1799, + }, ClassName: &name.Name{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1797, + EndPos: 1799, + }, Parts: []node.Node{ - &name.NamePart{Value: "foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1797, + EndPos: 1799, + }, + Value: "foo", + }, }, }, }, Implements: &stmt.ClassImplements{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1801, + EndPos: 1819, + }, InterfaceNames: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1812, + EndPos: 1814, + }, Parts: []node.Node{ - &name.NamePart{Value: "bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1812, + EndPos: 1814, + }, + Value: "bar", + }, }, }, &name.Name{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1817, + EndPos: 1819, + }, Parts: []node.Node{ - &name.NamePart{Value: "baz"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1817, + EndPos: 1819, + }, + Value: "baz", + }, }, }, }, }, - Stmts: []node.Node{}, + Stmts: []node.Node{ + }, }, }, }, &stmt.ConstList{ + Position: &position.Position{ + StartLine: 81, + EndLine: 81, + StartPos: 1829, + EndPos: 1851, + }, Consts: []node.Node{ &stmt.Constant{ + Position: &position.Position{ + StartLine: 81, + EndLine: 81, + StartPos: 1835, + EndPos: 1841, + }, PhpDocComment: "", - ConstantName: &node.Identifier{Value: "FOO"}, - Expr: &scalar.Lnumber{Value: "1"}, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 81, + EndLine: 81, + StartPos: 1835, + EndPos: 1837, + }, + Value: "FOO", + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 81, + EndLine: 81, + StartPos: 1841, + EndPos: 1841, + }, + Value: "1", + }, }, &stmt.Constant{ + Position: &position.Position{ + StartLine: 81, + EndLine: 81, + StartPos: 1844, + EndPos: 1850, + }, PhpDocComment: "", - ConstantName: &node.Identifier{Value: "BAR"}, - Expr: &scalar.Lnumber{Value: "2"}, - }, - }, - }, - &stmt.While{ - Cond: &scalar.Lnumber{Value: "1"}, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Continue{Expr: nil}, - }, - }, - }, - &stmt.While{ - Cond: &scalar.Lnumber{Value: "1"}, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Continue{ - Expr: &scalar.Lnumber{Value: "2"}, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 81, + EndLine: 81, + StartPos: 1844, + EndPos: 1846, + }, + Value: "BAR", + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 81, + EndLine: 81, + StartPos: 1850, + EndPos: 1850, + }, + Value: "2", }, }, }, }, &stmt.While{ - Cond: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 82, + EndLine: 82, + StartPos: 1855, + EndPos: 1877, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 82, + EndLine: 82, + StartPos: 1862, + EndPos: 1862, + }, + Value: "1", + }, Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 82, + EndLine: 82, + StartPos: 1865, + EndPos: 1877, + }, Stmts: []node.Node{ &stmt.Continue{ - Expr: &scalar.Lnumber{Value: "3"}, + Position: &position.Position{ + StartLine: 82, + EndLine: 82, + StartPos: 1867, + EndPos: 1875, + }, + }, + }, + }, + }, + &stmt.While{ + Position: &position.Position{ + StartLine: 83, + EndLine: 83, + StartPos: 1881, + EndPos: 1905, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 83, + EndLine: 83, + StartPos: 1888, + EndPos: 1888, + }, + Value: "1", + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 83, + EndLine: 83, + StartPos: 1891, + EndPos: 1905, + }, + Stmts: []node.Node{ + &stmt.Continue{ + Position: &position.Position{ + StartLine: 83, + EndLine: 83, + StartPos: 1893, + EndPos: 1903, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 83, + EndLine: 83, + StartPos: 1902, + EndPos: 1902, + }, + Value: "2", + }, + }, + }, + }, + }, + &stmt.While{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1909, + EndPos: 1934, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1916, + EndPos: 1916, + }, + Value: "1", + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1919, + EndPos: 1934, + }, + Stmts: []node.Node{ + &stmt.Continue{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1921, + EndPos: 1932, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1930, + EndPos: 1930, + }, + Value: "3", + }, }, }, }, }, &stmt.Declare{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 1938, + EndPos: 1954, + }, Consts: []node.Node{ &stmt.Constant{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 1946, + EndPos: 1952, + }, PhpDocComment: "", - ConstantName: &node.Identifier{Value: "ticks"}, - Expr: &scalar.Lnumber{Value: "1"}, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 1946, + EndPos: 1950, + }, + Value: "ticks", + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 1952, + EndPos: 1952, + }, + Value: "1", + }, }, }, - Stmt: &stmt.Nop{}, - }, - &stmt.Declare{ - Consts: []node.Node{ - &stmt.Constant{ - PhpDocComment: "", - ConstantName: &node.Identifier{Value: "ticks"}, - Expr: &scalar.Lnumber{Value: "1"}, + Stmt: &stmt.Nop{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 1954, + EndPos: 1954, }, }, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{}, - }, }, &stmt.Declare{ + Position: &position.Position{ + StartLine: 86, + EndLine: 86, + StartPos: 1958, + EndPos: 1976, + }, Consts: []node.Node{ &stmt.Constant{ + Position: &position.Position{ + StartLine: 86, + EndLine: 86, + StartPos: 1966, + EndPos: 1972, + }, PhpDocComment: "", - ConstantName: &node.Identifier{Value: "ticks"}, - Expr: &scalar.Lnumber{Value: "1"}, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 86, + EndLine: 86, + StartPos: 1966, + EndPos: 1970, + }, + Value: "ticks", + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 86, + EndLine: 86, + StartPos: 1972, + EndPos: 1972, + }, + Value: "1", + }, }, }, Stmt: &stmt.StmtList{ - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 86, + EndLine: 86, + StartPos: 1975, + EndPos: 1976, + }, + Stmts: []node.Node{ + }, + }, + }, + &stmt.Declare{ + Position: &position.Position{ + StartLine: 87, + EndLine: 87, + StartPos: 1980, + EndPos: 2008, + }, + Consts: []node.Node{ + &stmt.Constant{ + Position: &position.Position{ + StartLine: 87, + EndLine: 87, + StartPos: 1988, + EndPos: 1994, + }, + PhpDocComment: "", + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 87, + EndLine: 87, + StartPos: 1988, + EndPos: 1992, + }, + Value: "ticks", + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 87, + EndLine: 87, + StartPos: 1994, + EndPos: 1994, + }, + Value: "1", + }, + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 87, + EndLine: 87, + StartPos: 1996, + EndPos: 2008, + }, + Stmts: []node.Node{ + }, }, }, &stmt.Do{ + Position: &position.Position{ + StartLine: 88, + EndLine: 88, + StartPos: 2012, + EndPos: 2026, + }, Stmt: &stmt.StmtList{ - Stmts: []node.Node{}, - }, - Cond: &scalar.Lnumber{Value: "1"}, - }, - &stmt.Echo{ - Exprs: []node.Node{ - &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + Position: &position.Position{ + StartLine: 88, + EndLine: 88, + StartPos: 2015, + EndPos: 2016, }, - &scalar.Lnumber{Value: "1"}, + Stmts: []node.Node{ + }, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 88, + EndLine: 88, + StartPos: 2024, + EndPos: 2024, + }, + Value: "1", }, }, &stmt.Echo{ + Position: &position.Position{ + StartLine: 89, + EndLine: 89, + StartPos: 2030, + EndPos: 2040, + }, Exprs: []node.Node{ &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + Position: &position.Position{ + StartLine: 89, + EndLine: 89, + StartPos: 2035, + EndPos: 2036, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 89, + EndLine: 89, + StartPos: 2035, + EndPos: 2036, + }, + Value: "a", + }, + }, + &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 89, + EndLine: 89, + StartPos: 2039, + EndPos: 2039, + }, + Value: "1", + }, + }, + }, + &stmt.Echo{ + Position: &position.Position{ + StartLine: 90, + EndLine: 90, + StartPos: 2044, + EndPos: 2052, + }, + Exprs: []node.Node{ + &expr.Variable{ + Position: &position.Position{ + StartLine: 90, + EndLine: 90, + StartPos: 2049, + EndPos: 2050, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 90, + EndLine: 90, + StartPos: 2049, + EndPos: 2050, + }, + Value: "a", + }, }, }, }, &stmt.For{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2056, + EndPos: 2090, + }, Init: []node.Node{ &assign.Assign{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "i"}}, - Expression: &scalar.Lnumber{Value: "0"}, + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2060, + EndPos: 2065, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2060, + EndPos: 2061, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2060, + EndPos: 2061, + }, + Value: "i", + }, + }, + Expression: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2065, + EndPos: 2065, + }, + Value: "0", + }, }, }, Cond: []node.Node{ &binary.Smaller{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "i"}}, - Right: &scalar.Lnumber{Value: "10"}, + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2068, + EndPos: 2074, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2068, + EndPos: 2069, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2068, + EndPos: 2069, + }, + Value: "i", + }, + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2073, + EndPos: 2074, + }, + Value: "10", + }, }, }, Loop: []node.Node{ &expr.PostInc{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "i"}}, + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2077, + EndPos: 2080, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2077, + EndPos: 2078, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2077, + EndPos: 2078, + }, + Value: "i", + }, + }, }, &expr.PostInc{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "i"}}, + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2083, + EndPos: 2086, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2083, + EndPos: 2084, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2083, + EndPos: 2084, + }, + Value: "i", + }, + }, + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2089, + EndPos: 2090, + }, + Stmts: []node.Node{ }, }, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, }, &stmt.AltFor{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2094, + EndPos: 2129, + }, Cond: []node.Node{ &binary.Smaller{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "i"}}, - Right: &scalar.Lnumber{Value: "10"}, + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2100, + EndPos: 2106, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2100, + EndPos: 2101, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2100, + EndPos: 2101, + }, + Value: "i", + }, + }, + Right: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2105, + EndPos: 2106, + }, + Value: "10", + }, }, }, Loop: []node.Node{ &expr.PostInc{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "i"}}, + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2109, + EndPos: 2112, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2109, + EndPos: 2110, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2109, + EndPos: 2110, + }, + Value: "i", + }, + }, }, &expr.PostInc{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "i"}}, + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2115, + EndPos: 2118, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2115, + EndPos: 2116, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2115, + EndPos: 2116, + }, + Value: "i", + }, + }, + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ }, }, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, }, &stmt.Foreach{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "v"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 93, + EndLine: 93, + StartPos: 2133, + EndPos: 2153, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 93, + EndLine: 93, + StartPos: 2142, + EndPos: 2143, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 93, + EndLine: 93, + StartPos: 2142, + EndPos: 2143, + }, + Value: "a", + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 93, + EndLine: 93, + StartPos: 2148, + EndPos: 2149, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 93, + EndLine: 93, + StartPos: 2148, + EndPos: 2149, + }, + Value: "v", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 93, + EndLine: 93, + StartPos: 2152, + EndPos: 2153, + }, + Stmts: []node.Node{ + }, + }, }, &stmt.AltForeach{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "v"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2157, + EndPos: 2188, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2166, + EndPos: 2167, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2166, + EndPos: 2167, + }, + Value: "a", + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2172, + EndPos: 2173, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2172, + EndPos: 2173, + }, + Value: "v", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + Stmts: []node.Node{ + }, + }, }, &stmt.Foreach{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Key: &expr.Variable{VarName: &node.Identifier{Value: "k"}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "v"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2192, + EndPos: 2218, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2201, + EndPos: 2202, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2201, + EndPos: 2202, + }, + Value: "a", + }, + }, + Key: &expr.Variable{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2207, + EndPos: 2208, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2207, + EndPos: 2208, + }, + Value: "k", + }, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2213, + EndPos: 2214, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2213, + EndPos: 2214, + }, + Value: "v", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2217, + EndPos: 2218, + }, + Stmts: []node.Node{ + }, + }, }, &stmt.Foreach{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Key: &expr.Variable{VarName: &node.Identifier{Value: "k"}}, + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2222, + EndPos: 2249, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2231, + EndPos: 2232, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2231, + EndPos: 2232, + }, + Value: "a", + }, + }, + Key: &expr.Variable{ + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2237, + EndPos: 2238, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2237, + EndPos: 2238, + }, + Value: "k", + }, + }, Variable: &expr.Reference{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "v"}}, + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2243, + EndPos: 2245, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2244, + EndPos: 2245, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2244, + EndPos: 2245, + }, + Value: "v", + }, + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2248, + EndPos: 2249, + }, + Stmts: []node.Node{ + }, }, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, }, &stmt.Foreach{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Key: &expr.Variable{VarName: &node.Identifier{Value: "k"}}, + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2253, + EndPos: 2285, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2262, + EndPos: 2263, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2262, + EndPos: 2263, + }, + Value: "a", + }, + }, + Key: &expr.Variable{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2268, + EndPos: 2269, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2268, + EndPos: 2269, + }, + Value: "k", + }, + }, Variable: &expr.List{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2274, + EndPos: 2281, + }, Items: []node.Node{ &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "v"}}, + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2279, + EndPos: 2280, + }, + Val: &expr.Variable{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2279, + EndPos: 2280, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2279, + EndPos: 2280, + }, + Value: "v", + }, + }, }, }, }, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2284, + EndPos: 2285, + }, + Stmts: []node.Node{ + }, + }, }, &stmt.Foreach{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Key: &expr.Variable{VarName: &node.Identifier{Value: "k"}}, + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2289, + EndPos: 2317, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2298, + EndPos: 2299, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2298, + EndPos: 2299, + }, + Value: "a", + }, + }, + Key: &expr.Variable{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2304, + EndPos: 2305, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2304, + EndPos: 2305, + }, + Value: "k", + }, + }, Variable: &expr.ShortList{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2310, + EndPos: 2313, + }, Items: []node.Node{ &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "v"}}, + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2311, + EndPos: 2312, + }, + Val: &expr.Variable{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2311, + EndPos: 2312, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2311, + EndPos: 2312, + }, + Value: "v", + }, + }, }, }, }, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - }, - &stmt.Function{ - ReturnsRef: false, - PhpDocComment: "", - FunctionName: &node.Identifier{Value: "foo"}, - Stmts: []node.Node{}, - }, - &stmt.Function{ - ReturnsRef: false, - PhpDocComment: "", - FunctionName: &node.Identifier{Value: "foo"}, - Stmts: []node.Node{ - &stmt.Return{}, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2316, + EndPos: 2317, + }, + Stmts: []node.Node{ + }, }, }, &stmt.Function{ - ReturnsRef: true, + Position: &position.Position{ + StartLine: 99, + EndLine: 99, + StartPos: 2321, + EndPos: 2337, + }, + ReturnsRef: false, PhpDocComment: "", - FunctionName: &node.Identifier{Value: "foo"}, + FunctionName: &node.Identifier{ + Position: &position.Position{ + StartLine: 99, + EndLine: 99, + StartPos: 2330, + EndPos: 2332, + }, + Value: "foo", + }, + Stmts: []node.Node{ + }, + }, + &stmt.Function{ + Position: &position.Position{ + StartLine: 100, + EndLine: 100, + StartPos: 2341, + EndPos: 2364, + }, + ReturnsRef: false, + PhpDocComment: "", + FunctionName: &node.Identifier{ + Position: &position.Position{ + StartLine: 100, + EndLine: 100, + StartPos: 2350, + EndPos: 2352, + }, + Value: "foo", + }, Stmts: []node.Node{ &stmt.Return{ - Expr: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 100, + EndLine: 100, + StartPos: 2357, + EndPos: 2363, + }, }, }, }, &stmt.Function{ - ReturnsRef: true, + Position: &position.Position{ + StartLine: 101, + EndLine: 101, + StartPos: 2368, + EndPos: 2394, + }, + ReturnsRef: true, PhpDocComment: "", - FunctionName: &node.Identifier{Value: "foo"}, - ReturnType: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "void"}, + FunctionName: &node.Identifier{ + Position: &position.Position{ + StartLine: 101, + EndLine: 101, + StartPos: 2378, + EndPos: 2380, + }, + Value: "foo", + }, + Stmts: []node.Node{ + &stmt.Return{ + Position: &position.Position{ + StartLine: 101, + EndLine: 101, + StartPos: 2385, + EndPos: 2393, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 101, + EndLine: 101, + StartPos: 2392, + EndPos: 2392, + }, + Value: "1", + }, }, }, - Stmts: []node.Node{}, + }, + &stmt.Function{ + Position: &position.Position{ + StartLine: 102, + EndLine: 102, + StartPos: 2398, + EndPos: 2421, + }, + ReturnsRef: true, + PhpDocComment: "", + FunctionName: &node.Identifier{ + Position: &position.Position{ + StartLine: 102, + EndLine: 102, + StartPos: 2408, + EndPos: 2410, + }, + Value: "foo", + }, + ReturnType: &name.Name{ + Position: &position.Position{ + StartLine: 102, + EndLine: 102, + StartPos: 2415, + EndPos: 2418, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 102, + EndLine: 102, + StartPos: 2415, + EndPos: 2418, + }, + Value: "void", + }, + }, + }, + Stmts: []node.Node{ + }, }, &stmt.Global{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2425, + EndPos: 2438, + }, Vars: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + &expr.Variable{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2432, + EndPos: 2433, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2432, + EndPos: 2433, + }, + Value: "a", + }, + }, + &expr.Variable{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2436, + EndPos: 2437, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2436, + EndPos: 2437, + }, + Value: "b", + }, + }, }, }, &stmt.Label{ - LabelName: &node.Identifier{Value: "a"}, + Position: &position.Position{ + StartLine: 104, + EndLine: 104, + StartPos: 2442, + EndPos: 2443, + }, + LabelName: &node.Identifier{ + Position: &position.Position{ + StartLine: 104, + EndLine: 104, + StartPos: 2442, + EndPos: 2442, + }, + Value: "a", + }, }, &stmt.Goto{ - Label: &node.Identifier{Value: "a"}, + Position: &position.Position{ + StartLine: 105, + EndLine: 105, + StartPos: 2448, + EndPos: 2454, + }, + Label: &node.Identifier{ + Position: &position.Position{ + StartLine: 105, + EndLine: 105, + StartPos: 2453, + EndPos: 2453, + }, + Value: "a", + }, }, - &stmt.HaltCompiler{}, - &stmt.If{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + &stmt.HaltCompiler{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2458, + EndPos: 2475, + }, }, &stmt.If{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - ElseIf: []node.Node{ - &stmt.ElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2479, + EndPos: 2488, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2483, + EndPos: 2484, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2483, + EndPos: 2484, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2487, + EndPos: 2488, + }, + Stmts: []node.Node{ }, }, }, &stmt.If{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - Else: &stmt.Else{ - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2492, + EndPos: 2516, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2496, + EndPos: 2497, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2496, + EndPos: 2497, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2500, + EndPos: 2501, + }, + Stmts: []node.Node{ + }, + }, + ElseIf: []node.Node{ + &stmt.ElseIf{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2503, + EndPos: 2516, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2511, + EndPos: 2512, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2511, + EndPos: 2512, + }, + Value: "b", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2515, + EndPos: 2516, + }, + Stmts: []node.Node{ + }, + }, + }, }, }, &stmt.If{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, - ElseIf: []node.Node{ - &stmt.ElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2520, + EndPos: 2537, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2524, + EndPos: 2525, }, - &stmt.ElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2524, + EndPos: 2525, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2528, + EndPos: 2529, + }, + Stmts: []node.Node{ }, }, Else: &stmt.Else{ - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2531, + EndPos: 2537, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2536, + EndPos: 2537, + }, + Stmts: []node.Node{ + }, + }, }, }, &stmt.If{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2541, + EndPos: 2588, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2545, + EndPos: 2546, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2545, + EndPos: 2546, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2549, + EndPos: 2550, + }, + Stmts: []node.Node{ + }, + }, ElseIf: []node.Node{ &stmt.ElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2552, + EndPos: 2565, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2560, + EndPos: 2561, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2560, + EndPos: 2561, + }, + Value: "b", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2564, + EndPos: 2565, + }, + Stmts: []node.Node{ + }, + }, + }, + &stmt.ElseIf{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2567, + EndPos: 2580, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2575, + EndPos: 2576, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2575, + EndPos: 2576, + }, + Value: "c", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2579, + EndPos: 2580, + }, + Stmts: []node.Node{ + }, + }, }, }, Else: &stmt.Else{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2582, + EndPos: 2588, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2587, + EndPos: 2588, + }, + Stmts: []node.Node{ + }, + }, + }, + }, + &stmt.If{ + Position: &position.Position{ + StartLine: 111, + EndLine: 111, + StartPos: 2592, + EndPos: 2640, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 111, + EndLine: 111, + StartPos: 2596, + EndPos: 2597, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 111, + EndLine: 111, + StartPos: 2596, + EndPos: 2597, + }, + Value: "a", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 111, + EndLine: 111, + StartPos: 2600, + EndPos: 2601, + }, + Stmts: []node.Node{ + }, + }, + ElseIf: []node.Node{ + &stmt.ElseIf{ + Position: &position.Position{ + StartLine: 111, + EndLine: 111, + StartPos: 2603, + EndPos: 2616, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 111, + EndLine: 111, + StartPos: 2611, + EndPos: 2612, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 111, + EndLine: 111, + StartPos: 2611, + EndPos: 2612, + }, + Value: "b", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 111, + EndLine: 111, + StartPos: 2615, + EndPos: 2616, + }, + Stmts: []node.Node{ + }, + }, + }, + }, + Else: &stmt.Else{ + Position: &position.Position{ + StartLine: 111, + EndLine: 111, + StartPos: 2618, + EndPos: 2640, + }, Stmt: &stmt.If{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 111, + EndLine: 111, + StartPos: 2623, + EndPos: 2640, + }, + Cond: &expr.Variable{ + Position: &position.Position{ + StartLine: 111, + EndLine: 111, + StartPos: 2627, + EndPos: 2628, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 111, + EndLine: 111, + StartPos: 2627, + EndPos: 2628, + }, + Value: "c", + }, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 111, + EndLine: 111, + StartPos: 2631, + EndPos: 2632, + }, + Stmts: []node.Node{ + }, + }, Else: &stmt.Else{ - Stmt: &stmt.StmtList{Stmts: []node.Node{}}, + Position: &position.Position{ + StartLine: 111, + EndLine: 111, + StartPos: 2634, + EndPos: 2640, + }, + Stmt: &stmt.StmtList{ + Position: &position.Position{ + StartLine: 111, + EndLine: 111, + StartPos: 2639, + EndPos: 2640, + }, + Stmts: []node.Node{ + }, + }, }, }, }, }, - &stmt.Nop{}, - &stmt.InlineHtml{Value: "
"}, - &stmt.Interface{ - PhpDocComment: "", - InterfaceName: &node.Identifier{Value: "Foo"}, - Stmts: []node.Node{}, + &stmt.Nop{ + Position: &position.Position{ + StartLine: 112, + EndLine: 112, + StartPos: 2644, + EndPos: 2645, + }, + }, + &stmt.InlineHtml{ + Position: &position.Position{ + StartLine: 112, + EndLine: 112, + StartPos: 2647, + EndPos: 2658, + }, + Value: "
", }, &stmt.Interface{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2664, + EndPos: 2679, + }, PhpDocComment: "", - InterfaceName: &node.Identifier{Value: "Foo"}, + InterfaceName: &node.Identifier{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2674, + EndPos: 2676, + }, + Value: "Foo", + }, + Stmts: []node.Node{ + }, + }, + &stmt.Interface{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2683, + EndPos: 2710, + }, + PhpDocComment: "", + InterfaceName: &node.Identifier{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2693, + EndPos: 2695, + }, + Value: "Foo", + }, Extends: &stmt.InterfaceExtends{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2697, + EndPos: 2707, + }, InterfaceNames: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2705, + EndPos: 2707, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2705, + EndPos: 2707, + }, + Value: "Bar", + }, }, }, }, }, - Stmts: []node.Node{}, + Stmts: []node.Node{ + }, }, &stmt.Interface{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2714, + EndPos: 2746, + }, PhpDocComment: "", - InterfaceName: &node.Identifier{Value: "Foo"}, + InterfaceName: &node.Identifier{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2724, + EndPos: 2726, + }, + Value: "Foo", + }, Extends: &stmt.InterfaceExtends{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2728, + EndPos: 2743, + }, InterfaceNames: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2736, + EndPos: 2738, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2736, + EndPos: 2738, + }, + Value: "Bar", + }, }, }, &name.Name{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2741, + EndPos: 2743, + }, Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2741, + EndPos: 2743, + }, + Value: "Baz", + }, }, }, }, }, - Stmts: []node.Node{}, + Stmts: []node.Node{ + }, }, &stmt.Namespace{ + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2750, + EndPos: 2763, + }, NamespaceName: &name.Name{ + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2760, + EndPos: 2762, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2760, + EndPos: 2762, + }, + Value: "Foo", + }, }, }, }, &stmt.Namespace{ + Position: &position.Position{ + StartLine: 117, + EndLine: 117, + StartPos: 2767, + EndPos: 2782, + }, NamespaceName: &name.Name{ + Position: &position.Position{ + StartLine: 117, + EndLine: 117, + StartPos: 2777, + EndPos: 2779, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 117, + EndLine: 117, + StartPos: 2777, + EndPos: 2779, + }, + Value: "Foo", + }, }, }, - Stmts: []node.Node{}, + Stmts: []node.Node{ + }, }, &stmt.Namespace{ - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2786, + EndPos: 2797, + }, + Stmts: []node.Node{ + }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 119, + EndLine: 119, + StartPos: 2801, + EndPos: 2819, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 119, + EndLine: 119, + StartPos: 2807, + EndPos: 2809, + }, + Value: "foo", + }, Stmts: []node.Node{ &stmt.PropertyList{ + Position: &position.Position{ + StartLine: 119, + EndLine: 119, + StartPos: 2812, + EndPos: 2818, + }, Modifiers: []node.Node{ - &node.Identifier{Value: "var"}, + &node.Identifier{ + Position: &position.Position{ + StartLine: 119, + EndLine: 119, + StartPos: 2812, + EndPos: 2814, + }, + Value: "var", + }, }, Properties: []node.Node{ &stmt.Property{ + Position: &position.Position{ + StartLine: 119, + EndLine: 119, + StartPos: 2816, + EndPos: 2817, + }, PhpDocComment: "", - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 119, + EndLine: 119, + StartPos: 2816, + EndPos: 2817, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 119, + EndLine: 119, + StartPos: 2816, + EndPos: 2817, + }, + Value: "a", + }, + }, }, }, }, }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 120, + EndLine: 120, + StartPos: 2823, + EndPos: 2859, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 120, + EndLine: 120, + StartPos: 2829, + EndPos: 2831, + }, + Value: "foo", + }, Stmts: []node.Node{ &stmt.PropertyList{ + Position: &position.Position{ + StartLine: 120, + EndLine: 120, + StartPos: 2834, + EndPos: 2858, + }, Modifiers: []node.Node{ - &node.Identifier{Value: "public"}, - &node.Identifier{Value: "static"}, + &node.Identifier{ + Position: &position.Position{ + StartLine: 120, + EndLine: 120, + StartPos: 2834, + EndPos: 2839, + }, + Value: "public", + }, + &node.Identifier{ + Position: &position.Position{ + StartLine: 120, + EndLine: 120, + StartPos: 2841, + EndPos: 2846, + }, + Value: "static", + }, }, Properties: []node.Node{ &stmt.Property{ + Position: &position.Position{ + StartLine: 120, + EndLine: 120, + StartPos: 2848, + EndPos: 2849, + }, PhpDocComment: "", - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 120, + EndLine: 120, + StartPos: 2848, + EndPos: 2849, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 120, + EndLine: 120, + StartPos: 2848, + EndPos: 2849, + }, + Value: "a", + }, + }, }, &stmt.Property{ + Position: &position.Position{ + StartLine: 120, + EndLine: 120, + StartPos: 2852, + EndPos: 2857, + }, PhpDocComment: "", - Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - Expr: &scalar.Lnumber{Value: "1"}, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 120, + EndLine: 120, + StartPos: 2852, + EndPos: 2853, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 120, + EndLine: 120, + StartPos: 2852, + EndPos: 2853, + }, + Value: "b", + }, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 120, + EndLine: 120, + StartPos: 2857, + EndPos: 2857, + }, + Value: "1", + }, }, }, }, }, }, &stmt.Static{ + Position: &position.Position{ + StartLine: 121, + EndLine: 121, + StartPos: 2863, + EndPos: 2880, + }, Vars: []node.Node{ &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 121, + EndLine: 121, + StartPos: 2870, + EndPos: 2871, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 121, + EndLine: 121, + StartPos: 2870, + EndPos: 2871, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 121, + EndLine: 121, + StartPos: 2870, + EndPos: 2871, + }, + Value: "a", + }, + }, }, &stmt.StaticVar{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - Expr: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 121, + EndLine: 121, + StartPos: 2874, + EndPos: 2879, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 121, + EndLine: 121, + StartPos: 2874, + EndPos: 2875, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 121, + EndLine: 121, + StartPos: 2874, + EndPos: 2875, + }, + Value: "b", + }, + }, + Expr: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 121, + EndLine: 121, + StartPos: 2879, + EndPos: 2879, + }, + Value: "1", + }, }, }, }, &stmt.AltSwitch{ - Cond: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 123, + EndLine: 127, + StartPos: 2885, + EndPos: 2943, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 123, + EndLine: 123, + StartPos: 2893, + EndPos: 2893, + }, + Value: "1", + }, CaseList: &stmt.CaseList{ + Position: &position.Position{ + StartLine: 124, + EndLine: -1, + StartPos: 2901, + EndPos: -1, + }, Cases: []node.Node{ &stmt.Case{ - Cond: &scalar.Lnumber{Value: "1"}, - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 124, + EndLine: -1, + StartPos: 2901, + EndPos: -1, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 124, + EndLine: 124, + StartPos: 2906, + EndPos: 2906, + }, + Value: "1", + }, + Stmts: []node.Node{ + }, }, &stmt.Default{ - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 125, + EndLine: -1, + StartPos: 2912, + EndPos: -1, + }, + Stmts: []node.Node{ + }, }, &stmt.Case{ - Cond: &scalar.Lnumber{Value: "2"}, - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 126, + EndLine: -1, + StartPos: 2924, + EndPos: -1, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 126, + EndLine: 126, + StartPos: 2929, + EndPos: 2929, + }, + Value: "2", + }, + Stmts: []node.Node{ + }, }, }, }, }, &stmt.AltSwitch{ - Cond: &scalar.Lnumber{Value: "1"}, - CaseList: &stmt.CaseList{ - Cases: []node.Node{ - &stmt.Case{ - Cond: &scalar.Lnumber{Value: "1"}, - Stmts: []node.Node{}, - }, - &stmt.Case{ - Cond: &scalar.Lnumber{Value: "2"}, - Stmts: []node.Node{}, - }, - }, + Position: &position.Position{ + StartLine: 129, + EndLine: 132, + StartPos: 2948, + EndPos: 2995, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 129, + EndLine: 129, + StartPos: 2956, + EndPos: 2956, + }, + Value: "1", }, - }, - &stmt.Switch{ - Cond: &scalar.Lnumber{Value: "1"}, CaseList: &stmt.CaseList{ + Position: &position.Position{ + StartLine: 130, + EndLine: -1, + StartPos: 2965, + EndPos: -1, + }, Cases: []node.Node{ &stmt.Case{ - Cond: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 130, + EndLine: -1, + StartPos: 2965, + EndPos: -1, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 130, + EndLine: 130, + StartPos: 2970, + EndPos: 2970, + }, + Value: "1", + }, Stmts: []node.Node{ - &stmt.Break{}, }, }, &stmt.Case{ - Cond: &scalar.Lnumber{Value: "2"}, + Position: &position.Position{ + StartLine: 131, + EndLine: -1, + StartPos: 2976, + EndPos: -1, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 131, + EndLine: 131, + StartPos: 2981, + EndPos: 2981, + }, + Value: "2", + }, Stmts: []node.Node{ - &stmt.Break{}, }, }, }, }, }, &stmt.Switch{ - Cond: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 134, + EndLine: 137, + StartPos: 3002, + EndPos: 3053, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 134, + EndLine: 134, + StartPos: 3010, + EndPos: 3010, + }, + Value: "1", + }, CaseList: &stmt.CaseList{ + Position: &position.Position{ + StartLine: 134, + EndLine: 137, + StartPos: 3013, + EndPos: 3053, + }, Cases: []node.Node{ &stmt.Case{ - Cond: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 135, + EndLine: 135, + StartPos: 3018, + EndPos: 3031, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 135, + EndLine: 135, + StartPos: 3023, + EndPos: 3023, + }, + Value: "1", + }, Stmts: []node.Node{ - &stmt.Break{}, + &stmt.Break{ + Position: &position.Position{ + StartLine: 135, + EndLine: 135, + StartPos: 3026, + EndPos: 3031, + }, + }, }, }, &stmt.Case{ - Cond: &scalar.Lnumber{Value: "2"}, + Position: &position.Position{ + StartLine: 136, + EndLine: 136, + StartPos: 3036, + EndPos: 3049, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 136, + EndLine: 136, + StartPos: 3041, + EndPos: 3041, + }, + Value: "2", + }, Stmts: []node.Node{ - &stmt.Break{}, + &stmt.Break{ + Position: &position.Position{ + StartLine: 136, + EndLine: 136, + StartPos: 3044, + EndPos: 3049, + }, + }, + }, + }, + }, + }, + }, + &stmt.Switch{ + Position: &position.Position{ + StartLine: 139, + EndLine: 142, + StartPos: 3060, + EndPos: 3112, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 139, + EndLine: 139, + StartPos: 3068, + EndPos: 3068, + }, + Value: "1", + }, + CaseList: &stmt.CaseList{ + Position: &position.Position{ + StartLine: 139, + EndLine: 142, + StartPos: 3071, + EndPos: 3112, + }, + Cases: []node.Node{ + &stmt.Case{ + Position: &position.Position{ + StartLine: 140, + EndLine: 140, + StartPos: 3077, + EndPos: 3090, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 140, + EndLine: 140, + StartPos: 3082, + EndPos: 3082, + }, + Value: "1", + }, + Stmts: []node.Node{ + &stmt.Break{ + Position: &position.Position{ + StartLine: 140, + EndLine: 140, + StartPos: 3085, + EndPos: 3090, + }, + }, + }, + }, + &stmt.Case{ + Position: &position.Position{ + StartLine: 141, + EndLine: 141, + StartPos: 3095, + EndPos: 3108, + }, + Cond: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 141, + EndLine: 141, + StartPos: 3100, + EndPos: 3100, + }, + Value: "2", + }, + Stmts: []node.Node{ + &stmt.Break{ + Position: &position.Position{ + StartLine: 141, + EndLine: 141, + StartPos: 3103, + EndPos: 3108, + }, + }, }, }, }, }, }, &stmt.Throw{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "e"}}, + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3117, + EndPos: 3125, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3123, + EndPos: 3124, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3123, + EndPos: 3124, + }, + Value: "e", + }, + }, }, &stmt.Trait{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3130, + EndPos: 3141, + }, PhpDocComment: "", - TraitName: &node.Identifier{Value: "Foo"}, - Stmts: []node.Node{}, + TraitName: &node.Identifier{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3136, + EndPos: 3138, + }, + Value: "Foo", + }, + Stmts: []node.Node{ + }, }, &stmt.Class{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3145, + EndPos: 3166, + }, PhpDocComment: "", - ClassName: &node.Identifier{Value: "Foo"}, + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3151, + EndPos: 3153, + }, + Value: "Foo", + }, Stmts: []node.Node{ &stmt.TraitUse{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3157, + EndPos: 3164, + }, Traits: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3161, + EndPos: 3163, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3161, + EndPos: 3163, + }, + Value: "Bar", + }, }, }, }, @@ -1491,50 +6813,187 @@ func TestPhp7(t *testing.T) { }, }, &stmt.Class{ - PhpDocComment: "", - ClassName: &node.Identifier{Value: "Foo"}, - Stmts: []node.Node{ - &stmt.TraitUse{ - Traits: []node.Node{ - &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, - }, - }, - &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, - }, - }, - }, - TraitAdaptationList: &stmt.TraitAdaptationList{}, - }, + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3170, + EndPos: 3198, }, - }, - &stmt.Class{ PhpDocComment: "", - ClassName: &node.Identifier{Value: "Foo"}, + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3176, + EndPos: 3178, + }, + Value: "Foo", + }, Stmts: []node.Node{ &stmt.TraitUse{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3182, + EndPos: 3196, + }, Traits: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3186, + EndPos: 3188, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3186, + EndPos: 3188, + }, + Value: "Bar", + }, }, }, &name.Name{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3191, + EndPos: 3193, + }, Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3191, + EndPos: 3193, + }, + Value: "Baz", + }, }, }, }, TraitAdaptationList: &stmt.TraitAdaptationList{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3195, + EndPos: 3196, + }, + }, + }, + }, + }, + &stmt.Class{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3202, + EndPos: 3247, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3208, + EndPos: 3210, + }, + Value: "Foo", + }, + Stmts: []node.Node{ + &stmt.TraitUse{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3214, + EndPos: 3245, + }, + Traits: []node.Node{ + &name.Name{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3218, + EndPos: 3220, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3218, + EndPos: 3220, + }, + Value: "Bar", + }, + }, + }, + &name.Name{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3223, + EndPos: 3225, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3223, + EndPos: 3225, + }, + Value: "Baz", + }, + }, + }, + }, + TraitAdaptationList: &stmt.TraitAdaptationList{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3227, + EndPos: 3245, + }, Adaptations: []node.Node{ &stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Method: &node.Identifier{Value: "one"}, + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3229, + EndPos: 3242, + }, + Ref: &stmt.TraitMethodRef{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3229, + EndPos: 3231, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3229, + EndPos: 3231, + }, + Value: "one", + }, + }, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3236, + EndPos: 3242, + }, + Value: "include", }, - Alias: &node.Identifier{Value: "include"}, }, }, }, @@ -1542,29 +7001,111 @@ func TestPhp7(t *testing.T) { }, }, &stmt.Class{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3251, + EndPos: 3295, + }, PhpDocComment: "", - ClassName: &node.Identifier{Value: "Foo"}, + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3257, + EndPos: 3259, + }, + Value: "Foo", + }, Stmts: []node.Node{ &stmt.TraitUse{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3263, + EndPos: 3293, + }, Traits: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3267, + EndPos: 3269, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3267, + EndPos: 3269, + }, + Value: "Bar", + }, }, }, &name.Name{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3272, + EndPos: 3274, + }, Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3272, + EndPos: 3274, + }, + Value: "Baz", + }, }, }, }, TraitAdaptationList: &stmt.TraitAdaptationList{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3276, + EndPos: 3293, + }, Adaptations: []node.Node{ &stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Method: &node.Identifier{Value: "one"}, + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3278, + EndPos: 3290, + }, + Ref: &stmt.TraitMethodRef{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3278, + EndPos: 3280, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3278, + EndPos: 3280, + }, + Value: "one", + }, + }, + Modifier: &node.Identifier{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3285, + EndPos: 3290, + }, + Value: "public", }, - Modifier: &node.Identifier{Value: "public"}, }, }, }, @@ -1572,30 +7113,120 @@ func TestPhp7(t *testing.T) { }, }, &stmt.Class{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3299, + EndPos: 3347, + }, PhpDocComment: "", - ClassName: &node.Identifier{Value: "Foo"}, + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3305, + EndPos: 3307, + }, + Value: "Foo", + }, Stmts: []node.Node{ &stmt.TraitUse{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3311, + EndPos: 3345, + }, Traits: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3315, + EndPos: 3317, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3315, + EndPos: 3317, + }, + Value: "Bar", + }, }, }, &name.Name{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3320, + EndPos: 3322, + }, Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3320, + EndPos: 3322, + }, + Value: "Baz", + }, }, }, }, TraitAdaptationList: &stmt.TraitAdaptationList{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3324, + EndPos: 3345, + }, Adaptations: []node.Node{ &stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Method: &node.Identifier{Value: "one"}, + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3326, + EndPos: 3342, + }, + Ref: &stmt.TraitMethodRef{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3326, + EndPos: 3328, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3326, + EndPos: 3328, + }, + Value: "one", + }, + }, + Modifier: &node.Identifier{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3333, + EndPos: 3338, + }, + Value: "public", + }, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3340, + EndPos: 3342, + }, + Value: "two", }, - Modifier: &node.Identifier{Value: "public"}, - Alias: &node.Identifier{Value: "two"}, }, }, }, @@ -1603,56 +7234,214 @@ func TestPhp7(t *testing.T) { }, }, &stmt.Class{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3351, + EndPos: 3427, + }, PhpDocComment: "", - ClassName: &node.Identifier{Value: "Foo"}, + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3357, + EndPos: 3359, + }, + Value: "Foo", + }, Stmts: []node.Node{ &stmt.TraitUse{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3363, + EndPos: 3425, + }, Traits: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3367, + EndPos: 3369, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3367, + EndPos: 3369, + }, + Value: "Bar", + }, }, }, &name.Name{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3372, + EndPos: 3374, + }, Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3372, + EndPos: 3374, + }, + Value: "Baz", + }, }, }, }, TraitAdaptationList: &stmt.TraitAdaptationList{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3376, + EndPos: 3425, + }, Adaptations: []node.Node{ &stmt.TraitUsePrecedence{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3378, + EndPos: 3405, + }, Ref: &stmt.TraitMethodRef{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3378, + EndPos: 3385, + }, Trait: &name.Name{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3378, + EndPos: 3380, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3378, + EndPos: 3380, + }, + Value: "Bar", + }, }, }, - Method: &node.Identifier{Value: "one"}, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3383, + EndPos: 3385, + }, + Value: "one", + }, }, Insteadof: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3397, + EndPos: 3399, + }, Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3397, + EndPos: 3399, + }, + Value: "Baz", + }, }, }, &name.Name{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3402, + EndPos: 3405, + }, Parts: []node.Node{ - &name.NamePart{Value: "Quux"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3402, + EndPos: 3405, + }, + Value: "Quux", + }, }, }, }, }, &stmt.TraitUseAlias{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3408, + EndPos: 3422, + }, Ref: &stmt.TraitMethodRef{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3408, + EndPos: 3415, + }, Trait: &name.Name{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3408, + EndPos: 3410, + }, Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3408, + EndPos: 3410, + }, + Value: "Baz", + }, }, }, - Method: &node.Identifier{Value: "one"}, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3413, + EndPos: 3415, + }, + Value: "one", + }, + }, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3420, + EndPos: 3422, + }, + Value: "two", }, - Alias: &node.Identifier{Value: "two"}, }, }, }, @@ -1660,1555 +7449,8747 @@ func TestPhp7(t *testing.T) { }, }, &stmt.Try{ - Stmts: []node.Node{}, - Catches: []node.Node{}, + Position: &position.Position{ + StartLine: 154, + EndLine: -1, + StartPos: 3432, + EndPos: -1, + }, + Stmts: []node.Node{ + }, + Catches: []node.Node{ + }, }, &stmt.Try{ - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3441, + EndPos: 3470, + }, + Stmts: []node.Node{ + }, Catches: []node.Node{ &stmt.Catch{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3448, + EndPos: 3470, + }, Types: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3455, + EndPos: 3463, + }, Parts: []node.Node{ - &name.NamePart{Value: "Exception"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3455, + EndPos: 3463, + }, + Value: "Exception", + }, }, }, }, Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "e"}, + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3465, + EndPos: 3466, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3465, + EndPos: 3466, + }, + Value: "e", + }, + }, + Stmts: []node.Node{ }, - Stmts: []node.Node{}, }, }, }, &stmt.Try{ - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3474, + EndPos: 3520, + }, + Stmts: []node.Node{ + }, Catches: []node.Node{ &stmt.Catch{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3481, + EndPos: 3520, + }, Types: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3488, + EndPos: 3496, + }, Parts: []node.Node{ - &name.NamePart{Value: "Exception"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3488, + EndPos: 3496, + }, + Value: "Exception", + }, }, }, &name.Name{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3498, + EndPos: 3513, + }, Parts: []node.Node{ - &name.NamePart{Value: "RuntimeException"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3498, + EndPos: 3513, + }, + Value: "RuntimeException", + }, }, }, }, Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "e"}, + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3515, + EndPos: 3516, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3515, + EndPos: 3516, + }, + Value: "e", + }, + }, + Stmts: []node.Node{ }, - Stmts: []node.Node{}, }, }, }, &stmt.Try{ - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3524, + EndPos: 3584, + }, + Stmts: []node.Node{ + }, Catches: []node.Node{ &stmt.Catch{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3531, + EndPos: 3553, + }, Types: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3538, + EndPos: 3546, + }, Parts: []node.Node{ - &name.NamePart{Value: "Exception"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3538, + EndPos: 3546, + }, + Value: "Exception", + }, }, }, }, Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "e"}, + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3548, + EndPos: 3549, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3548, + EndPos: 3549, + }, + Value: "e", + }, + }, + Stmts: []node.Node{ }, - Stmts: []node.Node{}, }, &stmt.Catch{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3555, + EndPos: 3584, + }, Types: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3562, + EndPos: 3577, + }, Parts: []node.Node{ - &name.NamePart{Value: "RuntimeException"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3562, + EndPos: 3577, + }, + Value: "RuntimeException", + }, }, }, }, Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "e"}, + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3579, + EndPos: 3580, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3579, + EndPos: 3580, + }, + Value: "e", + }, + }, + Stmts: []node.Node{ }, - Stmts: []node.Node{}, }, }, }, &stmt.Try{ - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3588, + EndPos: 3628, + }, + Stmts: []node.Node{ + }, Catches: []node.Node{ &stmt.Catch{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3595, + EndPos: 3617, + }, Types: []node.Node{ &name.Name{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3602, + EndPos: 3610, + }, Parts: []node.Node{ - &name.NamePart{Value: "Exception"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3602, + EndPos: 3610, + }, + Value: "Exception", + }, }, }, }, Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "e"}, + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3612, + EndPos: 3613, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3612, + EndPos: 3613, + }, + Value: "e", + }, + }, + Stmts: []node.Node{ }, - Stmts: []node.Node{}, }, }, Finally: &stmt.Finally{ - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3619, + EndPos: 3628, + }, + Stmts: []node.Node{ + }, }, }, &stmt.Unset{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3633, + EndPos: 3647, + }, Vars: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + &expr.Variable{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3639, + EndPos: 3640, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3639, + EndPos: 3640, + }, + Value: "a", + }, + }, + &expr.Variable{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3643, + EndPos: 3644, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3643, + EndPos: 3644, + }, + Value: "b", + }, + }, }, }, &stmt.UseList{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3652, + EndPos: 3659, + }, Uses: []node.Node{ &stmt.Use{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3656, + EndPos: 3658, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3656, + EndPos: 3658, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3656, + EndPos: 3658, + }, + Value: "Foo", + }, }, }, }, }, }, &stmt.UseList{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3663, + EndPos: 3671, + }, Uses: []node.Node{ &stmt.Use{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3668, + EndPos: 3670, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3668, + EndPos: 3670, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3668, + EndPos: 3670, + }, + Value: "Foo", + }, }, }, }, }, }, &stmt.UseList{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3675, + EndPos: 3690, + }, Uses: []node.Node{ &stmt.Use{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3680, + EndPos: 3689, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3680, + EndPos: 3682, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3680, + EndPos: 3682, + }, + Value: "Foo", + }, }, }, - Alias: &node.Identifier{Value: "Bar"}, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3687, + EndPos: 3689, + }, + Value: "Bar", + }, }, }, }, &stmt.UseList{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3694, + EndPos: 3706, + }, Uses: []node.Node{ &stmt.Use{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3698, + EndPos: 3700, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3698, + EndPos: 3700, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3698, + EndPos: 3700, + }, + Value: "Foo", + }, }, }, }, &stmt.Use{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3703, + EndPos: 3705, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3703, + EndPos: 3705, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3703, + EndPos: 3705, + }, + Value: "Bar", + }, }, }, }, }, }, &stmt.UseList{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3710, + EndPos: 3729, + }, Uses: []node.Node{ &stmt.Use{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3714, + EndPos: 3716, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3714, + EndPos: 3716, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3714, + EndPos: 3716, + }, + Value: "Foo", + }, }, }, }, &stmt.Use{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3719, + EndPos: 3728, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3719, + EndPos: 3721, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3719, + EndPos: 3721, + }, + Value: "Bar", + }, }, }, - Alias: &node.Identifier{Value: "Baz"}, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3726, + EndPos: 3728, + }, + Value: "Baz", + }, }, }, }, &stmt.UseList{ - UseType: &node.Identifier{Value: "function"}, + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3733, + EndPos: 3755, + }, + UseType: &node.Identifier{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3737, + EndPos: 3744, + }, + Value: "function", + }, Uses: []node.Node{ &stmt.Use{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3746, + EndPos: 3748, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3746, + EndPos: 3748, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3746, + EndPos: 3748, + }, + Value: "Foo", + }, }, }, }, &stmt.Use{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3752, + EndPos: 3754, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3752, + EndPos: 3754, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3752, + EndPos: 3754, + }, + Value: "Bar", + }, }, }, }, }, }, &stmt.UseList{ - UseType: &node.Identifier{Value: "function"}, + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3759, + EndPos: 3795, + }, + UseType: &node.Identifier{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3763, + EndPos: 3770, + }, + Value: "function", + }, Uses: []node.Node{ &stmt.Use{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3772, + EndPos: 3781, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3772, + EndPos: 3774, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3772, + EndPos: 3774, + }, + Value: "Foo", + }, }, }, - Alias: &node.Identifier{Value: "foo"}, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3779, + EndPos: 3781, + }, + Value: "foo", + }, }, &stmt.Use{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3785, + EndPos: 3794, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3785, + EndPos: 3787, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3785, + EndPos: 3787, + }, + Value: "Bar", + }, }, }, - Alias: &node.Identifier{Value: "bar"}, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3792, + EndPos: 3794, + }, + Value: "bar", + }, }, }, }, &stmt.UseList{ - UseType: &node.Identifier{Value: "const"}, + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3799, + EndPos: 3818, + }, + UseType: &node.Identifier{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3803, + EndPos: 3807, + }, + Value: "const", + }, Uses: []node.Node{ &stmt.Use{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3809, + EndPos: 3811, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3809, + EndPos: 3811, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3809, + EndPos: 3811, + }, + Value: "Foo", + }, }, }, }, &stmt.Use{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3815, + EndPos: 3817, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3815, + EndPos: 3817, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3815, + EndPos: 3817, + }, + Value: "Bar", + }, }, }, }, }, }, &stmt.UseList{ - UseType: &node.Identifier{Value: "const"}, + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3822, + EndPos: 3855, + }, + UseType: &node.Identifier{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3826, + EndPos: 3830, + }, + Value: "const", + }, Uses: []node.Node{ &stmt.Use{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3832, + EndPos: 3841, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3832, + EndPos: 3834, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3832, + EndPos: 3834, + }, + Value: "Foo", + }, }, }, - Alias: &node.Identifier{Value: "foo"}, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3839, + EndPos: 3841, + }, + Value: "foo", + }, }, &stmt.Use{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3845, + EndPos: 3854, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3845, + EndPos: 3847, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3845, + EndPos: 3847, + }, + Value: "Bar", + }, }, }, - Alias: &node.Identifier{Value: "bar"}, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3852, + EndPos: 3854, + }, + Value: "bar", + }, }, }, }, &stmt.GroupUse{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3860, + EndPos: 3879, + }, Prefix: &name.Name{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3865, + EndPos: 3867, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3865, + EndPos: 3867, + }, + Value: "Foo", + }, }, }, UseList: []node.Node{ &stmt.Use{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3870, + EndPos: 3872, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3870, + EndPos: 3872, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3870, + EndPos: 3872, + }, + Value: "Bar", + }, }, }, }, &stmt.Use{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3875, + EndPos: 3877, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3875, + EndPos: 3877, + }, Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3875, + EndPos: 3877, + }, + Value: "Baz", + }, }, }, }, }, }, &stmt.GroupUse{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3883, + EndPos: 3909, + }, Prefix: &name.Name{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3887, + EndPos: 3889, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3887, + EndPos: 3889, + }, + Value: "Foo", + }, }, }, UseList: []node.Node{ &stmt.Use{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3892, + EndPos: 3894, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3892, + EndPos: 3894, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3892, + EndPos: 3894, + }, + Value: "Bar", + }, }, }, }, &stmt.Use{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3897, + EndPos: 3907, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3897, + EndPos: 3899, + }, Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3897, + EndPos: 3899, + }, + Value: "Baz", + }, }, }, - Alias: &node.Identifier{Value: "quux"}, + Alias: &node.Identifier{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3904, + EndPos: 3907, + }, + Value: "quux", + }, }, }, }, &stmt.GroupUse{ - UseType: &node.Identifier{Value: "function"}, + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3913, + EndPos: 3940, + }, + UseType: &node.Identifier{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3917, + EndPos: 3924, + }, + Value: "function", + }, Prefix: &name.Name{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3926, + EndPos: 3928, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3926, + EndPos: 3928, + }, + Value: "Foo", + }, }, }, UseList: []node.Node{ &stmt.Use{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3931, + EndPos: 3933, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3931, + EndPos: 3933, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3931, + EndPos: 3933, + }, + Value: "Bar", + }, }, }, }, &stmt.Use{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3936, + EndPos: 3938, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3936, + EndPos: 3938, + }, Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3936, + EndPos: 3938, + }, + Value: "Baz", + }, }, }, }, }, }, &stmt.GroupUse{ - UseType: &node.Identifier{Value: "const"}, + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3944, + EndPos: 3969, + }, + UseType: &node.Identifier{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3948, + EndPos: 3952, + }, + Value: "const", + }, Prefix: &name.Name{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3955, + EndPos: 3957, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3955, + EndPos: 3957, + }, + Value: "Foo", + }, }, }, UseList: []node.Node{ &stmt.Use{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3960, + EndPos: 3962, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3960, + EndPos: 3962, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3960, + EndPos: 3962, + }, + Value: "Bar", + }, }, }, }, &stmt.Use{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3965, + EndPos: 3967, + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3965, + EndPos: 3967, + }, Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3965, + EndPos: 3967, + }, + Value: "Baz", + }, }, }, }, }, }, &stmt.GroupUse{ + Position: &position.Position{ + StartLine: 176, + EndLine: 176, + StartPos: 3973, + EndPos: 4006, + }, Prefix: &name.Name{ + Position: &position.Position{ + StartLine: 176, + EndLine: 176, + StartPos: 3977, + EndPos: 3979, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 176, + EndLine: 176, + StartPos: 3977, + EndPos: 3979, + }, + Value: "Foo", + }, }, }, UseList: []node.Node{ &stmt.Use{ - UseType: &node.Identifier{Value: "const"}, + Position: &position.Position{ + StartLine: 176, + EndLine: 176, + StartPos: 3988, + EndPos: 3990, + }, + UseType: &node.Identifier{ + Position: &position.Position{ + StartLine: 176, + EndLine: 176, + StartPos: 3982, + EndPos: 3986, + }, + Value: "const", + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 176, + EndLine: 176, + StartPos: 3988, + EndPos: 3990, + }, Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 176, + EndLine: 176, + StartPos: 3988, + EndPos: 3990, + }, + Value: "Bar", + }, }, }, }, &stmt.Use{ - UseType: &node.Identifier{Value: "function"}, + Position: &position.Position{ + StartLine: 176, + EndLine: 176, + StartPos: 4002, + EndPos: 4004, + }, + UseType: &node.Identifier{ + Position: &position.Position{ + StartLine: 176, + EndLine: 176, + StartPos: 3993, + EndPos: 4000, + }, + Value: "function", + }, Use: &name.Name{ + Position: &position.Position{ + StartLine: 176, + EndLine: 176, + StartPos: 4002, + EndPos: 4004, + }, Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 176, + EndLine: 176, + StartPos: 4002, + EndPos: 4004, + }, + Value: "Baz", + }, }, }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 4011, + EndPos: 4016, + }, Expr: &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Dim: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 4011, + EndPos: 4015, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 4011, + EndPos: 4012, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 4011, + EndPos: 4012, + }, + Value: "a", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 4014, + EndPos: 4014, + }, + Value: "1", + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 179, + EndLine: 179, + StartPos: 4020, + EndPos: 4028, + }, Expr: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 179, + EndLine: 179, + StartPos: 4020, + EndPos: 4027, + }, Variable: &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Dim: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 179, + EndLine: 179, + StartPos: 4020, + EndPos: 4024, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 179, + EndLine: 179, + StartPos: 4020, + EndPos: 4021, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 179, + EndLine: 179, + StartPos: 4020, + EndPos: 4021, + }, + Value: "a", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 179, + EndLine: 179, + StartPos: 4023, + EndPos: 4023, + }, + Value: "1", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 179, + EndLine: 179, + StartPos: 4026, + EndPos: 4026, + }, + Value: "2", }, - Dim: &scalar.Lnumber{Value: "2"}, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 4032, + EndPos: 4039, + }, Expr: &expr.Array{ - Items: []node.Node{}, + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 4032, + EndPos: 4038, + }, + Items: []node.Node{ + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4043, + EndPos: 4051, + }, Expr: &expr.Array{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4043, + EndPos: 4050, + }, Items: []node.Node{ &expr.ArrayItem{ - Val: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4049, + EndPos: 4049, + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4049, + EndPos: 4049, + }, + Value: "1", + }, }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 182, + EndLine: 182, + StartPos: 4055, + EndPos: 4072, + }, Expr: &expr.Array{ + Position: &position.Position{ + StartLine: 182, + EndLine: 182, + StartPos: 4055, + EndPos: 4071, + }, Items: []node.Node{ &expr.ArrayItem{ - Key: &scalar.Lnumber{Value: "1"}, - Val: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 182, + EndLine: 182, + StartPos: 4061, + EndPos: 4064, + }, + Key: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 182, + EndLine: 182, + StartPos: 4061, + EndPos: 4061, + }, + Value: "1", + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 182, + EndLine: 182, + StartPos: 4064, + EndPos: 4064, + }, + Value: "1", + }, }, &expr.ArrayItem{ - Val: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + Position: &position.Position{ + StartLine: 182, + EndLine: 182, + StartPos: 4067, + EndPos: 4069, + }, + Val: &expr.Reference{ + Position: &position.Position{ + StartLine: 182, + EndLine: 182, + StartPos: 4067, + EndPos: 4069, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 182, + EndLine: 182, + StartPos: 4068, + EndPos: 4069, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 182, + EndLine: 182, + StartPos: 4068, + EndPos: 4069, + }, + Value: "b", + }, + }, + }, }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 183, + EndLine: 183, + StartPos: 4076, + EndPos: 4079, + }, Expr: &expr.BitwiseNot{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.BooleanNot{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.ClassConstFetch{ - Class: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + Position: &position.Position{ + StartLine: 183, + EndLine: 183, + StartPos: 4076, + EndPos: 4078, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 183, + EndLine: 183, + StartPos: 4077, + EndPos: 4078, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 183, + EndLine: 183, + StartPos: 4077, + EndPos: 4078, + }, + Value: "a", }, }, - ConstantName: &node.Identifier{Value: "Bar"}, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 184, + EndLine: 184, + StartPos: 4083, + EndPos: 4086, + }, + Expr: &expr.BooleanNot{ + Position: &position.Position{ + StartLine: 184, + EndLine: 184, + StartPos: 4083, + EndPos: 4085, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 184, + EndLine: 184, + StartPos: 4084, + EndPos: 4085, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 184, + EndLine: 184, + StartPos: 4084, + EndPos: 4085, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 186, + EndLine: 186, + StartPos: 4091, + EndPos: 4099, + }, Expr: &expr.ClassConstFetch{ - Class: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - ConstantName: &node.Identifier{Value: "Bar"}, + Position: &position.Position{ + StartLine: 186, + EndLine: 186, + StartPos: 4091, + EndPos: 4098, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 186, + EndLine: 186, + StartPos: 4091, + EndPos: 4093, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 186, + EndLine: 186, + StartPos: 4091, + EndPos: 4093, + }, + Value: "Foo", + }, + }, + }, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 186, + EndLine: 186, + StartPos: 4096, + EndPos: 4098, + }, + Value: "Bar", + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 187, + EndLine: 187, + StartPos: 4103, + EndPos: 4112, + }, + Expr: &expr.ClassConstFetch{ + Position: &position.Position{ + StartLine: 187, + EndLine: 187, + StartPos: 4103, + EndPos: 4111, + }, + Class: &expr.Variable{ + Position: &position.Position{ + StartLine: 187, + EndLine: 187, + StartPos: 4103, + EndPos: 4106, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 187, + EndLine: 187, + StartPos: 4103, + EndPos: 4106, + }, + Value: "foo", + }, + }, + ConstantName: &node.Identifier{ + Position: &position.Position{ + StartLine: 187, + EndLine: 187, + StartPos: 4109, + EndPos: 4111, + }, + Value: "Bar", + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 188, + EndLine: 188, + StartPos: 4116, + EndPos: 4125, + }, Expr: &expr.Clone{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 188, + EndLine: 188, + StartPos: 4116, + EndPos: 4123, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 188, + EndLine: 188, + StartPos: 4122, + EndPos: 4123, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 188, + EndLine: 188, + StartPos: 4122, + EndPos: 4123, + }, + Value: "a", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 189, + EndLine: 189, + StartPos: 4129, + EndPos: 4137, + }, Expr: &expr.Clone{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 189, + EndLine: 189, + StartPos: 4129, + EndPos: 4136, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 189, + EndLine: 189, + StartPos: 4135, + EndPos: 4136, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 189, + EndLine: 189, + StartPos: 4135, + EndPos: 4136, + }, + Value: "a", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4141, + EndPos: 4153, + }, Expr: &expr.Closure{ - ReturnsRef: false, - Static: false, + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4141, + EndPos: 4152, + }, + ReturnsRef: false, + Static: false, PhpDocComment: "", - Stmts: []node.Node{}, + Stmts: []node.Node{ + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 191, + EndLine: 191, + StartPos: 4157, + EndPos: 4190, + }, Expr: &expr.Closure{ - ReturnsRef: false, - Static: false, + Position: &position.Position{ + StartLine: 191, + EndLine: 191, + StartPos: 4157, + EndPos: 4189, + }, + Static: false, PhpDocComment: "", + ReturnsRef: false, Params: []node.Node{ &node.Parameter{ - ByRef: false, + Position: &position.Position{ + StartLine: 191, + EndLine: 191, + StartPos: 4166, + EndPos: 4167, + }, + ByRef: false, Variadic: false, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 191, + EndLine: 191, + StartPos: 4166, + EndPos: 4167, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 191, + EndLine: 191, + StartPos: 4166, + EndPos: 4167, + }, + Value: "a", + }, + }, }, &node.Parameter{ - ByRef: false, + Position: &position.Position{ + StartLine: 191, + EndLine: 191, + StartPos: 4170, + EndPos: 4171, + }, Variadic: false, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + ByRef: false, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 191, + EndLine: 191, + StartPos: 4170, + EndPos: 4171, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 191, + EndLine: 191, + StartPos: 4170, + EndPos: 4171, + }, + Value: "b", + }, + }, }, }, ClosureUse: &expr.ClosureUse{ + Position: &position.Position{ + StartLine: 191, + EndLine: 191, + StartPos: 4174, + EndPos: 4186, + }, Uses: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "d"}}}, + &expr.Variable{ + Position: &position.Position{ + StartLine: 191, + EndLine: 191, + StartPos: 4179, + EndPos: 4180, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 191, + EndLine: 191, + StartPos: 4179, + EndPos: 4180, + }, + Value: "c", + }, + }, + &expr.Reference{ + Position: &position.Position{ + StartLine: 191, + EndLine: 191, + StartPos: 4183, + EndPos: 4185, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 191, + EndLine: 191, + StartPos: 4184, + EndPos: 4185, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 191, + EndLine: 191, + StartPos: 4184, + EndPos: 4185, + }, + Value: "d", + }, + }, + }, }, }, - Stmts: []node.Node{}, + Stmts: []node.Node{ + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 192, + EndLine: 192, + StartPos: 4194, + EndPos: 4213, + }, Expr: &expr.Closure{ - ReturnsRef: false, - Static: false, + Position: &position.Position{ + StartLine: 192, + EndLine: 192, + StartPos: 4194, + EndPos: 4212, + }, + ReturnsRef: false, + Static: false, PhpDocComment: "", ReturnType: &name.Name{ - Parts: []node.Node{&name.NamePart{Value: "void"}}, + Position: &position.Position{ + StartLine: 192, + EndLine: 192, + StartPos: 4206, + EndPos: 4209, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 192, + EndLine: 192, + StartPos: 4206, + EndPos: 4209, + }, + Value: "void", + }, + }, + }, + Stmts: []node.Node{ }, - Stmts: []node.Node{}, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 193, + EndLine: 193, + StartPos: 4217, + EndPos: 4220, + }, Expr: &expr.ConstFetch{ - Constant: &name.Name{Parts: []node.Node{&name.NamePart{Value: "foo"}}}, + Position: &position.Position{ + StartLine: 193, + EndLine: 193, + StartPos: 4217, + EndPos: 4219, + }, + Constant: &name.Name{ + Position: &position.Position{ + StartLine: 193, + EndLine: 193, + StartPos: 4217, + EndPos: 4219, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 193, + EndLine: 193, + StartPos: 4217, + EndPos: 4219, + }, + Value: "foo", + }, + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 194, + EndLine: 194, + StartPos: 4224, + EndPos: 4237, + }, Expr: &expr.ConstFetch{ - Constant: &name.Relative{Parts: []node.Node{&name.NamePart{Value: "foo"}}}, + Position: &position.Position{ + StartLine: 194, + EndLine: 194, + StartPos: 4224, + EndPos: 4236, + }, + Constant: &name.Relative{ + Position: &position.Position{ + StartLine: 194, + EndLine: 194, + StartPos: 4224, + EndPos: 4236, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 194, + EndLine: 194, + StartPos: 4234, + EndPos: 4236, + }, + Value: "foo", + }, + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 195, + EndLine: 195, + StartPos: 4241, + EndPos: 4245, + }, Expr: &expr.ConstFetch{ - Constant: &name.FullyQualified{Parts: []node.Node{&name.NamePart{Value: "foo"}}}, + Position: &position.Position{ + StartLine: 195, + EndLine: 195, + StartPos: 4241, + EndPos: 4244, + }, + Constant: &name.FullyQualified{ + Position: &position.Position{ + StartLine: 195, + EndLine: 195, + StartPos: 4241, + EndPos: 4244, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 195, + EndLine: 195, + StartPos: 4242, + EndPos: 4244, + }, + Value: "foo", + }, + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 197, + EndLine: 197, + StartPos: 4250, + EndPos: 4259, + }, Expr: &expr.Empty{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 197, + EndLine: 197, + StartPos: 4250, + EndPos: 4258, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 197, + EndLine: 197, + StartPos: 4256, + EndPos: 4257, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 197, + EndLine: 197, + StartPos: 4256, + EndPos: 4257, + }, + Value: "a", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 198, + EndLine: 198, + StartPos: 4263, + EndPos: 4266, + }, Expr: &expr.ErrorSuppress{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 198, + EndLine: 198, + StartPos: 4263, + EndPos: 4265, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 198, + EndLine: 198, + StartPos: 4264, + EndPos: 4265, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 198, + EndLine: 198, + StartPos: 4264, + EndPos: 4265, + }, + Value: "a", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 199, + EndLine: 199, + StartPos: 4270, + EndPos: 4278, + }, Expr: &expr.Eval{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 199, + EndLine: 199, + StartPos: 4270, + EndPos: 4277, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 199, + EndLine: 199, + StartPos: 4275, + EndPos: 4276, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 199, + EndLine: 199, + StartPos: 4275, + EndPos: 4276, + }, + Value: "a", + }, + }, }, }, &stmt.Expression{ - Expr: &expr.Exit{}, - }, - &stmt.Expression{ + Position: &position.Position{ + StartLine: 200, + EndLine: 200, + StartPos: 4282, + EndPos: 4286, + }, Expr: &expr.Exit{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 200, + EndLine: 200, + StartPos: 4282, + EndPos: 4285, + }, }, }, &stmt.Expression{ - Expr: &expr.Die{}, + Position: &position.Position{ + StartLine: 201, + EndLine: 201, + StartPos: 4290, + EndPos: 4298, + }, + Expr: &expr.Exit{ + Position: &position.Position{ + StartLine: 201, + EndLine: 201, + StartPos: 4290, + EndPos: 4297, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 201, + EndLine: 201, + StartPos: 4295, + EndPos: 4296, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 201, + EndLine: 201, + StartPos: 4295, + EndPos: 4296, + }, + Value: "a", + }, + }, + }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 202, + EndLine: 202, + StartPos: 4302, + EndPos: 4305, + }, Expr: &expr.Die{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 202, + EndLine: 202, + StartPos: 4302, + EndPos: 4304, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 203, + EndLine: 203, + StartPos: 4309, + EndPos: 4316, + }, + Expr: &expr.Die{ + Position: &position.Position{ + StartLine: 203, + EndLine: 203, + StartPos: 4309, + EndPos: 4315, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 203, + EndLine: 203, + StartPos: 4313, + EndPos: 4314, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 203, + EndLine: 203, + StartPos: 4313, + EndPos: 4314, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 204, + EndLine: 204, + StartPos: 4320, + EndPos: 4325, + }, Expr: &expr.FunctionCall{ + Position: &position.Position{ + StartLine: 204, + EndLine: 204, + StartPos: 4320, + EndPos: 4324, + }, Function: &name.Name{ + Position: &position.Position{ + StartLine: 204, + EndLine: 204, + StartPos: 4320, + EndPos: 4322, + }, Parts: []node.Node{ - &name.NamePart{Value: "foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 204, + EndLine: 204, + StartPos: 4320, + EndPos: 4322, + }, + Value: "foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 204, + EndLine: 204, + StartPos: 4323, + EndPos: 4324, }, }, - - ArgumentList: &node.ArgumentList{}, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 205, + EndLine: 205, + StartPos: 4329, + EndPos: 4344, + }, Expr: &expr.FunctionCall{ + Position: &position.Position{ + StartLine: 205, + EndLine: 205, + StartPos: 4329, + EndPos: 4343, + }, Function: &name.Relative{ + Position: &position.Position{ + StartLine: 205, + EndLine: 205, + StartPos: 4329, + EndPos: 4341, + }, Parts: []node.Node{ - &name.NamePart{Value: "foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 205, + EndLine: 205, + StartPos: 4339, + EndPos: 4341, + }, + Value: "foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 205, + EndLine: 205, + StartPos: 4342, + EndPos: 4343, }, }, - - ArgumentList: &node.ArgumentList{}, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 206, + EndLine: 206, + StartPos: 4348, + EndPos: 4354, + }, Expr: &expr.FunctionCall{ + Position: &position.Position{ + StartLine: 206, + EndLine: 206, + StartPos: 4348, + EndPos: 4353, + }, Function: &name.FullyQualified{ + Position: &position.Position{ + StartLine: 206, + EndLine: 206, + StartPos: 4348, + EndPos: 4351, + }, Parts: []node.Node{ - &name.NamePart{Value: "foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 206, + EndLine: 206, + StartPos: 4349, + EndPos: 4351, + }, + Value: "foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 206, + EndLine: 206, + StartPos: 4352, + EndPos: 4353, }, }, - - ArgumentList: &node.ArgumentList{}, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 207, + EndLine: 207, + StartPos: 4358, + EndPos: 4364, + }, Expr: &expr.FunctionCall{ - Function: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - - ArgumentList: &node.ArgumentList{}, + Position: &position.Position{ + StartLine: 207, + EndLine: 207, + StartPos: 4358, + EndPos: 4363, + }, + Function: &expr.Variable{ + Position: &position.Position{ + StartLine: 207, + EndLine: 207, + StartPos: 4358, + EndPos: 4361, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 207, + EndLine: 207, + StartPos: 4358, + EndPos: 4361, + }, + Value: "foo", + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 207, + EndLine: 207, + StartPos: 4362, + EndPos: 4363, + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 209, + EndLine: 209, + StartPos: 4369, + EndPos: 4373, + }, Expr: &expr.PostDec{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 209, + EndLine: 209, + StartPos: 4369, + EndPos: 4372, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 209, + EndLine: 209, + StartPos: 4369, + EndPos: 4370, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 209, + EndLine: 209, + StartPos: 4369, + EndPos: 4370, + }, + Value: "a", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4377, + EndPos: 4381, + }, Expr: &expr.PostInc{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4377, + EndPos: 4380, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4377, + EndPos: 4378, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4377, + EndPos: 4378, + }, + Value: "a", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 211, + EndLine: 211, + StartPos: 4385, + EndPos: 4389, + }, Expr: &expr.PreDec{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 211, + EndLine: 211, + StartPos: 4385, + EndPos: 4388, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 211, + EndLine: 211, + StartPos: 4387, + EndPos: 4388, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 211, + EndLine: 211, + StartPos: 4387, + EndPos: 4388, + }, + Value: "a", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 212, + EndLine: 212, + StartPos: 4393, + EndPos: 4397, + }, Expr: &expr.PreInc{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 212, + EndLine: 212, + StartPos: 4393, + EndPos: 4396, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 212, + EndLine: 212, + StartPos: 4395, + EndPos: 4396, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 212, + EndLine: 212, + StartPos: 4395, + EndPos: 4396, + }, + Value: "a", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 214, + EndLine: 214, + StartPos: 4402, + EndPos: 4412, + }, Expr: &expr.Include{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 214, + EndLine: 214, + StartPos: 4402, + EndPos: 4411, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 214, + EndLine: 214, + StartPos: 4410, + EndPos: 4411, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 214, + EndLine: 214, + StartPos: 4410, + EndPos: 4411, + }, + Value: "a", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 215, + EndLine: 215, + StartPos: 4416, + EndPos: 4431, + }, Expr: &expr.IncludeOnce{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 215, + EndLine: 215, + StartPos: 4416, + EndPos: 4430, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 215, + EndLine: 215, + StartPos: 4429, + EndPos: 4430, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 215, + EndLine: 215, + StartPos: 4429, + EndPos: 4430, + }, + Value: "a", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 216, + EndLine: 216, + StartPos: 4435, + EndPos: 4445, + }, Expr: &expr.Require{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 216, + EndLine: 216, + StartPos: 4435, + EndPos: 4444, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 216, + EndLine: 216, + StartPos: 4443, + EndPos: 4444, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 216, + EndLine: 216, + StartPos: 4443, + EndPos: 4444, + }, + Value: "a", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 217, + EndLine: 217, + StartPos: 4449, + EndPos: 4464, + }, Expr: &expr.RequireOnce{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 217, + EndLine: 217, + StartPos: 4449, + EndPos: 4463, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 217, + EndLine: 217, + StartPos: 4462, + EndPos: 4463, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 217, + EndLine: 217, + StartPos: 4462, + EndPos: 4463, + }, + Value: "a", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4469, + EndPos: 4486, + }, Expr: &expr.InstanceOf{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4469, + EndPos: 4485, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4469, + EndPos: 4470, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4469, + EndPos: 4470, + }, + Value: "a", + }, + }, Class: &name.Name{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4483, + EndPos: 4485, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4483, + EndPos: 4485, + }, + Value: "Foo", + }, }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 220, + EndLine: 220, + StartPos: 4490, + EndPos: 4517, + }, Expr: &expr.InstanceOf{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 220, + EndLine: 220, + StartPos: 4490, + EndPos: 4516, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 220, + EndLine: 220, + StartPos: 4490, + EndPos: 4491, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 220, + EndLine: 220, + StartPos: 4490, + EndPos: 4491, + }, + Value: "a", + }, + }, Class: &name.Relative{ + Position: &position.Position{ + StartLine: 220, + EndLine: 220, + StartPos: 4504, + EndPos: 4516, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 220, + EndLine: 220, + StartPos: 4514, + EndPos: 4516, + }, + Value: "Foo", + }, }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 221, + EndLine: 221, + StartPos: 4521, + EndPos: 4539, + }, Expr: &expr.InstanceOf{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 221, + EndLine: 221, + StartPos: 4521, + EndPos: 4538, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 221, + EndLine: 221, + StartPos: 4521, + EndPos: 4522, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 221, + EndLine: 221, + StartPos: 4521, + EndPos: 4522, + }, + Value: "a", + }, + }, Class: &name.FullyQualified{ + Position: &position.Position{ + StartLine: 221, + EndLine: 221, + StartPos: 4535, + EndPos: 4538, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 221, + EndLine: 221, + StartPos: 4536, + EndPos: 4538, + }, + Value: "Foo", + }, }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 223, + EndLine: 223, + StartPos: 4544, + EndPos: 4557, + }, Expr: &expr.Isset{ + Position: &position.Position{ + StartLine: 223, + EndLine: 223, + StartPos: 4544, + EndPos: 4556, + }, Variables: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - }, - &stmt.Expression{ - Expr: &assign.Assign{ - Variable: &expr.List{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + &expr.Variable{ + Position: &position.Position{ + StartLine: 223, + EndLine: 223, + StartPos: 4550, + EndPos: 4551, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 223, + EndLine: 223, + StartPos: 4550, + EndPos: 4551, + }, + Value: "a", + }, + }, + &expr.Variable{ + Position: &position.Position{ + StartLine: 223, + EndLine: 223, + StartPos: 4554, + EndPos: 4555, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 223, + EndLine: 223, + StartPos: 4554, + EndPos: 4555, + }, + Value: "b", }, }, }, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4561, + EndPos: 4574, + }, Expr: &assign.Assign{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4561, + EndPos: 4573, + }, Variable: &expr.List{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4561, + EndPos: 4568, + }, Items: []node.Node{ &expr.ArrayItem{ - Val: &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4566, + EndPos: 4567, + }, + Val: &expr.Variable{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4566, + EndPos: 4567, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4566, + EndPos: 4567, + }, + Value: "a", + }, }, }, }, }, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4572, + EndPos: 4573, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4572, + EndPos: 4573, + }, + Value: "b", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4578, + EndPos: 4593, + }, Expr: &assign.Assign{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4578, + EndPos: 4592, + }, Variable: &expr.List{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4578, + EndPos: 4587, + }, Items: []node.Node{ &expr.ArrayItem{ - Val: &expr.List{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4583, + EndPos: 4586, + }, + Val: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4583, + EndPos: 4586, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4583, + EndPos: 4584, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4583, + EndPos: 4584, + }, + Value: "a", }, }, }, }, }, }, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4591, + EndPos: 4592, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4591, + EndPos: 4592, + }, + Value: "b", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4597, + EndPos: 4616, + }, + Expr: &assign.Assign{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4597, + EndPos: 4615, + }, + Variable: &expr.List{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4597, + EndPos: 4610, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4602, + EndPos: 4609, + }, + Val: &expr.List{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4602, + EndPos: 4609, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4607, + EndPos: 4608, + }, + Val: &expr.Variable{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4607, + EndPos: 4608, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4607, + EndPos: 4608, + }, + Value: "a", + }, + }, + }, + }, + }, + }, + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4614, + EndPos: 4615, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4614, + EndPos: 4615, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4621, + EndPos: 4630, + }, Expr: &expr.MethodCall{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Method: &node.Identifier{Value: "foo"}, - - ArgumentList: &node.ArgumentList{}, + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4621, + EndPos: 4629, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4621, + EndPos: 4622, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4621, + EndPos: 4622, + }, + Value: "a", + }, + }, + Method: &node.Identifier{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4625, + EndPos: 4627, + }, + Value: "foo", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4628, + EndPos: 4629, + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4634, + EndPos: 4643, + }, Expr: &expr.New{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4634, + EndPos: 4642, + }, Class: &name.Name{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4638, + EndPos: 4640, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4638, + EndPos: 4640, + }, + Value: "Foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4641, + EndPos: 4642, }, }, - - ArgumentList: &node.ArgumentList{}, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 230, + EndLine: 230, + StartPos: 4647, + EndPos: 4666, + }, Expr: &expr.New{ + Position: &position.Position{ + StartLine: 230, + EndLine: 230, + StartPos: 4647, + EndPos: 4665, + }, Class: &name.Relative{ + Position: &position.Position{ + StartLine: 230, + EndLine: 230, + StartPos: 4651, + EndPos: 4663, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 230, + EndLine: 230, + StartPos: 4661, + EndPos: 4663, + }, + Value: "Foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 230, + EndLine: 230, + StartPos: 4664, + EndPos: 4665, }, }, - - ArgumentList: &node.ArgumentList{}, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 231, + EndLine: 231, + StartPos: 4670, + EndPos: 4680, + }, Expr: &expr.New{ + Position: &position.Position{ + StartLine: 231, + EndLine: 231, + StartPos: 4670, + EndPos: 4679, + }, Class: &name.FullyQualified{ + Position: &position.Position{ + StartLine: 231, + EndLine: 231, + StartPos: 4674, + EndPos: 4677, + }, Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 231, + EndLine: 231, + StartPos: 4675, + EndPos: 4677, + }, + Value: "Foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 231, + EndLine: 231, + StartPos: 4678, + EndPos: 4679, }, }, - - ArgumentList: &node.ArgumentList{}, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 232, + EndLine: 232, + StartPos: 4684, + EndPos: 4708, + }, Expr: &expr.New{ + Position: &position.Position{ + StartLine: 232, + EndLine: 232, + StartPos: 4684, + EndPos: 4707, + }, Class: &stmt.Class{ + Position: &position.Position{ + StartLine: 232, + EndLine: 232, + StartPos: 4688, + EndPos: 4707, + }, PhpDocComment: "", - ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 232, + EndLine: 232, + StartPos: 4694, + EndPos: 4704, + }, Arguments: []node.Node{ - &node.Argument{Variadic: false, Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, - &node.Argument{Variadic: true, Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + &node.Argument{ + Position: &position.Position{ + StartLine: 232, + EndLine: 232, + StartPos: 4695, + EndPos: 4696, + }, + Variadic: false, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 232, + EndLine: 232, + StartPos: 4695, + EndPos: 4696, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 232, + EndLine: 232, + StartPos: 4695, + EndPos: 4696, + }, + Value: "a", + }, + }, + }, + &node.Argument{ + Position: &position.Position{ + StartLine: 232, + EndLine: 232, + StartPos: 4699, + EndPos: 4703, + }, + Variadic: true, + IsReference: false, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 232, + EndLine: 232, + StartPos: 4702, + EndPos: 4703, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 232, + EndLine: 232, + StartPos: 4702, + EndPos: 4703, + }, + Value: "b", + }, + }, + }, }, }, - Stmts: []node.Node{}, + Stmts: []node.Node{ + }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 233, + EndLine: 233, + StartPos: 4712, + EndPos: 4721, + }, Expr: &expr.Print{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 233, + EndLine: 233, + StartPos: 4712, + EndPos: 4719, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 233, + EndLine: 233, + StartPos: 4718, + EndPos: 4719, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 233, + EndLine: 233, + StartPos: 4718, + EndPos: 4719, + }, + Value: "a", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 234, + EndLine: 234, + StartPos: 4725, + EndPos: 4732, + }, Expr: &expr.PropertyFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Property: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 234, + EndLine: 234, + StartPos: 4725, + EndPos: 4731, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 234, + EndLine: 234, + StartPos: 4725, + EndPos: 4726, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 234, + EndLine: 234, + StartPos: 4725, + EndPos: 4726, + }, + Value: "a", + }, + }, + Property: &node.Identifier{ + Position: &position.Position{ + StartLine: 234, + EndLine: 234, + StartPos: 4729, + EndPos: 4731, + }, + Value: "foo", + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4736, + EndPos: 4744, + }, Expr: &expr.ShellExec{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4736, + EndPos: 4743, + }, Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "cmd "}, - &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.ShellExec{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "cmd"}, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.ShellExec{ - Parts: []node.Node{}, - }, - }, - &stmt.Expression{ - Expr: &expr.ShortArray{ - Items: []node.Node{}, - }, - }, - &stmt.Expression{ - Expr: &expr.ShortArray{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &scalar.Lnumber{Value: "1"}, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4737, + EndPos: 4740, + }, + Value: "cmd ", }, - }, - }, - }, - &stmt.Expression{ - Expr: &expr.ShortArray{ - Items: []node.Node{ - &expr.ArrayItem{ - Key: &scalar.Lnumber{Value: "1"}, - Val: &scalar.Lnumber{Value: "1"}, - }, - &expr.ArrayItem{ - Val: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, - }, - }, - }, - }, - &stmt.Expression{ - Expr: &assign.Assign{ - Variable: &expr.ShortList{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + &expr.Variable{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4741, + EndPos: 4742, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4741, + EndPos: 4742, + }, + Value: "a", }, }, }, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, }, }, &stmt.Expression{ - Expr: &assign.Assign{ - Variable: &expr.ShortList{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 236, + EndLine: 236, + StartPos: 4748, + EndPos: 4753, + }, + Expr: &expr.ShellExec{ + Position: &position.Position{ + StartLine: 236, + EndLine: 236, + StartPos: 4748, + EndPos: 4752, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Value: "cmd", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 237, + EndLine: 237, + StartPos: 4757, + EndPos: 4759, + }, + Expr: &expr.ShellExec{ + Position: &position.Position{ + StartLine: 237, + EndLine: 237, + StartPos: 4757, + EndPos: 4758, + }, + Parts: []node.Node{ + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 238, + EndLine: 238, + StartPos: 4763, + EndPos: 4765, + }, + Expr: &expr.ShortArray{ + Position: &position.Position{ + StartLine: 238, + EndLine: 238, + StartPos: 4763, + EndPos: 4764, + }, + Items: []node.Node{ + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4769, + EndPos: 4772, + }, + Expr: &expr.ShortArray{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4769, + EndPos: 4771, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4770, + EndPos: 4770, + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4770, + EndPos: 4770, + }, + Value: "1", + }, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 240, + EndLine: 240, + StartPos: 4776, + EndPos: 4788, + }, + Expr: &expr.ShortArray{ + Position: &position.Position{ + StartLine: 240, + EndLine: 240, + StartPos: 4776, + EndPos: 4787, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 240, + EndLine: 240, + StartPos: 4777, + EndPos: 4780, + }, + Key: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 240, + EndLine: 240, + StartPos: 4777, + EndPos: 4777, + }, + Value: "1", + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 240, + EndLine: 240, + StartPos: 4780, + EndPos: 4780, + }, + Value: "1", + }, + }, + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 240, + EndLine: 240, + StartPos: 4783, + EndPos: 4785, + }, + Val: &expr.Reference{ + Position: &position.Position{ + StartLine: 240, + EndLine: 240, + StartPos: 4783, + EndPos: 4785, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 240, + EndLine: 240, + StartPos: 4784, + EndPos: 4785, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 240, + EndLine: 240, + StartPos: 4784, + EndPos: 4785, + }, + Value: "b", + }, }, }, }, }, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4793, + EndPos: 4802, + }, Expr: &assign.Assign{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4793, + EndPos: 4801, + }, Variable: &expr.ShortList{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4793, + EndPos: 4796, + }, Items: []node.Node{ &expr.ArrayItem{ - Val: &expr.List{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4794, + EndPos: 4795, + }, + Val: &expr.Variable{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4794, + EndPos: 4795, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4794, + EndPos: 4795, + }, + Value: "a", + }, + }, + }, + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4800, + EndPos: 4801, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4800, + EndPos: 4801, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4806, + EndPos: 4817, + }, + Expr: &assign.Assign{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4806, + EndPos: 4816, + }, + Variable: &expr.ShortList{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4806, + EndPos: 4811, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4807, + EndPos: 4810, + }, + Val: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4807, + EndPos: 4810, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4807, + EndPos: 4808, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4807, + EndPos: 4808, + }, + Value: "a", }, }, }, }, }, }, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.StaticCall{ - Class: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4815, + EndPos: 4816, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4815, + EndPos: 4816, + }, + Value: "b", }, }, - Call: &node.Identifier{Value: "bar"}, - - ArgumentList: &node.ArgumentList{}, }, }, &stmt.Expression{ - Expr: &expr.StaticCall{ - Class: &name.Relative{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - Call: &node.Identifier{Value: "bar"}, - - ArgumentList: &node.ArgumentList{}, + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4821, + EndPos: 4836, }, - }, - &stmt.Expression{ - Expr: &expr.StaticCall{ - Class: &name.FullyQualified{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - Call: &node.Identifier{Value: "bar"}, - - ArgumentList: &node.ArgumentList{}, - }, - }, - &stmt.Expression{ - Expr: &expr.StaticPropertyFetch{ - Class: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - Property: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.StaticPropertyFetch{ - Class: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Property: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.StaticPropertyFetch{ - Class: &name.Relative{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - Property: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.StaticPropertyFetch{ - Class: &name.FullyQualified{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - Property: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Ternary{ - Condition: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - IfTrue: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - IfFalse: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Ternary{ - Condition: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - IfFalse: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Ternary{ - Condition: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - IfTrue: &expr.Ternary{ - Condition: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - IfTrue: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - IfFalse: &expr.Variable{VarName: &node.Identifier{Value: "d"}}, - }, - IfFalse: &expr.Variable{VarName: &node.Identifier{Value: "e"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Ternary{ - Condition: &expr.Ternary{ - Condition: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - IfTrue: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - IfFalse: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - }, - IfTrue: &expr.Variable{VarName: &node.Identifier{Value: "d"}}, - IfFalse: &expr.Variable{VarName: &node.Identifier{Value: "e"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.UnaryMinus{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.UnaryPlus{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Variable{VarName: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, - }, - &stmt.Expression{ - Expr: &expr.Yield{}, - }, - &stmt.Expression{ - Expr: &expr.Yield{ - Value: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.Yield{ - Key: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Value: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &expr.YieldFrom{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &cast.Array{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &cast.Bool{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &cast.Bool{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &cast.Double{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &cast.Double{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &cast.Int{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &cast.Int{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &cast.Object{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &cast.String{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &cast.Unset{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.BitwiseAnd{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.BitwiseOr{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.BitwiseXor{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.BooleanAnd{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.BooleanOr{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Coalesce{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Concat{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Div{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Equal{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.GreaterOrEqual{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Greater{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Identical{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.LogicalAnd{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.LogicalOr{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.LogicalXor{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Minus{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Mod{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Mul{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.NotEqual{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.NotIdentical{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Plus{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Pow{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.ShiftLeft{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.ShiftRight{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.SmallerOrEqual{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Smaller{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &binary.Spaceship{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ - Expr: &assign.Reference{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - }, - }, - &stmt.Expression{ Expr: &assign.Assign{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4821, + EndPos: 4835, + }, + Variable: &expr.ShortList{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4821, + EndPos: 4830, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4822, + EndPos: 4829, + }, + Val: &expr.List{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4822, + EndPos: 4829, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4827, + EndPos: 4828, + }, + Val: &expr.Variable{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4827, + EndPos: 4828, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4827, + EndPos: 4828, + }, + Value: "a", + }, + }, + }, + }, + }, + }, + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4834, + EndPos: 4835, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4834, + EndPos: 4835, + }, + Value: "b", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4840, + EndPos: 4850, + }, + Expr: &expr.StaticCall{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4840, + EndPos: 4849, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4840, + EndPos: 4842, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4840, + EndPos: 4842, + }, + Value: "Foo", + }, + }, + }, + Call: &node.Identifier{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4845, + EndPos: 4847, + }, + Value: "bar", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4848, + EndPos: 4849, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4854, + EndPos: 4874, + }, + Expr: &expr.StaticCall{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4854, + EndPos: 4873, + }, + Class: &name.Relative{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4854, + EndPos: 4866, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4864, + EndPos: 4866, + }, + Value: "Foo", + }, + }, + }, + Call: &node.Identifier{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4869, + EndPos: 4871, + }, + Value: "bar", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4872, + EndPos: 4873, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4878, + EndPos: 4889, + }, + Expr: &expr.StaticCall{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4878, + EndPos: 4888, + }, + Class: &name.FullyQualified{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4878, + EndPos: 4881, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4879, + EndPos: 4881, + }, + Value: "Foo", + }, + }, + }, + Call: &node.Identifier{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4884, + EndPos: 4886, + }, + Value: "bar", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4887, + EndPos: 4888, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4893, + EndPos: 4902, + }, + Expr: &expr.StaticPropertyFetch{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4893, + EndPos: 4901, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4893, + EndPos: 4895, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4893, + EndPos: 4895, + }, + Value: "Foo", + }, + }, + }, + Property: &expr.Variable{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4898, + EndPos: 4901, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4898, + EndPos: 4901, + }, + Value: "bar", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 249, + EndLine: 249, + StartPos: 4906, + EndPos: 4916, + }, + Expr: &expr.StaticPropertyFetch{ + Position: &position.Position{ + StartLine: 249, + EndLine: 249, + StartPos: 4906, + EndPos: 4915, + }, + Class: &expr.Variable{ + Position: &position.Position{ + StartLine: 249, + EndLine: 249, + StartPos: 4906, + EndPos: 4909, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 249, + EndLine: 249, + StartPos: 4906, + EndPos: 4909, + }, + Value: "foo", + }, + }, + Property: &expr.Variable{ + Position: &position.Position{ + StartLine: 249, + EndLine: 249, + StartPos: 4912, + EndPos: 4915, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 249, + EndLine: 249, + StartPos: 4912, + EndPos: 4915, + }, + Value: "bar", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 250, + EndLine: 250, + StartPos: 4920, + EndPos: 4939, + }, + Expr: &expr.StaticPropertyFetch{ + Position: &position.Position{ + StartLine: 250, + EndLine: 250, + StartPos: 4920, + EndPos: 4938, + }, + Class: &name.Relative{ + Position: &position.Position{ + StartLine: 250, + EndLine: 250, + StartPos: 4920, + EndPos: 4932, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 250, + EndLine: 250, + StartPos: 4930, + EndPos: 4932, + }, + Value: "Foo", + }, + }, + }, + Property: &expr.Variable{ + Position: &position.Position{ + StartLine: 250, + EndLine: 250, + StartPos: 4935, + EndPos: 4938, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 250, + EndLine: 250, + StartPos: 4935, + EndPos: 4938, + }, + Value: "bar", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4943, + EndPos: 4953, + }, + Expr: &expr.StaticPropertyFetch{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4943, + EndPos: 4952, + }, + Class: &name.FullyQualified{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4943, + EndPos: 4946, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4944, + EndPos: 4946, + }, + Value: "Foo", + }, + }, + }, + Property: &expr.Variable{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4949, + EndPos: 4952, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4949, + EndPos: 4952, + }, + Value: "bar", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4957, + EndPos: 4969, + }, + Expr: &expr.Ternary{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4957, + EndPos: 4968, + }, + Condition: &expr.Variable{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4957, + EndPos: 4958, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4957, + EndPos: 4958, + }, + Value: "a", + }, + }, + IfTrue: &expr.Variable{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4962, + EndPos: 4963, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4962, + EndPos: 4963, + }, + Value: "b", + }, + }, + IfFalse: &expr.Variable{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4967, + EndPos: 4968, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4967, + EndPos: 4968, + }, + Value: "c", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4973, + EndPos: 4982, + }, + Expr: &expr.Ternary{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4973, + EndPos: 4981, + }, + Condition: &expr.Variable{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4973, + EndPos: 4974, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4973, + EndPos: 4974, + }, + Value: "a", + }, + }, + IfFalse: &expr.Variable{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4980, + EndPos: 4981, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4980, + EndPos: 4981, + }, + Value: "c", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4986, + EndPos: 5008, + }, + Expr: &expr.Ternary{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4986, + EndPos: 5007, + }, + Condition: &expr.Variable{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4986, + EndPos: 4987, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4986, + EndPos: 4987, + }, + Value: "a", + }, + }, + IfTrue: &expr.Ternary{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4991, + EndPos: 5002, + }, + Condition: &expr.Variable{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4991, + EndPos: 4992, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4991, + EndPos: 4992, + }, + Value: "b", + }, + }, + IfTrue: &expr.Variable{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4996, + EndPos: 4997, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4996, + EndPos: 4997, + }, + Value: "c", + }, + }, + IfFalse: &expr.Variable{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 5001, + EndPos: 5002, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 5001, + EndPos: 5002, + }, + Value: "d", + }, + }, + }, + IfFalse: &expr.Variable{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 5006, + EndPos: 5007, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 5006, + EndPos: 5007, + }, + Value: "e", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 5012, + EndPos: 5034, + }, + Expr: &expr.Ternary{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 5012, + EndPos: 5033, + }, + Condition: &expr.Ternary{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 5012, + EndPos: 5023, + }, + Condition: &expr.Variable{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 5012, + EndPos: 5013, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 5012, + EndPos: 5013, + }, + Value: "a", + }, + }, + IfTrue: &expr.Variable{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 5017, + EndPos: 5018, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 5017, + EndPos: 5018, + }, + Value: "b", + }, + }, + IfFalse: &expr.Variable{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 5022, + EndPos: 5023, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 5022, + EndPos: 5023, + }, + Value: "c", + }, + }, + }, + IfTrue: &expr.Variable{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 5027, + EndPos: 5028, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 5027, + EndPos: 5028, + }, + Value: "d", + }, + }, + IfFalse: &expr.Variable{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 5032, + EndPos: 5033, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 5032, + EndPos: 5033, + }, + Value: "e", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 256, + EndLine: 256, + StartPos: 5038, + EndPos: 5041, + }, + Expr: &expr.UnaryMinus{ + Position: &position.Position{ + StartLine: 256, + EndLine: 256, + StartPos: 5038, + EndPos: 5040, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 256, + EndLine: 256, + StartPos: 5039, + EndPos: 5040, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 256, + EndLine: 256, + StartPos: 5039, + EndPos: 5040, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 257, + EndLine: 257, + StartPos: 5045, + EndPos: 5048, + }, + Expr: &expr.UnaryPlus{ + Position: &position.Position{ + StartLine: 257, + EndLine: 257, + StartPos: 5045, + EndPos: 5047, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 257, + EndLine: 257, + StartPos: 5046, + EndPos: 5047, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 257, + EndLine: 257, + StartPos: 5046, + EndPos: 5047, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 258, + EndLine: 258, + StartPos: 5052, + EndPos: 5055, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 258, + EndLine: 258, + StartPos: 5052, + EndPos: 5054, + }, + VarName: &expr.Variable{ + Position: &position.Position{ + StartLine: 258, + EndLine: 258, + StartPos: 5053, + EndPos: 5054, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 258, + EndLine: 258, + StartPos: 5053, + EndPos: 5054, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 259, + EndLine: 259, + StartPos: 5059, + EndPos: 5064, + }, + Expr: &expr.Yield{ + Position: &position.Position{ + StartLine: 259, + EndLine: 259, + StartPos: 5059, + EndPos: 5063, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 260, + EndLine: 260, + StartPos: 5068, + EndPos: 5076, + }, + Expr: &expr.Yield{ + Position: &position.Position{ + StartLine: 260, + EndLine: 260, + StartPos: 5068, + EndPos: 5075, + }, + Value: &expr.Variable{ + Position: &position.Position{ + StartLine: 260, + EndLine: 260, + StartPos: 5074, + EndPos: 5075, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 260, + EndLine: 260, + StartPos: 5074, + EndPos: 5075, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 261, + EndLine: 261, + StartPos: 5080, + EndPos: 5094, + }, + Expr: &expr.Yield{ + Position: &position.Position{ + StartLine: 261, + EndLine: 261, + StartPos: 5080, + EndPos: 5093, + }, + Key: &expr.Variable{ + Position: &position.Position{ + StartLine: 261, + EndLine: 261, + StartPos: 5086, + EndPos: 5087, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 261, + EndLine: 261, + StartPos: 5086, + EndPos: 5087, + }, + Value: "a", + }, + }, + Value: &expr.Variable{ + Position: &position.Position{ + StartLine: 261, + EndLine: 261, + StartPos: 5092, + EndPos: 5093, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 261, + EndLine: 261, + StartPos: 5092, + EndPos: 5093, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 262, + EndLine: 262, + StartPos: 5098, + EndPos: 5111, + }, + Expr: &expr.YieldFrom{ + Position: &position.Position{ + StartLine: 262, + EndLine: 262, + StartPos: 5098, + EndPos: 5110, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 262, + EndLine: 262, + StartPos: 5109, + EndPos: 5110, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 262, + EndLine: 262, + StartPos: 5109, + EndPos: 5110, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 264, + EndLine: 264, + StartPos: 5118, + EndPos: 5127, + }, + Expr: &cast.Array{ + Position: &position.Position{ + StartLine: 264, + EndLine: 264, + StartPos: 5118, + EndPos: 5126, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 264, + EndLine: 264, + StartPos: 5125, + EndPos: 5126, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 264, + EndLine: 264, + StartPos: 5125, + EndPos: 5126, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 265, + EndLine: 265, + StartPos: 5131, + EndPos: 5142, + }, + Expr: &cast.Bool{ + Position: &position.Position{ + StartLine: 265, + EndLine: 265, + StartPos: 5131, + EndPos: 5141, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 265, + EndLine: 265, + StartPos: 5140, + EndPos: 5141, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 265, + EndLine: 265, + StartPos: 5140, + EndPos: 5141, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 266, + EndLine: 266, + StartPos: 5146, + EndPos: 5154, + }, + Expr: &cast.Bool{ + Position: &position.Position{ + StartLine: 266, + EndLine: 266, + StartPos: 5146, + EndPos: 5153, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 266, + EndLine: 266, + StartPos: 5152, + EndPos: 5153, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 266, + EndLine: 266, + StartPos: 5152, + EndPos: 5153, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 267, + EndLine: 267, + StartPos: 5158, + EndPos: 5168, + }, + Expr: &cast.Double{ + Position: &position.Position{ + StartLine: 267, + EndLine: 267, + StartPos: 5158, + EndPos: 5167, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 267, + EndLine: 267, + StartPos: 5166, + EndPos: 5167, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 267, + EndLine: 267, + StartPos: 5166, + EndPos: 5167, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 268, + EndLine: 268, + StartPos: 5172, + EndPos: 5181, + }, + Expr: &cast.Double{ + Position: &position.Position{ + StartLine: 268, + EndLine: 268, + StartPos: 5172, + EndPos: 5180, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 268, + EndLine: 268, + StartPos: 5179, + EndPos: 5180, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 268, + EndLine: 268, + StartPos: 5179, + EndPos: 5180, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 269, + EndLine: 269, + StartPos: 5185, + EndPos: 5196, + }, + Expr: &cast.Int{ + Position: &position.Position{ + StartLine: 269, + EndLine: 269, + StartPos: 5185, + EndPos: 5195, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 269, + EndLine: 269, + StartPos: 5194, + EndPos: 5195, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 269, + EndLine: 269, + StartPos: 5194, + EndPos: 5195, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 270, + EndLine: 270, + StartPos: 5200, + EndPos: 5207, + }, + Expr: &cast.Int{ + Position: &position.Position{ + StartLine: 270, + EndLine: 270, + StartPos: 5200, + EndPos: 5206, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 270, + EndLine: 270, + StartPos: 5205, + EndPos: 5206, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 270, + EndLine: 270, + StartPos: 5205, + EndPos: 5206, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 271, + EndLine: 271, + StartPos: 5211, + EndPos: 5221, + }, + Expr: &cast.Object{ + Position: &position.Position{ + StartLine: 271, + EndLine: 271, + StartPos: 5211, + EndPos: 5220, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 271, + EndLine: 271, + StartPos: 5219, + EndPos: 5220, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 271, + EndLine: 271, + StartPos: 5219, + EndPos: 5220, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 272, + EndLine: 272, + StartPos: 5225, + EndPos: 5235, + }, + Expr: &cast.String{ + Position: &position.Position{ + StartLine: 272, + EndLine: 272, + StartPos: 5225, + EndPos: 5234, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 272, + EndLine: 272, + StartPos: 5233, + EndPos: 5234, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 272, + EndLine: 272, + StartPos: 5233, + EndPos: 5234, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 273, + EndLine: 273, + StartPos: 5239, + EndPos: 5248, + }, + Expr: &cast.Unset{ + Position: &position.Position{ + StartLine: 273, + EndLine: 273, + StartPos: 5239, + EndPos: 5247, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 273, + EndLine: 273, + StartPos: 5246, + EndPos: 5247, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 273, + EndLine: 273, + StartPos: 5246, + EndPos: 5247, + }, + Value: "a", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 275, + EndLine: 275, + StartPos: 5253, + EndPos: 5260, + }, + Expr: &binary.BitwiseAnd{ + Position: &position.Position{ + StartLine: 275, + EndLine: 275, + StartPos: 5253, + EndPos: 5259, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 275, + EndLine: 275, + StartPos: 5253, + EndPos: 5254, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 275, + EndLine: 275, + StartPos: 5253, + EndPos: 5254, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 275, + EndLine: 275, + StartPos: 5258, + EndPos: 5259, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 275, + EndLine: 275, + StartPos: 5258, + EndPos: 5259, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 276, + EndLine: 276, + StartPos: 5264, + EndPos: 5271, + }, + Expr: &binary.BitwiseOr{ + Position: &position.Position{ + StartLine: 276, + EndLine: 276, + StartPos: 5264, + EndPos: 5270, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 276, + EndLine: 276, + StartPos: 5264, + EndPos: 5265, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 276, + EndLine: 276, + StartPos: 5264, + EndPos: 5265, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 276, + EndLine: 276, + StartPos: 5269, + EndPos: 5270, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 276, + EndLine: 276, + StartPos: 5269, + EndPos: 5270, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 277, + EndLine: 277, + StartPos: 5275, + EndPos: 5282, + }, + Expr: &binary.BitwiseXor{ + Position: &position.Position{ + StartLine: 277, + EndLine: 277, + StartPos: 5275, + EndPos: 5281, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 277, + EndLine: 277, + StartPos: 5275, + EndPos: 5276, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 277, + EndLine: 277, + StartPos: 5275, + EndPos: 5276, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 277, + EndLine: 277, + StartPos: 5280, + EndPos: 5281, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 277, + EndLine: 277, + StartPos: 5280, + EndPos: 5281, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 278, + EndLine: 278, + StartPos: 5286, + EndPos: 5294, + }, + Expr: &binary.BooleanAnd{ + Position: &position.Position{ + StartLine: 278, + EndLine: 278, + StartPos: 5286, + EndPos: 5293, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 278, + EndLine: 278, + StartPos: 5286, + EndPos: 5287, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 278, + EndLine: 278, + StartPos: 5286, + EndPos: 5287, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 278, + EndLine: 278, + StartPos: 5292, + EndPos: 5293, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 278, + EndLine: 278, + StartPos: 5292, + EndPos: 5293, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 279, + EndLine: 279, + StartPos: 5298, + EndPos: 5306, + }, + Expr: &binary.BooleanOr{ + Position: &position.Position{ + StartLine: 279, + EndLine: 279, + StartPos: 5298, + EndPos: 5305, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 279, + EndLine: 279, + StartPos: 5298, + EndPos: 5299, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 279, + EndLine: 279, + StartPos: 5298, + EndPos: 5299, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 279, + EndLine: 279, + StartPos: 5304, + EndPos: 5305, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 279, + EndLine: 279, + StartPos: 5304, + EndPos: 5305, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 280, + EndLine: 280, + StartPos: 5310, + EndPos: 5318, + }, + Expr: &binary.Coalesce{ + Position: &position.Position{ + StartLine: 280, + EndLine: 280, + StartPos: 5310, + EndPos: 5317, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 280, + EndLine: 280, + StartPos: 5310, + EndPos: 5311, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 280, + EndLine: 280, + StartPos: 5310, + EndPos: 5311, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 280, + EndLine: 280, + StartPos: 5316, + EndPos: 5317, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 280, + EndLine: 280, + StartPos: 5316, + EndPos: 5317, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 281, + EndLine: 281, + StartPos: 5322, + EndPos: 5329, + }, + Expr: &binary.Concat{ + Position: &position.Position{ + StartLine: 281, + EndLine: 281, + StartPos: 5322, + EndPos: 5328, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 281, + EndLine: 281, + StartPos: 5322, + EndPos: 5323, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 281, + EndLine: 281, + StartPos: 5322, + EndPos: 5323, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 281, + EndLine: 281, + StartPos: 5327, + EndPos: 5328, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 281, + EndLine: 281, + StartPos: 5327, + EndPos: 5328, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 282, + EndLine: 282, + StartPos: 5333, + EndPos: 5340, + }, + Expr: &binary.Div{ + Position: &position.Position{ + StartLine: 282, + EndLine: 282, + StartPos: 5333, + EndPos: 5339, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 282, + EndLine: 282, + StartPos: 5333, + EndPos: 5334, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 282, + EndLine: 282, + StartPos: 5333, + EndPos: 5334, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 282, + EndLine: 282, + StartPos: 5338, + EndPos: 5339, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 282, + EndLine: 282, + StartPos: 5338, + EndPos: 5339, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 283, + EndLine: 283, + StartPos: 5344, + EndPos: 5352, + }, + Expr: &binary.Equal{ + Position: &position.Position{ + StartLine: 283, + EndLine: 283, + StartPos: 5344, + EndPos: 5351, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 283, + EndLine: 283, + StartPos: 5344, + EndPos: 5345, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 283, + EndLine: 283, + StartPos: 5344, + EndPos: 5345, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 283, + EndLine: 283, + StartPos: 5350, + EndPos: 5351, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 283, + EndLine: 283, + StartPos: 5350, + EndPos: 5351, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 284, + EndLine: 284, + StartPos: 5356, + EndPos: 5364, + }, + Expr: &binary.GreaterOrEqual{ + Position: &position.Position{ + StartLine: 284, + EndLine: 284, + StartPos: 5356, + EndPos: 5363, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 284, + EndLine: 284, + StartPos: 5356, + EndPos: 5357, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 284, + EndLine: 284, + StartPos: 5356, + EndPos: 5357, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 284, + EndLine: 284, + StartPos: 5362, + EndPos: 5363, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 284, + EndLine: 284, + StartPos: 5362, + EndPos: 5363, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 285, + EndLine: 285, + StartPos: 5368, + EndPos: 5375, + }, + Expr: &binary.Greater{ + Position: &position.Position{ + StartLine: 285, + EndLine: 285, + StartPos: 5368, + EndPos: 5374, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 285, + EndLine: 285, + StartPos: 5368, + EndPos: 5369, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 285, + EndLine: 285, + StartPos: 5368, + EndPos: 5369, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 285, + EndLine: 285, + StartPos: 5373, + EndPos: 5374, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 285, + EndLine: 285, + StartPos: 5373, + EndPos: 5374, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 286, + EndLine: 286, + StartPos: 5379, + EndPos: 5388, + }, + Expr: &binary.Identical{ + Position: &position.Position{ + StartLine: 286, + EndLine: 286, + StartPos: 5379, + EndPos: 5387, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 286, + EndLine: 286, + StartPos: 5379, + EndPos: 5380, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 286, + EndLine: 286, + StartPos: 5379, + EndPos: 5380, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 286, + EndLine: 286, + StartPos: 5386, + EndPos: 5387, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 286, + EndLine: 286, + StartPos: 5386, + EndPos: 5387, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 287, + EndLine: 287, + StartPos: 5392, + EndPos: 5401, + }, + Expr: &binary.LogicalAnd{ + Position: &position.Position{ + StartLine: 287, + EndLine: 287, + StartPos: 5392, + EndPos: 5400, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 287, + EndLine: 287, + StartPos: 5392, + EndPos: 5393, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 287, + EndLine: 287, + StartPos: 5392, + EndPos: 5393, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 287, + EndLine: 287, + StartPos: 5399, + EndPos: 5400, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 287, + EndLine: 287, + StartPos: 5399, + EndPos: 5400, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 288, + EndLine: 288, + StartPos: 5405, + EndPos: 5413, + }, + Expr: &binary.LogicalOr{ + Position: &position.Position{ + StartLine: 288, + EndLine: 288, + StartPos: 5405, + EndPos: 5412, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 288, + EndLine: 288, + StartPos: 5405, + EndPos: 5406, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 288, + EndLine: 288, + StartPos: 5405, + EndPos: 5406, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 288, + EndLine: 288, + StartPos: 5411, + EndPos: 5412, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 288, + EndLine: 288, + StartPos: 5411, + EndPos: 5412, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 289, + EndLine: 289, + StartPos: 5417, + EndPos: 5426, + }, + Expr: &binary.LogicalXor{ + Position: &position.Position{ + StartLine: 289, + EndLine: 289, + StartPos: 5417, + EndPos: 5425, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 289, + EndLine: 289, + StartPos: 5417, + EndPos: 5418, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 289, + EndLine: 289, + StartPos: 5417, + EndPos: 5418, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 289, + EndLine: 289, + StartPos: 5424, + EndPos: 5425, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 289, + EndLine: 289, + StartPos: 5424, + EndPos: 5425, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 290, + EndLine: 290, + StartPos: 5430, + EndPos: 5437, + }, + Expr: &binary.Minus{ + Position: &position.Position{ + StartLine: 290, + EndLine: 290, + StartPos: 5430, + EndPos: 5436, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 290, + EndLine: 290, + StartPos: 5430, + EndPos: 5431, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 290, + EndLine: 290, + StartPos: 5430, + EndPos: 5431, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 290, + EndLine: 290, + StartPos: 5435, + EndPos: 5436, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 290, + EndLine: 290, + StartPos: 5435, + EndPos: 5436, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 291, + EndLine: 291, + StartPos: 5441, + EndPos: 5448, + }, + Expr: &binary.Mod{ + Position: &position.Position{ + StartLine: 291, + EndLine: 291, + StartPos: 5441, + EndPos: 5447, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 291, + EndLine: 291, + StartPos: 5441, + EndPos: 5442, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 291, + EndLine: 291, + StartPos: 5441, + EndPos: 5442, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 291, + EndLine: 291, + StartPos: 5446, + EndPos: 5447, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 291, + EndLine: 291, + StartPos: 5446, + EndPos: 5447, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 292, + EndLine: 292, + StartPos: 5452, + EndPos: 5459, + }, + Expr: &binary.Mul{ + Position: &position.Position{ + StartLine: 292, + EndLine: 292, + StartPos: 5452, + EndPos: 5458, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 292, + EndLine: 292, + StartPos: 5452, + EndPos: 5453, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 292, + EndLine: 292, + StartPos: 5452, + EndPos: 5453, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 292, + EndLine: 292, + StartPos: 5457, + EndPos: 5458, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 292, + EndLine: 292, + StartPos: 5457, + EndPos: 5458, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 293, + EndLine: 293, + StartPos: 5463, + EndPos: 5471, + }, + Expr: &binary.NotEqual{ + Position: &position.Position{ + StartLine: 293, + EndLine: 293, + StartPos: 5463, + EndPos: 5470, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 293, + EndLine: 293, + StartPos: 5463, + EndPos: 5464, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 293, + EndLine: 293, + StartPos: 5463, + EndPos: 5464, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 293, + EndLine: 293, + StartPos: 5469, + EndPos: 5470, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 293, + EndLine: 293, + StartPos: 5469, + EndPos: 5470, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 294, + EndLine: 294, + StartPos: 5475, + EndPos: 5484, + }, + Expr: &binary.NotIdentical{ + Position: &position.Position{ + StartLine: 294, + EndLine: 294, + StartPos: 5475, + EndPos: 5483, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 294, + EndLine: 294, + StartPos: 5475, + EndPos: 5476, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 294, + EndLine: 294, + StartPos: 5475, + EndPos: 5476, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 294, + EndLine: 294, + StartPos: 5482, + EndPos: 5483, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 294, + EndLine: 294, + StartPos: 5482, + EndPos: 5483, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5488, + EndPos: 5495, + }, + Expr: &binary.Plus{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5488, + EndPos: 5494, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5488, + EndPos: 5489, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5488, + EndPos: 5489, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5493, + EndPos: 5494, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5493, + EndPos: 5494, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5499, + EndPos: 5507, + }, + Expr: &binary.Pow{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5499, + EndPos: 5506, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5499, + EndPos: 5500, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5499, + EndPos: 5500, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5505, + EndPos: 5506, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5505, + EndPos: 5506, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5511, + EndPos: 5519, + }, + Expr: &binary.ShiftLeft{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5511, + EndPos: 5518, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5511, + EndPos: 5512, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5511, + EndPos: 5512, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5517, + EndPos: 5518, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5517, + EndPos: 5518, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5523, + EndPos: 5531, + }, + Expr: &binary.ShiftRight{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5523, + EndPos: 5530, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5523, + EndPos: 5524, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5523, + EndPos: 5524, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5529, + EndPos: 5530, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5529, + EndPos: 5530, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 299, + EndLine: 299, + StartPos: 5535, + EndPos: 5543, + }, + Expr: &binary.SmallerOrEqual{ + Position: &position.Position{ + StartLine: 299, + EndLine: 299, + StartPos: 5535, + EndPos: 5542, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 299, + EndLine: 299, + StartPos: 5535, + EndPos: 5536, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 299, + EndLine: 299, + StartPos: 5535, + EndPos: 5536, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 299, + EndLine: 299, + StartPos: 5541, + EndPos: 5542, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 299, + EndLine: 299, + StartPos: 5541, + EndPos: 5542, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 300, + EndLine: 300, + StartPos: 5547, + EndPos: 5554, + }, + Expr: &binary.Smaller{ + Position: &position.Position{ + StartLine: 300, + EndLine: 300, + StartPos: 5547, + EndPos: 5553, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 300, + EndLine: 300, + StartPos: 5547, + EndPos: 5548, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 300, + EndLine: 300, + StartPos: 5547, + EndPos: 5548, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 300, + EndLine: 300, + StartPos: 5552, + EndPos: 5553, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 300, + EndLine: 300, + StartPos: 5552, + EndPos: 5553, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 301, + EndLine: 301, + StartPos: 5558, + EndPos: 5567, + }, + Expr: &binary.Spaceship{ + Position: &position.Position{ + StartLine: 301, + EndLine: 301, + StartPos: 5558, + EndPos: 5566, + }, + Left: &expr.Variable{ + Position: &position.Position{ + StartLine: 301, + EndLine: 301, + StartPos: 5558, + EndPos: 5559, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 301, + EndLine: 301, + StartPos: 5558, + EndPos: 5559, + }, + Value: "a", + }, + }, + Right: &expr.Variable{ + Position: &position.Position{ + StartLine: 301, + EndLine: 301, + StartPos: 5565, + EndPos: 5566, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 301, + EndLine: 301, + StartPos: 5565, + EndPos: 5566, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 303, + EndLine: 303, + StartPos: 5572, + EndPos: 5580, + }, + Expr: &assign.Reference{ + Position: &position.Position{ + StartLine: 303, + EndLine: 303, + StartPos: 5572, + EndPos: 5579, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 303, + EndLine: 303, + StartPos: 5572, + EndPos: 5573, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 303, + EndLine: 303, + StartPos: 5572, + EndPos: 5573, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 303, + EndLine: 303, + StartPos: 5578, + EndPos: 5579, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 303, + EndLine: 303, + StartPos: 5578, + EndPos: 5579, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 304, + EndLine: 304, + StartPos: 5584, + EndPos: 5591, + }, + Expr: &assign.Assign{ + Position: &position.Position{ + StartLine: 304, + EndLine: 304, + StartPos: 5584, + EndPos: 5590, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 304, + EndLine: 304, + StartPos: 5584, + EndPos: 5585, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 304, + EndLine: 304, + StartPos: 5584, + EndPos: 5585, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 304, + EndLine: 304, + StartPos: 5589, + EndPos: 5590, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 304, + EndLine: 304, + StartPos: 5589, + EndPos: 5590, + }, + Value: "b", + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 305, + EndLine: 305, + StartPos: 5595, + EndPos: 5603, + }, Expr: &assign.BitwiseAnd{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 305, + EndLine: 305, + StartPos: 5595, + EndPos: 5602, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 305, + EndLine: 305, + StartPos: 5595, + EndPos: 5596, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 305, + EndLine: 305, + StartPos: 5595, + EndPos: 5596, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 305, + EndLine: 305, + StartPos: 5601, + EndPos: 5602, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 305, + EndLine: 305, + StartPos: 5601, + EndPos: 5602, + }, + Value: "b", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 306, + EndLine: 306, + StartPos: 5607, + EndPos: 5615, + }, Expr: &assign.BitwiseOr{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 306, + EndLine: 306, + StartPos: 5607, + EndPos: 5614, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 306, + EndLine: 306, + StartPos: 5607, + EndPos: 5608, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 306, + EndLine: 306, + StartPos: 5607, + EndPos: 5608, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 306, + EndLine: 306, + StartPos: 5613, + EndPos: 5614, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 306, + EndLine: 306, + StartPos: 5613, + EndPos: 5614, + }, + Value: "b", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 307, + EndLine: 307, + StartPos: 5619, + EndPos: 5627, + }, Expr: &assign.BitwiseXor{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 307, + EndLine: 307, + StartPos: 5619, + EndPos: 5626, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 307, + EndLine: 307, + StartPos: 5619, + EndPos: 5620, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 307, + EndLine: 307, + StartPos: 5619, + EndPos: 5620, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 307, + EndLine: 307, + StartPos: 5625, + EndPos: 5626, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 307, + EndLine: 307, + StartPos: 5625, + EndPos: 5626, + }, + Value: "b", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 308, + EndLine: 308, + StartPos: 5631, + EndPos: 5639, + }, Expr: &assign.Concat{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 308, + EndLine: 308, + StartPos: 5631, + EndPos: 5638, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 308, + EndLine: 308, + StartPos: 5631, + EndPos: 5632, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 308, + EndLine: 308, + StartPos: 5631, + EndPos: 5632, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 308, + EndLine: 308, + StartPos: 5637, + EndPos: 5638, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 308, + EndLine: 308, + StartPos: 5637, + EndPos: 5638, + }, + Value: "b", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 309, + EndLine: 309, + StartPos: 5643, + EndPos: 5651, + }, Expr: &assign.Div{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 309, + EndLine: 309, + StartPos: 5643, + EndPos: 5650, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 309, + EndLine: 309, + StartPos: 5643, + EndPos: 5644, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 309, + EndLine: 309, + StartPos: 5643, + EndPos: 5644, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 309, + EndLine: 309, + StartPos: 5649, + EndPos: 5650, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 309, + EndLine: 309, + StartPos: 5649, + EndPos: 5650, + }, + Value: "b", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 310, + EndLine: 310, + StartPos: 5655, + EndPos: 5663, + }, Expr: &assign.Minus{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 310, + EndLine: 310, + StartPos: 5655, + EndPos: 5662, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 310, + EndLine: 310, + StartPos: 5655, + EndPos: 5656, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 310, + EndLine: 310, + StartPos: 5655, + EndPos: 5656, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 310, + EndLine: 310, + StartPos: 5661, + EndPos: 5662, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 310, + EndLine: 310, + StartPos: 5661, + EndPos: 5662, + }, + Value: "b", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 311, + EndLine: 311, + StartPos: 5667, + EndPos: 5675, + }, Expr: &assign.Mod{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 311, + EndLine: 311, + StartPos: 5667, + EndPos: 5674, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 311, + EndLine: 311, + StartPos: 5667, + EndPos: 5668, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 311, + EndLine: 311, + StartPos: 5667, + EndPos: 5668, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 311, + EndLine: 311, + StartPos: 5673, + EndPos: 5674, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 311, + EndLine: 311, + StartPos: 5673, + EndPos: 5674, + }, + Value: "b", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 312, + EndLine: 312, + StartPos: 5679, + EndPos: 5687, + }, Expr: &assign.Mul{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 312, + EndLine: 312, + StartPos: 5679, + EndPos: 5686, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 312, + EndLine: 312, + StartPos: 5679, + EndPos: 5680, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 312, + EndLine: 312, + StartPos: 5679, + EndPos: 5680, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 312, + EndLine: 312, + StartPos: 5685, + EndPos: 5686, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 312, + EndLine: 312, + StartPos: 5685, + EndPos: 5686, + }, + Value: "b", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 313, + EndLine: 313, + StartPos: 5691, + EndPos: 5699, + }, Expr: &assign.Plus{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 313, + EndLine: 313, + StartPos: 5691, + EndPos: 5698, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 313, + EndLine: 313, + StartPos: 5691, + EndPos: 5692, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 313, + EndLine: 313, + StartPos: 5691, + EndPos: 5692, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 313, + EndLine: 313, + StartPos: 5697, + EndPos: 5698, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 313, + EndLine: 313, + StartPos: 5697, + EndPos: 5698, + }, + Value: "b", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5703, + EndPos: 5712, + }, Expr: &assign.Pow{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5703, + EndPos: 5711, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5703, + EndPos: 5704, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5703, + EndPos: 5704, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5710, + EndPos: 5711, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5710, + EndPos: 5711, + }, + Value: "b", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5716, + EndPos: 5725, + }, Expr: &assign.ShiftLeft{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5716, + EndPos: 5724, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5716, + EndPos: 5717, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5716, + EndPos: 5717, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5723, + EndPos: 5724, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5723, + EndPos: 5724, + }, + Value: "b", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 316, + EndLine: 316, + StartPos: 5729, + EndPos: 5738, + }, Expr: &assign.ShiftRight{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Expression: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 316, + EndLine: 316, + StartPos: 5729, + EndPos: 5737, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 316, + EndLine: 316, + StartPos: 5729, + EndPos: 5730, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 316, + EndLine: 316, + StartPos: 5729, + EndPos: 5730, + }, + Value: "a", + }, + }, + Expression: &expr.Variable{ + Position: &position.Position{ + StartLine: 316, + EndLine: 316, + StartPos: 5736, + EndPos: 5737, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 316, + EndLine: 316, + StartPos: 5736, + EndPos: 5737, + }, + Value: "b", + }, + }, }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 318, + EndLine: 318, + StartPos: 5743, + EndPos: 5781, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 318, + EndLine: 318, + StartPos: 5749, + EndPos: 5751, + }, + Value: "foo", + }, Stmts: []node.Node{ &stmt.ClassMethod{ - MethodName: &node.Identifier{Value: "class"}, - Modifiers: []node.Node{&node.Identifier{Value: "public"}}, + Position: &position.Position{ + StartLine: 318, + EndLine: 318, + StartPos: 5754, + EndPos: 5779, + }, + ReturnsRef: false, + PhpDocComment: "", + MethodName: &node.Identifier{ + Position: &position.Position{ + StartLine: 318, + EndLine: 318, + StartPos: 5770, + EndPos: 5774, + }, + Value: "class", + }, + Modifiers: []node.Node{ + &node.Identifier{ + Position: &position.Position{ + StartLine: 318, + EndLine: 318, + StartPos: 5754, + EndPos: 5759, + }, + Value: "public", + }, + }, Stmt: &stmt.StmtList{ - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 318, + EndLine: 318, + StartPos: 5778, + EndPos: 5779, + }, + Stmts: []node.Node{ + }, }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5785, + EndPos: 5795, + }, Expr: &expr.FunctionCall{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5785, + EndPos: 5794, + }, Function: &name.FullyQualified{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5785, + EndPos: 5792, + }, Parts: []node.Node{ - &name.NamePart{Value: "foo"}, - &name.NamePart{Value: "bar"}, + &name.NamePart{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5786, + EndPos: 5788, + }, + Value: "foo", + }, + &name.NamePart{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5790, + EndPos: 5792, + }, + Value: "bar", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5793, + EndPos: 5794, }, }, - - ArgumentList: &node.ArgumentList{}, }, }, &stmt.Function{ - FunctionName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 321, + EndLine: 327, + StartPos: 5800, + EndPos: 5926, + }, + ReturnsRef: false, + PhpDocComment: "", + FunctionName: &node.Identifier{ + Position: &position.Position{ + StartLine: 321, + EndLine: 321, + StartPos: 5809, + EndPos: 5811, + }, + Value: "foo", + }, Params: []node.Node{ &node.Parameter{ - ByRef: true, + Position: &position.Position{ + StartLine: 321, + EndLine: 321, + StartPos: 5813, + EndPos: 5815, + }, + ByRef: true, Variadic: false, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 321, + EndLine: 321, + StartPos: 5814, + EndPos: 5815, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 321, + EndLine: 321, + StartPos: 5814, + EndPos: 5815, + }, + Value: "a", + }, + }, }, &node.Parameter{ - ByRef: false, + Position: &position.Position{ + StartLine: 321, + EndLine: 321, + StartPos: 5818, + EndPos: 5822, + }, + ByRef: false, Variadic: true, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 321, + EndLine: 321, + StartPos: 5821, + EndPos: 5822, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 321, + EndLine: 321, + StartPos: 5821, + EndPos: 5822, + }, + Value: "b", + }, + }, }, }, Stmts: []node.Node{ - &stmt.HaltCompiler{}, + &stmt.HaltCompiler{ + Position: &position.Position{ + StartLine: 322, + EndLine: 322, + StartPos: 5830, + EndPos: 5847, + }, + }, &stmt.Function{ - FunctionName: &node.Identifier{Value: "bar"}, - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 323, + EndLine: 323, + StartPos: 5852, + EndPos: 5868, + }, + PhpDocComment: "", + ReturnsRef: false, + FunctionName: &node.Identifier{ + Position: &position.Position{ + StartLine: 323, + EndLine: 323, + StartPos: 5861, + EndPos: 5863, + }, + Value: "bar", + }, + Stmts: []node.Node{ + }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "Baz"}, - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 324, + EndLine: 324, + StartPos: 5873, + EndPos: 5884, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 324, + EndLine: 324, + StartPos: 5879, + EndPos: 5881, + }, + Value: "Baz", + }, + Stmts: []node.Node{ + }, }, &stmt.Trait{ - TraitName: &node.Identifier{Value: "Quux"}, - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5889, + EndPos: 5900, + }, + PhpDocComment: "", + TraitName: &node.Identifier{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5895, + EndPos: 5898, + }, + Value: "Quux", + }, + Stmts: []node.Node{ + }, }, &stmt.Interface{ - InterfaceName: &node.Identifier{Value: "Quuux"}, - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 326, + EndLine: 326, + StartPos: 5905, + EndPos: 5922, + }, + PhpDocComment: "", + InterfaceName: &node.Identifier{ + Position: &position.Position{ + StartLine: 326, + EndLine: 326, + StartPos: 5915, + EndPos: 5919, + }, + Value: "Quuux", + }, + Stmts: []node.Node{ + }, }, }, }, &stmt.Function{ - FunctionName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5933, + EndPos: 5975, + }, + ReturnsRef: false, + PhpDocComment: "", + FunctionName: &node.Identifier{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5942, + EndPos: 5944, + }, + Value: "foo", + }, Params: []node.Node{ &node.Parameter{ - ByRef: true, - Variadic: false, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - DefaultValue: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5946, + EndPos: 5952, + }, + ByRef: true, + Variadic: false, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5947, + EndPos: 5948, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5947, + EndPos: 5948, + }, + Value: "a", + }, + }, + DefaultValue: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5952, + EndPos: 5952, + }, + Value: "1", + }, }, &node.Parameter{ - ByRef: false, - Variadic: true, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - DefaultValue: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5955, + EndPos: 5963, + }, + Variadic: true, + ByRef: false, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5958, + EndPos: 5959, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5958, + EndPos: 5959, + }, + Value: "b", + }, + }, + DefaultValue: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5963, + EndPos: 5963, + }, + Value: "1", + }, }, &node.Parameter{ - ByRef: false, - Variadic: false, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - DefaultValue: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5966, + EndPos: 5971, + }, + ByRef: false, + Variadic: false, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5966, + EndPos: 5967, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5966, + EndPos: 5967, + }, + Value: "c", + }, + }, + DefaultValue: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5971, + EndPos: 5971, + }, + Value: "1", + }, }, }, - Stmts: []node.Node{}, + Stmts: []node.Node{ + }, }, &stmt.Function{ - FunctionName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 5979, + EndPos: 6016, + }, + ReturnsRef: false, + PhpDocComment: "", + FunctionName: &node.Identifier{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 5988, + EndPos: 5990, + }, + Value: "foo", + }, Params: []node.Node{ &node.Parameter{ - ByRef: false, - Variadic: false, - VariableType: &node.Identifier{Value: "array"}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 5992, + EndPos: 5999, + }, + ByRef: false, + Variadic: false, + VariableType: &node.Identifier{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 5992, + EndPos: 5996, + }, + Value: "array", + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 5998, + EndPos: 5999, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 5998, + EndPos: 5999, + }, + Value: "a", + }, + }, }, &node.Parameter{ - ByRef: false, - Variadic: false, - VariableType: &node.Identifier{Value: "callable"}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 6002, + EndPos: 6012, + }, + ByRef: false, + Variadic: false, + VariableType: &node.Identifier{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 6002, + EndPos: 6009, + }, + Value: "callable", + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 6011, + EndPos: 6012, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 6011, + EndPos: 6012, + }, + Value: "b", + }, + }, }, }, - Stmts: []node.Node{}, + Stmts: []node.Node{ + }, }, &stmt.Class{ - ClassName: &node.Identifier{Value: "foo"}, + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 6020, + EndPos: 6121, + }, + PhpDocComment: "", + ClassName: &node.Identifier{ + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 6041, + EndPos: 6043, + }, + Value: "foo", + }, Modifiers: []node.Node{ - &node.Identifier{Value: "abstract"}, - &node.Identifier{Value: "final"}, + &node.Identifier{ + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 6020, + EndPos: 6027, + }, + Value: "abstract", + }, + &node.Identifier{ + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 6029, + EndPos: 6033, + }, + Value: "final", + }, }, Stmts: []node.Node{ &stmt.ClassMethod{ - MethodName: &node.Identifier{Value: "bar"}, - Modifiers: []node.Node{ - &node.Identifier{Value: "abstract"}, - &node.Identifier{Value: "protected"}, - &node.Identifier{Value: "static"}, + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 6047, + EndPos: 6087, + }, + PhpDocComment: "", + ReturnsRef: false, + MethodName: &node.Identifier{ + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 6082, + EndPos: 6084, + }, + Value: "bar", + }, + Modifiers: []node.Node{ + &node.Identifier{ + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 6047, + EndPos: 6054, + }, + Value: "abstract", + }, + &node.Identifier{ + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 6056, + EndPos: 6064, + }, + Value: "protected", + }, + &node.Identifier{ + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 6066, + EndPos: 6071, + }, + Value: "static", + }, + }, + Stmt: &stmt.Nop{ + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 6087, + EndPos: 6087, + }, }, - Stmt: &stmt.Nop{}, }, &stmt.ClassMethod{ - MethodName: &node.Identifier{Value: "baz"}, + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 6089, + EndPos: 6119, + }, + ReturnsRef: false, + PhpDocComment: "", + MethodName: &node.Identifier{ + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 6112, + EndPos: 6114, + }, + Value: "baz", + }, Modifiers: []node.Node{ - &node.Identifier{Value: "final"}, - &node.Identifier{Value: "private"}, + &node.Identifier{ + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 6089, + EndPos: 6093, + }, + Value: "final", + }, + &node.Identifier{ + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 6095, + EndPos: 6101, + }, + Value: "private", + }, }, Stmt: &stmt.StmtList{ - Stmts: []node.Node{}, + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 6118, + EndPos: 6119, + }, + Stmts: []node.Node{ + }, }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6127, + EndPos: 6140, + }, Expr: &expr.PropertyFetch{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6127, + EndPos: 6139, + }, Variable: &expr.New{ - Class: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6127, + EndPos: 6133, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6131, + EndPos: 6133, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6131, + EndPos: 6133, + }, + Value: "Foo", + }, + }, + }, + }, + Property: &node.Identifier{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6137, + EndPos: 6139, + }, + Value: "bar", }, - Property: &node.Identifier{Value: "bar"}, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6145, + EndPos: 6155, + }, Expr: &expr.FunctionCall{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6145, + EndPos: 6154, + }, Function: &expr.New{ - Class: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - }, - - ArgumentList: &node.ArgumentList{}, - }, - }, - &stmt.Expression{ - Expr: &expr.FunctionCall{ - Function: &expr.ArrayDimFetch{ - Variable: &expr.ShortArray{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6145, + EndPos: 6151, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6149, + EndPos: 6151, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6149, + EndPos: 6151, + }, + Value: "Foo", }, }, }, - Dim: &scalar.Lnumber{Value: "0"}, }, - - ArgumentList: &node.ArgumentList{}, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6153, + EndPos: 6154, + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6159, + EndPos: 6170, + }, Expr: &expr.FunctionCall{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6159, + EndPos: 6169, + }, Function: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6159, + EndPos: 6167, + }, + Variable: &expr.ShortArray{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6159, + EndPos: 6164, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6160, + EndPos: 6163, + }, + Val: &expr.Variable{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6160, + EndPos: 6163, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6160, + EndPos: 6163, + }, + Value: "foo", + }, + }, + }, + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6166, + EndPos: 6166, + }, + Value: "0", + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6168, + EndPos: 6169, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6174, + EndPos: 6182, + }, + Expr: &expr.FunctionCall{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6174, + EndPos: 6181, + }, + Function: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6174, + EndPos: 6179, + }, Variable: &expr.ConstFetch{ - Constant: &name.Name{Parts: []node.Node{&name.NamePart{Value: "foo"}}}, - }, - Dim: &scalar.Lnumber{Value: "1"}, - }, - - ArgumentList: &node.ArgumentList{}, - }, - }, - &stmt.Expression{ - Expr: &expr.FunctionCall{ - Function: &scalar.String{Value: "\"foo\""}, - - ArgumentList: &node.ArgumentList{}, - }, - }, - &stmt.Expression{ - Expr: &expr.FunctionCall{ - Function: &expr.ArrayDimFetch{ - Variable: &expr.ShortArray{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &scalar.Lnumber{Value: "1"}, + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6174, + EndPos: 6176, + }, + Constant: &name.Name{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6174, + EndPos: 6176, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6174, + EndPos: 6176, + }, + Value: "foo", + }, }, }, }, - Dim: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6178, + EndPos: 6178, + }, + Value: "1", + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6180, + EndPos: 6181, + }, }, - - ArgumentList: &node.ArgumentList{}, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6186, + EndPos: 6193, + }, + Expr: &expr.FunctionCall{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6186, + EndPos: 6192, + }, + Function: &scalar.String{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6186, + EndPos: 6190, + }, + Value: "\"foo\"", + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6191, + EndPos: 6192, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6197, + EndPos: 6208, + }, + Expr: &expr.FunctionCall{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6197, + EndPos: 6207, + }, + Function: &expr.ArrayDimFetch{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6197, + EndPos: 6205, + }, + Variable: &expr.ShortArray{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6197, + EndPos: 6199, + }, + Items: []node.Node{ + &expr.ArrayItem{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6198, + EndPos: 6198, + }, + Val: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6198, + EndPos: 6198, + }, + Value: "1", + }, + }, + }, + }, + Dim: &expr.Variable{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6201, + EndPos: 6204, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6201, + EndPos: 6204, + }, + Value: "foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6206, + EndPos: 6207, + }, + }, + }, + }, + &stmt.Expression{ + Position: &position.Position{ + StartLine: 339, + EndLine: 339, + StartPos: 6212, + EndPos: 6220, + }, Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 339, + EndLine: 339, + StartPos: 6212, + EndPos: 6219, + }, VarName: &expr.FunctionCall{ - Function: &name.Name{Parts: []node.Node{&name.NamePart{Value: "foo"}}}, - - ArgumentList: &node.ArgumentList{}, + Position: &position.Position{ + StartLine: 339, + EndLine: 339, + StartPos: 6214, + EndPos: 6218, + }, + Function: &name.Name{ + Position: &position.Position{ + StartLine: 339, + EndLine: 339, + StartPos: 6214, + EndPos: 6216, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 339, + EndLine: 339, + StartPos: 6214, + EndPos: 6216, + }, + Value: "foo", + }, + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 339, + EndLine: 339, + StartPos: 6217, + EndPos: 6218, + }, + }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6225, + EndPos: 6236, + }, Expr: &expr.StaticCall{ - Class: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - Call: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, - - ArgumentList: &node.ArgumentList{}, + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6225, + EndPos: 6235, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6225, + EndPos: 6227, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6225, + EndPos: 6227, + }, + Value: "Foo", + }, + }, + }, + Call: &expr.Variable{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6230, + EndPos: 6233, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6230, + EndPos: 6233, + }, + Value: "bar", + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6234, + EndPos: 6235, + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 342, + EndLine: 342, + StartPos: 6240, + EndPos: 6256, + }, Expr: &expr.StaticCall{ - Class: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, + Position: &position.Position{ + StartLine: 342, + EndLine: 342, + StartPos: 6240, + EndPos: 6255, + }, + Class: &name.Name{ + Position: &position.Position{ + StartLine: 342, + EndLine: 342, + StartPos: 6240, + EndPos: 6242, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 342, + EndLine: 342, + StartPos: 6240, + EndPos: 6242, + }, + Value: "Foo", + }, + }, + }, Call: &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, - Dim: &scalar.Lnumber{Value: "0"}, + Position: &position.Position{ + StartLine: 342, + EndLine: 342, + StartPos: 6246, + EndPos: 6252, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 342, + EndLine: 342, + StartPos: 6246, + EndPos: 6249, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 342, + EndLine: 342, + StartPos: 6246, + EndPos: 6249, + }, + Value: "bar", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 342, + EndLine: 342, + StartPos: 6251, + EndPos: 6251, + }, + Value: "0", + }, + }, + ArgumentList: &node.ArgumentList{ + Position: &position.Position{ + StartLine: 342, + EndLine: 342, + StartPos: 6254, + EndPos: 6255, + }, }, - - ArgumentList: &node.ArgumentList{}, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6263, + EndPos: 6273, + }, Expr: &expr.PropertyFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Property: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6263, + EndPos: 6272, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6263, + EndPos: 6266, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6263, + EndPos: 6266, + }, + Value: "foo", + }, + }, + Property: &expr.Variable{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6269, + EndPos: 6272, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6269, + EndPos: 6272, + }, + Value: "bar", + }, + }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 345, + EndLine: 345, + StartPos: 6277, + EndPos: 6292, + }, Expr: &expr.PropertyFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, + Position: &position.Position{ + StartLine: 345, + EndLine: 345, + StartPos: 6277, + EndPos: 6290, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 345, + EndLine: 345, + StartPos: 6277, + EndPos: 6280, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 345, + EndLine: 345, + StartPos: 6277, + EndPos: 6280, + }, + Value: "foo", + }, + }, Property: &expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, - Dim: &scalar.Lnumber{Value: "0"}, + Position: &position.Position{ + StartLine: 345, + EndLine: 345, + StartPos: 6284, + EndPos: 6290, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 345, + EndLine: 345, + StartPos: 6284, + EndPos: 6287, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 345, + EndLine: 345, + StartPos: 6284, + EndPos: 6287, + }, + Value: "bar", + }, + }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 345, + EndLine: 345, + StartPos: 6289, + EndPos: 6289, + }, + Value: "0", + }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6297, + EndPos: 6318, + }, Expr: &expr.ShortArray{ + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6297, + EndPos: 6317, + }, Items: []node.Node{ &expr.ArrayItem{ - Key: &scalar.Lnumber{Value: "1"}, - Val: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6298, + EndPos: 6303, + }, + Key: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6298, + EndPos: 6298, + }, + Value: "1", + }, + Val: &expr.Reference{ + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6301, + EndPos: 6303, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6302, + EndPos: 6303, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6302, + EndPos: 6303, + }, + Value: "a", + }, + }, + }, }, &expr.ArrayItem{ - Key: &scalar.Lnumber{Value: "2"}, + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6306, + EndPos: 6316, + }, + Key: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6306, + EndPos: 6306, + }, + Value: "2", + }, Val: &expr.List{ + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6309, + EndPos: 6316, + }, Items: []node.Node{ &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6314, + EndPos: 6315, + }, + Val: &expr.Variable{ + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6314, + EndPos: 6315, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6314, + EndPos: 6315, + }, + Value: "b", + }, + }, }, }, }, @@ -3218,6 +16199,7 @@ func TestPhp7(t *testing.T) { }, }, } + php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") php7parser.Parse() @@ -3239,24 +16221,101 @@ func TestPhp5Strings(t *testing.T) { ` expected := &node.Root{ + Position: &position.Position{ + StartLine: 2, + EndLine: 10, + StartPos: 6, + EndPos: 70, + }, Stmts: []node.Node{ &stmt.Expression{ - Expr: &scalar.String{Value: "\"test\""}, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 6, + EndPos: 12, + }, + Expr: &scalar.String{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 6, + EndPos: 11, + }, + Value: "\"test\"", + }, }, &stmt.Expression{ - Expr: &scalar.String{Value: "\"\\$test\""}, + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 16, + EndPos: 24, + }, + Expr: &scalar.String{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 16, + EndPos: 23, + }, + Value: "\"\\$test\"", + }, }, &stmt.Expression{ - Expr: &scalar.String{Value: "\"\n\t\t\ttest\n\t\t\""}, + Position: &position.Position{ + StartLine: 4, + EndLine: 6, + StartPos: 28, + EndPos: 41, + }, + Expr: &scalar.String{ + Position: &position.Position{ + StartLine: 4, + EndLine: 6, + StartPos: 28, + EndPos: 40, + }, + Value: "\"\n\t\t\ttest\n\t\t\"", + }, }, &stmt.Expression{ - Expr: &scalar.String{Value: "'$test'"}, + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 45, + EndPos: 52, + }, + Expr: &scalar.String{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 45, + EndPos: 51, + }, + Value: "'$test'", + }, }, &stmt.Expression{ - Expr: &scalar.String{Value: "'\n\t\t\t$test\n\t\t'"}, + Position: &position.Position{ + StartLine: 8, + EndLine: 10, + StartPos: 56, + EndPos: 70, + }, + Expr: &scalar.String{ + Position: &position.Position{ + StartLine: 8, + EndLine: 10, + StartPos: 56, + EndPos: 69, + }, + Value: "'\n\t\t\t$test\n\t\t'", + }, }, }, } + php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") php7parser.Parse() @@ -3283,48 +16342,171 @@ CAD; ` expected := &node.Root{ + Position: &position.Position{ + StartLine: 2, + EndLine: 15, + StartPos: 9, + EndPos: 120, + }, Stmts: []node.Node{ &stmt.Expression{ + Position: &position.Position{ + StartLine: 2, + EndLine: 3, + StartPos: 9, + EndPos: 16, + }, Expr: &scalar.Heredoc{ + Position: &position.Position{ + StartLine: 2, + EndLine: 3, + StartPos: 9, + EndPos: 15, + }, Label: "CAD", }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 4, + EndLine: 6, + StartPos: 23, + EndPos: 37, + }, Expr: &scalar.Heredoc{ + Position: &position.Position{ + StartLine: 4, + EndLine: 6, + StartPos: 23, + EndPos: 36, + }, Label: "CAD", Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "\thello\n"}, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 27, + EndPos: 33, + }, + Value: "\thello\n", + }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 7, + EndLine: 9, + StartPos: 44, + EndPos: 60, + }, Expr: &scalar.Heredoc{ + Position: &position.Position{ + StartLine: 7, + EndLine: 9, + StartPos: 44, + EndPos: 59, + }, Label: "\"CAD\"", Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "\thello\n"}, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 8, + EndLine: 8, + StartPos: 50, + EndPos: 56, + }, + Value: "\thello\n", + }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 10, + EndLine: 12, + StartPos: 67, + EndPos: 90, + }, Expr: &scalar.Heredoc{ + Position: &position.Position{ + StartLine: 10, + EndLine: 12, + StartPos: 67, + EndPos: 89, + }, Label: "\"CAD\"", Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "\thello "}, - &expr.Variable{VarName: &node.Identifier{Value: "world"}}, - &scalar.EncapsedStringPart{Value: "\n"}, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 73, + EndPos: 79, + }, + Value: "\thello ", + }, + &expr.Variable{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 80, + EndPos: 85, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 80, + EndPos: 85, + }, + Value: "world", + }, + }, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 86, + EndPos: 86, + }, + Value: "\n", + }, }, }, }, &stmt.Expression{ + Position: &position.Position{ + StartLine: 13, + EndLine: 15, + StartPos: 97, + EndPos: 120, + }, Expr: &scalar.Heredoc{ + Position: &position.Position{ + StartLine: 13, + EndLine: 15, + StartPos: 97, + EndPos: 119, + }, Label: "'CAD'", Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "\thello $world\n"}, + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 14, + EndLine: 14, + StartPos: 103, + EndPos: 116, + }, + Value: "\thello $world\n", + }, }, }, }, }, } + php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") php7parser.Parse() diff --git a/scanner/lexer.go b/scanner/lexer.go index de85922..49a052f 100644 --- a/scanner/lexer.go +++ b/scanner/lexer.go @@ -445,7 +445,6 @@ type Lexer struct { heredocLabel string tokenBytesBuf *bytes.Buffer TokenPool sync.Pool - PositionPool sync.Pool } // Rune2Class returns the rune integer id @@ -484,9 +483,6 @@ func NewLexer(src io.Reader, fName string) *Lexer { TokenPool: sync.Pool{ New: func() interface{} { return &Token{} }, }, - PositionPool: sync.Pool{ - New: func() interface{} { return &position.Position{} }, - }, } } @@ -533,18 +529,15 @@ func (l *Lexer) createToken(chars []lex.Char) *Token { firstChar := chars[0] lastChar := chars[len(chars)-1] - pos := l.PositionPool.Get().(*position.Position) - - pos.StartLine = l.File.Line(firstChar.Pos()) - pos.EndLine = l.File.Line(lastChar.Pos()) - pos.StartPos = int(firstChar.Pos()) - pos.EndPos = int(lastChar.Pos()) - token := l.TokenPool.Get().(*Token) - token.Position = pos token.Comments = l.Comments token.Value = l.tokenString(chars) + token.StartLine = l.File.Line(firstChar.Pos()) + token.EndLine = l.File.Line(lastChar.Pos()) + token.StartPos = int(firstChar.Pos()) + token.EndPos = int(lastChar.Pos()) + return token } diff --git a/scanner/token.go b/scanner/token.go index 87e035a..330f537 100644 --- a/scanner/token.go +++ b/scanner/token.go @@ -2,14 +2,16 @@ package scanner import ( "github.com/z7zmey/php-parser/comment" - "github.com/z7zmey/php-parser/position" ) // Token value returned by lexer type Token struct { - Value string - Position *position.Position - Comments []*comment.Comment + Value string + Comments []*comment.Comment + StartLine int + EndLine int + StartPos int + EndPos int } func (t *Token) String() string { diff --git a/scanner/token_test.go b/scanner/token_test.go index 7650789..73ca938 100644 --- a/scanner/token_test.go +++ b/scanner/token_test.go @@ -4,18 +4,18 @@ import ( "reflect" "testing" - "github.com/z7zmey/php-parser/position" - "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/scanner" ) func TestToken(t *testing.T) { - pos := position.NewPosition(1, 1, 0, 3) tkn := &scanner.Token{ - Value: `foo`, - Position: pos, + Value: `foo`, + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 3, } c := []*comment.Comment{ @@ -31,8 +31,4 @@ func TestToken(t *testing.T) { if tkn.String() != `foo` { t.Errorf("token value is not equal\n") } - - if tkn.Position != pos { - t.Errorf("token position is not equal\n") - } } diff --git a/visitor/dumper.go b/visitor/dumper.go index 862c3ca..ac4708b 100644 --- a/visitor/dumper.go +++ b/visitor/dumper.go @@ -20,7 +20,6 @@ type Dumper struct { Writer io.Writer Indent string Comments parser.Comments - Positions parser.Positions NsResolver *NamespaceResolver } @@ -30,10 +29,8 @@ func (d *Dumper) EnterNode(w walker.Walkable) bool { fmt.Fprintf(d.Writer, "%v[%v]\n", d.Indent, reflect.TypeOf(n)) - if d.Positions != nil { - if p := d.Positions[n]; p != nil { - fmt.Fprintf(d.Writer, "%v\"Position\": %s\n", d.Indent+" ", *p) - } + if n.GetPosition() != nil { + fmt.Fprintf(d.Writer, "%v\"Position\": %s\n", d.Indent+" ", n.GetPosition()) } if d.NsResolver != nil { diff --git a/visitor/dumper_test.go b/visitor/dumper_test.go index 127af48..f319dce 100644 --- a/visitor/dumper_test.go +++ b/visitor/dumper_test.go @@ -33,7 +33,6 @@ func ExampleDumper() { Writer: os.Stdout, Indent: "| ", Comments: php7parser.GetComments(), - Positions: php7parser.GetPositions(), NsResolver: nsResolver, } nodes.Walk(dumper) diff --git a/visitor/go_dumper.go b/visitor/go_dumper.go index a857cb0..49c08e1 100644 --- a/visitor/go_dumper.go +++ b/visitor/go_dumper.go @@ -42,6 +42,23 @@ func (d *GoDumper) EnterNode(w walker.Walkable) bool { d.depth++ + if p := n.GetPosition(); p != nil { + printIndent(d.Writer, d.depth) + fmt.Fprint(d.Writer, "Position: &position.Position{\n") + d.depth++ + printIndent(d.Writer, d.depth) + fmt.Fprintf(d.Writer, "StartLine: %d,\n", p.StartLine) + printIndent(d.Writer, d.depth) + fmt.Fprintf(d.Writer, "EndLine: %d,\n", p.EndLine) + printIndent(d.Writer, d.depth) + fmt.Fprintf(d.Writer, "StartPos: %d,\n", p.StartPos) + printIndent(d.Writer, d.depth) + fmt.Fprintf(d.Writer, "EndPos: %d,\n", p.EndPos) + d.depth-- + printIndent(d.Writer, d.depth) + fmt.Fprint(d.Writer, "},\n") + } + if a := n.Attributes(); len(a) > 0 { for key, attr := range a { printIndent(d.Writer, d.depth) diff --git a/visitor/go_dumper_test.go b/visitor/go_dumper_test.go index 7d29252..e2f23d8 100644 --- a/visitor/go_dumper_test.go +++ b/visitor/go_dumper_test.go @@ -36,53 +36,155 @@ func ExampleGoDumper() { // Unordered output: //&node.Root{ + // Position: &position.Position{ + // StartLine: 3, + // EndLine: 11, + // StartPos: 10, + // EndPos: 142, + // }, // Stmts: []node.Node{ // &stmt.Namespace{ + // Position: &position.Position{ + // StartLine: 3, + // EndLine: 11, + // StartPos: 10, + // EndPos: 142, + // }, // NamespaceName: &name.Name{ + // Position: &position.Position{ + // StartLine: 3, + // EndLine: 3, + // StartPos: 20, + // EndPos: 22, + // }, // Parts: []node.Node{ // &name.NamePart{ + // Position: &position.Position{ + // StartLine: 3, + // EndLine: 3, + // StartPos: 20, + // EndPos: 22, + // }, // Value: "Foo", // }, // }, // }, // Stmts: []node.Node{ // &stmt.Class{ + // Position: &position.Position{ + // StartLine: 4, + // EndLine: 10, + // StartPos: 29, + // EndPos: 138, + // }, // PhpDocComment: "", // ClassName: &node.Identifier{ + // Position: &position.Position{ + // StartLine: 4, + // EndLine: 4, + // StartPos: 35, + // EndPos: 37, + // }, // Value: "Bar", // }, // Stmts: []node.Node{ // &stmt.ClassMethod{ + // Position: &position.Position{ + // StartLine: 5, + // EndLine: 9, + // StartPos: 45, + // EndPos: 133, + // }, // ReturnsRef: false, // PhpDocComment: "", // MethodName: &node.Identifier{ + // Position: &position.Position{ + // StartLine: 5, + // EndLine: 5, + // StartPos: 61, + // EndPos: 72, + // }, // Value: "FunctionName", // }, // Modifiers: []node.Node{ // &node.Identifier{ + // Position: &position.Position{ + // StartLine: 5, + // EndLine: 5, + // StartPos: 45, + // EndPos: 50, + // }, // Value: "public", // }, // }, // Params: []node.Node{ // &node.Parameter{ - // ByRef: false, + // Position: &position.Position{ + // StartLine: 5, + // EndLine: 5, + // StartPos: 74, + // EndPos: 89, + // }, // Variadic: false, + // ByRef: false, // VariableType: &name.Name{ + // Position: &position.Position{ + // StartLine: 5, + // EndLine: 5, + // StartPos: 74, + // EndPos: 77, + // }, // Parts: []node.Node{ // &name.NamePart{ + // Position: &position.Position{ + // StartLine: 5, + // EndLine: 5, + // StartPos: 74, + // EndPos: 77, + // }, // Value: "Type", // }, // }, // }, // Variable: &expr.Variable{ + // Position: &position.Position{ + // StartLine: 5, + // EndLine: 5, + // StartPos: 79, + // EndPos: 82, + // }, // VarName: &node.Identifier{ + // Position: &position.Position{ + // StartLine: 5, + // EndLine: 5, + // StartPos: 79, + // EndPos: 82, + // }, // Value: "var", // }, // }, // DefaultValue: &expr.ConstFetch{ + // Position: &position.Position{ + // StartLine: 5, + // EndLine: 5, + // StartPos: 86, + // EndPos: 89, + // }, // Constant: &name.Name{ + // Position: &position.Position{ + // StartLine: 5, + // EndLine: 5, + // StartPos: 86, + // EndPos: 89, + // }, // Parts: []node.Node{ // &name.NamePart{ + // Position: &position.Position{ + // StartLine: 5, + // EndLine: 5, + // StartPos: 86, + // EndPos: 89, + // }, // Value: "null", // }, // }, @@ -91,10 +193,34 @@ func ExampleGoDumper() { // }, // }, // Stmt: &stmt.StmtList{ + // Position: &position.Position{ + // StartLine: 6, + // EndLine: 9, + // StartPos: 96, + // EndPos: 133, + // }, // Stmts: []node.Node{ // &stmt.Expression{ + // Position: &position.Position{ + // StartLine: 8, + // EndLine: 8, + // StartPos: 123, + // EndPos: 127, + // }, // Expr: &expr.Variable{ + // Position: &position.Position{ + // StartLine: 8, + // EndLine: 8, + // StartPos: 123, + // EndPos: 126, + // }, // VarName: &node.Identifier{ + // Position: &position.Position{ + // StartLine: 8, + // EndLine: 8, + // StartPos: 123, + // EndPos: 126, + // }, // Value: "var", // }, // }, diff --git a/visitor/json_dumper.go b/visitor/json_dumper.go index 9903000..8b21755 100644 --- a/visitor/json_dumper.go +++ b/visitor/json_dumper.go @@ -15,7 +15,6 @@ import ( type JsonDumper struct { Writer io.Writer Comments parser.Comments - Positions parser.Positions NsResolver *NamespaceResolver } @@ -27,15 +26,14 @@ func (d *JsonDumper) EnterNode(w walker.Walkable) bool { fmt.Fprintf(d.Writer, "{%q:%q", "type", nodeType) - if d.Positions != nil { - if p := d.Positions[n]; p != nil { - fmt.Fprintf(d.Writer, ",%q:{%q:%d,%q:%d,%q:%d,%q:%d}", - "position", - "startPos", p.StartPos, - "endPos", p.EndPos, - "startLine", p.StartLine, - "endLine", p.EndLine) - } + if p := n.GetPosition(); p != nil { + p := n.GetPosition() + fmt.Fprintf(d.Writer, ",%q:{%q:%d,%q:%d,%q:%d,%q:%d}", + "position", + "startPos", p.StartPos, + "endPos", p.EndPos, + "startLine", p.StartLine, + "endLine", p.EndLine) } if d.NsResolver != nil { diff --git a/visitor/json_dumper_test.go b/visitor/json_dumper_test.go index b53c39f..5539668 100644 --- a/visitor/json_dumper_test.go +++ b/visitor/json_dumper_test.go @@ -33,7 +33,6 @@ func ExampleJsonDumper() { dumper := &visitor.JsonDumper{ Writer: os.Stdout, Comments: php7parser.GetComments(), - Positions: php7parser.GetPositions(), NsResolver: nsResolver, } nodes.Walk(dumper) diff --git a/visitor/pretty_json_dumper.go b/visitor/pretty_json_dumper.go index 2afb599..b81d56f 100644 --- a/visitor/pretty_json_dumper.go +++ b/visitor/pretty_json_dumper.go @@ -15,7 +15,6 @@ import ( type PrettyJsonDumper struct { Writer io.Writer Comments parser.Comments - Positions parser.Positions NsResolver *NamespaceResolver depth int isChildNode bool @@ -44,24 +43,22 @@ func (d *PrettyJsonDumper) EnterNode(w walker.Walkable) bool { d.printIndent(d.Writer) fmt.Fprintf(d.Writer, "%q: %q", "type", nodeType) - if d.Positions != nil { - if p := d.Positions[n]; p != nil { - fmt.Fprint(d.Writer, ",\n") - d.printIndent(d.Writer) - fmt.Fprintf(d.Writer, "%q: {\n", "position") - d.depth++ - d.printIndent(d.Writer) - fmt.Fprintf(d.Writer, "%q: %d,\n", "startPos", p.StartPos) - d.printIndent(d.Writer) - fmt.Fprintf(d.Writer, "%q: %d,\n", "endPos", p.EndPos) - d.printIndent(d.Writer) - fmt.Fprintf(d.Writer, "%q: %d,\n", "startLine", p.StartLine) - d.printIndent(d.Writer) - fmt.Fprintf(d.Writer, "%q: %d\n", "endLine", p.EndLine) - d.depth-- - d.printIndent(d.Writer) - fmt.Fprint(d.Writer, "}") - } + if p := n.GetPosition(); p != nil { + fmt.Fprint(d.Writer, ",\n") + d.printIndent(d.Writer) + fmt.Fprintf(d.Writer, "%q: {\n", "position") + d.depth++ + d.printIndent(d.Writer) + fmt.Fprintf(d.Writer, "%q: %d,\n", "startPos", p.StartPos) + d.printIndent(d.Writer) + fmt.Fprintf(d.Writer, "%q: %d,\n", "endPos", p.EndPos) + d.printIndent(d.Writer) + fmt.Fprintf(d.Writer, "%q: %d,\n", "startLine", p.StartLine) + d.printIndent(d.Writer) + fmt.Fprintf(d.Writer, "%q: %d\n", "endLine", p.EndLine) + d.depth-- + d.printIndent(d.Writer) + fmt.Fprint(d.Writer, "}") } if d.NsResolver != nil { diff --git a/visitor/pretty_json_dumper_test.go b/visitor/pretty_json_dumper_test.go index c77ec87..e0d263d 100644 --- a/visitor/pretty_json_dumper_test.go +++ b/visitor/pretty_json_dumper_test.go @@ -33,7 +33,6 @@ func ExamplePrettyJsonDumper() { dumper := &visitor.PrettyJsonDumper{ Writer: os.Stdout, Comments: php7parser.GetComments(), - Positions: php7parser.GetPositions(), NsResolver: nsResolver, } nodes.Walk(dumper)