176 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			176 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Insertion of a nullable node
 | |
| -----
 | |
| <?php
 | |
| 
 | |
| // TODO: The result spacing isn't always optimal. We may want to skip whitespace in some cases.
 | |
| 
 | |
| function
 | |
| foo(
 | |
| $x,
 | |
| &$y
 | |
| )
 | |
| {}
 | |
| 
 | |
| $foo
 | |
| [
 | |
| ];
 | |
| 
 | |
| [
 | |
|     $value
 | |
| ];
 | |
| 
 | |
| function
 | |
| ()
 | |
| {};
 | |
| 
 | |
| $x
 | |
| ?
 | |
| :
 | |
| $y;
 | |
| 
 | |
| yield
 | |
| $v  ;
 | |
| yield  ;
 | |
| 
 | |
| break
 | |
| ;
 | |
| continue
 | |
| ;
 | |
| return
 | |
| ;
 | |
| 
 | |
| class
 | |
| X
 | |
| {
 | |
|     public
 | |
|     function y()
 | |
|     {}
 | |
| 
 | |
|     private
 | |
|         $x
 | |
|     ;
 | |
| }
 | |
| 
 | |
| foreach (
 | |
|     $x
 | |
|     as
 | |
|     $y
 | |
| ) {}
 | |
| 
 | |
| static
 | |
| $var
 | |
| ;
 | |
| 
 | |
| try {
 | |
| } catch (X
 | |
| $y) {
 | |
| }
 | |
| 
 | |
| if ($cond) { // Foo
 | |
| } elseif ($cond2) { // Bar
 | |
| }
 | |
| -----
 | |
| $stmts[0]->returnType = new Node\Name('Foo');
 | |
| $stmts[0]->params[0]->type = new Node\Identifier('int');
 | |
| $stmts[0]->params[1]->type = new Node\Identifier('array');
 | |
| $stmts[0]->params[1]->default = new Expr\ConstFetch(new Node\Name('null'));
 | |
| $stmts[1]->expr->dim = new Expr\Variable('a');
 | |
| $stmts[2]->expr->items[0]->key = new Scalar\String_('X');
 | |
| $stmts[3]->expr->returnType = new Node\Name('Bar');
 | |
| $stmts[4]->expr->if = new Expr\Variable('z');
 | |
| $stmts[5]->expr->key = new Expr\Variable('k');
 | |
| $stmts[6]->expr->value = new Expr\Variable('v');
 | |
| $stmts[7]->num = new Scalar\LNumber(2);
 | |
| $stmts[8]->num = new Scalar\LNumber(2);
 | |
| $stmts[9]->expr = new Expr\Variable('x');
 | |
| $stmts[10]->extends = new Node\Name\FullyQualified('Bar');
 | |
| $stmts[10]->stmts[0]->returnType = new Node\Name('Y');
 | |
| $stmts[10]->stmts[1]->props[0]->default = new Scalar\DNumber(42.0);
 | |
| $stmts[11]->keyVar = new Expr\Variable('z');
 | |
| $stmts[12]->vars[0]->default = new Scalar\String_('abc');
 | |
| $stmts[13]->finally = new Stmt\Finally_([]);
 | |
| $stmts[14]->else = new Stmt\Else_([]);
 | |
| -----
 | |
| <?php
 | |
| 
 | |
| // TODO: The result spacing isn't always optimal. We may want to skip whitespace in some cases.
 | |
| 
 | |
| function
 | |
| foo(
 | |
| int $x,
 | |
| array &$y = null
 | |
| ) : Foo
 | |
| {}
 | |
| 
 | |
| $foo
 | |
| [$a
 | |
| ];
 | |
| 
 | |
| [
 | |
|     'X' => $value
 | |
| ];
 | |
| 
 | |
| function
 | |
| () : Bar
 | |
| {};
 | |
| 
 | |
| $x
 | |
| ? $z
 | |
| :
 | |
| $y;
 | |
| 
 | |
| yield
 | |
| $k => $v  ;
 | |
| yield $v  ;
 | |
| 
 | |
| break 2
 | |
| ;
 | |
| continue 2
 | |
| ;
 | |
| return $x
 | |
| ;
 | |
| 
 | |
| class
 | |
| X extends \Bar
 | |
| {
 | |
|     public
 | |
|     function y() : Y
 | |
|     {}
 | |
| 
 | |
|     private
 | |
|         $x = 42.0
 | |
|     ;
 | |
| }
 | |
| 
 | |
| foreach (
 | |
|     $x
 | |
|     as
 | |
|     $z => $y
 | |
| ) {}
 | |
| 
 | |
| static
 | |
| $var = 'abc'
 | |
| ;
 | |
| 
 | |
| try {
 | |
| } catch (X
 | |
| $y) {
 | |
| } finally {
 | |
| }
 | |
| 
 | |
| if ($cond) { // Foo
 | |
| } elseif ($cond2) { // Bar
 | |
| } else {
 | |
| }
 | |
| -----
 | |
| <?php
 | |
| 
 | |
| namespace
 | |
| { echo 42; }
 | |
| -----
 | |
| $stmts[0]->name = new Node\Name('Foo');
 | |
| -----
 | |
| <?php
 | |
| 
 | |
| namespace Foo
 | |
| { echo 42; } | 
