Chris@13: Insertion of a nullable node Chris@13: ----- Chris@13: returnType = new Node\Name('Foo'); Chris@13: $stmts[0]->params[0]->type = new Node\Identifier('int'); Chris@13: $stmts[0]->params[1]->type = new Node\Identifier('array'); Chris@13: $stmts[0]->params[1]->default = new Expr\ConstFetch(new Node\Name('null')); Chris@13: $stmts[1]->expr->dim = new Expr\Variable('a'); Chris@13: $stmts[2]->expr->items[0]->key = new Scalar\String_('X'); Chris@13: $stmts[3]->expr->returnType = new Node\Name('Bar'); Chris@13: $stmts[4]->expr->if = new Expr\Variable('z'); Chris@13: $stmts[5]->expr->key = new Expr\Variable('k'); Chris@13: $stmts[6]->expr->value = new Expr\Variable('v'); Chris@13: $stmts[7]->num = new Scalar\LNumber(2); Chris@13: $stmts[8]->num = new Scalar\LNumber(2); Chris@13: $stmts[9]->expr = new Expr\Variable('x'); Chris@13: $stmts[10]->extends = new Node\Name\FullyQualified('Bar'); Chris@13: $stmts[10]->stmts[0]->returnType = new Node\Name('Y'); Chris@13: $stmts[10]->stmts[1]->props[0]->default = new Scalar\DNumber(42.0); Chris@13: $stmts[11]->keyVar = new Expr\Variable('z'); Chris@13: $stmts[12]->vars[0]->default = new Scalar\String_('abc'); Chris@13: $stmts[13]->finally = new Stmt\Finally_([]); Chris@13: $stmts[14]->else = new Stmt\Else_([]); Chris@13: ----- Chris@13: $value Chris@13: ]; Chris@13: Chris@13: function Chris@13: () : Bar Chris@13: {}; Chris@13: Chris@13: $x Chris@13: ? $z Chris@13: : Chris@13: $y; Chris@13: Chris@13: yield Chris@13: $k => $v ; Chris@13: yield $v ; Chris@13: Chris@13: break 2 Chris@13: ; Chris@13: continue 2 Chris@13: ; Chris@13: return $x Chris@13: ; Chris@13: Chris@13: class Chris@13: X extends \Bar Chris@13: { Chris@13: public Chris@13: function y() : Y Chris@13: {} Chris@13: Chris@13: private Chris@13: $x = 42.0 Chris@13: ; Chris@13: } Chris@13: Chris@13: foreach ( Chris@13: $x Chris@13: as Chris@13: $z => $y Chris@13: ) {} Chris@13: Chris@13: static Chris@13: $var = 'abc' Chris@13: ; Chris@13: Chris@13: try { Chris@13: } catch (X Chris@13: $y) { Chris@13: } finally { Chris@13: } Chris@13: Chris@13: if ($cond) { // Foo Chris@13: } elseif ($cond2) { // Bar Chris@13: } else { Chris@13: } Chris@13: ----- Chris@13: name = new Node\Name('Foo'); Chris@13: ----- Chris@13: