Insertion into list nodes ----- <?php $foo; $bar; ----- $stmts[] = new Stmt\Expression(new Expr\Variable('baz')); ----- <?php $foo; $bar; $baz; ----- <?php function test() { $foo; $bar; } ----- $stmts[0]->stmts[] = new Stmt\Expression(new Expr\Variable('baz')); ----- <?php function test() { $foo; $bar; $baz; } ----- <?php function test(Foo $param1) {} ----- $stmts[0]->params[] = new Node\Param(new Expr\Variable('param2')); ----- <?php function test(Foo $param1, $param2) {} ----- <?php try { /* stuff */ } catch (Foo $x) {} ----- $stmts[0]->catches[0]->types[] = new Node\Name('Bar'); ----- <?php try { /* stuff */ } catch (Foo|Bar $x) {} ----- <?php function test(Foo $param1) {} ----- array_unshift($stmts[0]->params, new Node\Param(new Expr\Variable('param0'))); ----- <?php function test($param0, Foo $param1) {} ----- <?php function test() {} ----- $stmts[0]->params[] = new Node\Param(new Expr\Variable('param0')); /* Insertion into empty list not handled yet */ ----- <?php function test($param0) { } ----- <?php if ($cond) { } elseif ($cond2) { } ----- $stmts[0]->elseifs[] = new Stmt\ElseIf_(new Expr\Variable('cond3'), []); ----- <?php if ($cond) { } elseif ($cond2) { } elseif ($cond3) { } ----- <?php try { } catch (Foo $foo) { } ----- $stmts[0]->catches[] = new Stmt\Catch_([new Node\Name('Bar')], new Expr\Variable('bar'), []); ----- <?php try { } catch (Foo $foo) { } catch (Bar $bar) { } ----- <?php $foo; $bar; ----- $node = new Stmt\Expression(new Expr\Variable('baz')); $node->setAttribute('comments', [new Comment('// Test')]); $stmts[] = $node; ----- <?php $foo; $bar; // Test $baz; ----- <?php function test() { $foo; $bar; } ----- $node = new Stmt\Expression(new Expr\Variable('baz')); $node->setAttribute('comments', [new Comment('// Test'), new Comment('// Test 2')]); $stmts[0]->stmts[] = $node; ----- <?php function test() { $foo; $bar; // Test // Test 2 $baz; } ----- <?php namespace Foo; ----- $stmts[0]->name->parts[0] = 'Xyz'; ----- <?php namespace Xyz; ----- <?php function test() { $foo; $bar; } ----- $node = new Stmt\Expression(new Expr\Variable('baz')); array_unshift($stmts[0]->stmts, $node); ----- <?php function test() { $baz; $foo; $bar; } ----- <?php function test() { $foo; $bar; } ----- $node = new Stmt\Expression(new Expr\Variable('baz')); $node->setAttribute('comments', [new Comment('// Test')]); array_unshift($stmts[0]->stmts, $node); ----- <?php function test() { // Test $baz; $foo; $bar; } ----- <?php function test() { // Foo bar $foo; $bar; } ----- $node = new Stmt\Expression(new Expr\Variable('baz')); $node->setAttribute('comments', [new Comment('// Test')]); array_unshift($stmts[0]->stmts, $node); ----- <?php function test() { // Test $baz; // Foo bar $foo; $bar; } ----- <?php function test() { // Foo bar $foo; $bar; } ----- $node = new Stmt\Expression(new Expr\Variable('baz')); $node->setAttribute('comments', [new Comment('// Test')]); array_unshift($stmts[0]->stmts, $node); $stmts[0]->stmts[1]->setAttribute('comments', [new Comment('// Bar foo')]); ----- <?php function test() { // Test $baz; // Bar foo $foo; $bar; } ----- <?php function test() { // Foo bar $foo; $bar; } ----- $node = new Stmt\Expression(new Expr\Variable('baz')); $node->setAttribute('comments', [new Comment('// Test')]); array_unshift($stmts[0]->stmts, $node); $stmts[0]->stmts[1]->setAttribute('comments', []); ----- <?php function test() { // Test $baz; $foo; $bar; } ----- <?php function test() { // Foo bar $foo; $bar; } ----- array_unshift( $stmts[0]->stmts, new Stmt\Expression(new Expr\Variable('a')), new Stmt\Expression(new Expr\Variable('b'))); ----- <?php function test() { $a; $b; // Foo bar $foo; $bar; } ----- <?php function test() {} ----- /* Insertion into empty list not handled yet */ $stmts[0]->stmts = [ new Stmt\Expression(new Expr\Variable('a')), new Stmt\Expression(new Expr\Variable('b')), ]; ----- <?php function test() { $a; $b; } ----- <?php $array = [ 1, 2, 3, ]; ----- array_unshift($stmts[0]->expr->expr->items, new Expr\ArrayItem(new Scalar\LNumber(42))); $stmts[0]->expr->expr->items[] = new Expr\ArrayItem(new Scalar\LNumber(24)); ----- <?php $array = [ 42, 1, 2, 3, 24, ]; ----- <?php $array = [ 1, 2, 3, ]; ----- $stmts[0]->expr->expr->items[] = new Expr\ArrayItem(new Scalar\LNumber(24)); ----- <?php $array = [ 1, 2, 3, 24, ];