Chris@0: Assignments Chris@0: ----- Chris@0: >= $b; Chris@0: $a **= $b; Chris@17: $a ??= $b; Chris@0: Chris@0: // chained assign Chris@0: $a = $b *= $c **= $d; Chris@0: Chris@0: // by ref assign Chris@0: $a =& $b; Chris@0: Chris@0: // list() assign Chris@0: list($a) = $b; Chris@0: list($a, , $b) = $c; Chris@0: list($a, list(, $c), $d) = $e; Chris@0: Chris@0: // inc/dec Chris@0: ++$a; Chris@0: $a++; Chris@0: --$a; Chris@0: $a--; Chris@0: ----- Chris@0: array( Chris@13: 0: Stmt_Expression( Chris@13: expr: Expr_Assign( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: comments: array( Chris@13: 0: // simple assign Chris@13: ) Chris@13: ) Chris@13: expr: Expr_Variable( Chris@13: name: b Chris@13: ) Chris@0: comments: array( Chris@0: 0: // simple assign Chris@0: ) Chris@0: ) Chris@0: comments: array( Chris@0: 0: // simple assign Chris@0: ) Chris@0: ) Chris@13: 1: Stmt_Expression( Chris@13: expr: Expr_AssignOp_BitwiseAnd( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: comments: array( Chris@13: 0: // combined assign Chris@13: ) Chris@13: ) Chris@13: expr: Expr_Variable( Chris@13: name: b Chris@13: ) Chris@0: comments: array( Chris@0: 0: // combined assign Chris@0: ) Chris@0: ) Chris@0: comments: array( Chris@0: 0: // combined assign Chris@0: ) Chris@0: ) Chris@13: 2: Stmt_Expression( Chris@13: expr: Expr_AssignOp_BitwiseOr( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@13: expr: Expr_Variable( Chris@13: name: b Chris@13: ) Chris@0: ) Chris@0: ) Chris@13: 3: Stmt_Expression( Chris@13: expr: Expr_AssignOp_BitwiseXor( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@13: expr: Expr_Variable( Chris@13: name: b Chris@13: ) Chris@0: ) Chris@0: ) Chris@13: 4: Stmt_Expression( Chris@13: expr: Expr_AssignOp_Concat( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@13: expr: Expr_Variable( Chris@13: name: b Chris@13: ) Chris@0: ) Chris@0: ) Chris@13: 5: Stmt_Expression( Chris@13: expr: Expr_AssignOp_Div( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@13: expr: Expr_Variable( Chris@13: name: b Chris@13: ) Chris@0: ) Chris@0: ) Chris@13: 6: Stmt_Expression( Chris@13: expr: Expr_AssignOp_Minus( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@13: expr: Expr_Variable( Chris@13: name: b Chris@13: ) Chris@0: ) Chris@0: ) Chris@13: 7: Stmt_Expression( Chris@13: expr: Expr_AssignOp_Mod( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@13: expr: Expr_Variable( Chris@13: name: b Chris@13: ) Chris@0: ) Chris@0: ) Chris@13: 8: Stmt_Expression( Chris@13: expr: Expr_AssignOp_Mul( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@13: expr: Expr_Variable( Chris@13: name: b Chris@13: ) Chris@0: ) Chris@0: ) Chris@13: 9: Stmt_Expression( Chris@13: expr: Expr_AssignOp_Plus( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@13: expr: Expr_Variable( Chris@13: name: b Chris@13: ) Chris@0: ) Chris@0: ) Chris@13: 10: Stmt_Expression( Chris@13: expr: Expr_AssignOp_ShiftLeft( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@13: expr: Expr_Variable( Chris@13: name: b Chris@13: ) Chris@0: ) Chris@0: ) Chris@13: 11: Stmt_Expression( Chris@13: expr: Expr_AssignOp_ShiftRight( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@13: expr: Expr_Variable( Chris@13: name: b Chris@13: ) Chris@0: ) Chris@0: ) Chris@13: 12: Stmt_Expression( Chris@13: expr: Expr_AssignOp_Pow( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@13: expr: Expr_Variable( Chris@13: name: b Chris@13: ) Chris@0: ) Chris@0: ) Chris@13: 13: Stmt_Expression( Chris@17: expr: Expr_AssignOp_Coalesce( Chris@17: var: Expr_Variable( Chris@17: name: a Chris@17: ) Chris@17: expr: Expr_Variable( Chris@17: name: b Chris@17: ) Chris@17: ) Chris@17: ) Chris@17: 14: Stmt_Expression( Chris@13: expr: Expr_Assign( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: comments: array( Chris@13: 0: // chained assign Chris@13: ) Chris@13: ) Chris@13: expr: Expr_AssignOp_Mul( Chris@13: var: Expr_Variable( Chris@13: name: b Chris@13: ) Chris@13: expr: Expr_AssignOp_Pow( Chris@13: var: Expr_Variable( Chris@13: name: c Chris@13: ) Chris@13: expr: Expr_Variable( Chris@13: name: d Chris@13: ) Chris@13: ) Chris@13: ) Chris@0: comments: array( Chris@0: 0: // chained assign Chris@0: ) Chris@0: ) Chris@0: comments: array( Chris@0: 0: // chained assign Chris@0: ) Chris@0: ) Chris@17: 15: Stmt_Expression( Chris@13: expr: Expr_AssignRef( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: comments: array( Chris@13: 0: // by ref assign Chris@13: ) Chris@13: ) Chris@13: expr: Expr_Variable( Chris@13: name: b Chris@13: ) Chris@0: comments: array( Chris@0: 0: // by ref assign Chris@0: ) Chris@0: ) Chris@0: comments: array( Chris@0: 0: // by ref assign Chris@0: ) Chris@0: ) Chris@17: 16: Stmt_Expression( Chris@13: expr: Expr_Assign( Chris@13: var: Expr_List( Chris@13: items: array( Chris@13: 0: Expr_ArrayItem( Chris@13: key: null Chris@13: value: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@13: byRef: false Chris@0: ) Chris@0: ) Chris@13: comments: array( Chris@13: 0: // list() assign Chris@13: ) Chris@13: ) Chris@13: expr: Expr_Variable( Chris@13: name: b Chris@0: ) Chris@0: comments: array( Chris@0: 0: // list() assign Chris@0: ) Chris@0: ) Chris@0: comments: array( Chris@0: 0: // list() assign Chris@0: ) Chris@0: ) Chris@17: 17: Stmt_Expression( Chris@13: expr: Expr_Assign( Chris@13: var: Expr_List( Chris@13: items: array( Chris@13: 0: Expr_ArrayItem( Chris@13: key: null Chris@13: value: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@13: byRef: false Chris@0: ) Chris@13: 1: null Chris@13: 2: Expr_ArrayItem( Chris@13: key: null Chris@13: value: Expr_Variable( Chris@13: name: b Chris@13: ) Chris@13: byRef: false Chris@0: ) Chris@0: ) Chris@0: ) Chris@13: expr: Expr_Variable( Chris@13: name: c Chris@13: ) Chris@0: ) Chris@0: ) Chris@17: 18: Stmt_Expression( Chris@13: expr: Expr_Assign( Chris@13: var: Expr_List( Chris@13: items: array( Chris@13: 0: Expr_ArrayItem( Chris@13: key: null Chris@13: value: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@13: byRef: false Chris@0: ) Chris@13: 1: Expr_ArrayItem( Chris@13: key: null Chris@13: value: Expr_List( Chris@13: items: array( Chris@13: 0: null Chris@13: 1: Expr_ArrayItem( Chris@13: key: null Chris@13: value: Expr_Variable( Chris@13: name: c Chris@13: ) Chris@13: byRef: false Chris@0: ) Chris@0: ) Chris@0: ) Chris@13: byRef: false Chris@0: ) Chris@13: 2: Expr_ArrayItem( Chris@13: key: null Chris@13: value: Expr_Variable( Chris@13: name: d Chris@13: ) Chris@13: byRef: false Chris@0: ) Chris@0: ) Chris@0: ) Chris@13: expr: Expr_Variable( Chris@13: name: e Chris@13: ) Chris@0: ) Chris@0: ) Chris@17: 19: Stmt_Expression( Chris@13: expr: Expr_PreInc( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@13: comments: array( Chris@13: 0: // inc/dec Chris@13: ) Chris@0: ) Chris@0: comments: array( Chris@0: 0: // inc/dec Chris@0: ) Chris@0: ) Chris@17: 20: Stmt_Expression( Chris@13: expr: Expr_PostInc( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@0: ) Chris@0: ) Chris@17: 21: Stmt_Expression( Chris@13: expr: Expr_PreDec( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@0: ) Chris@0: ) Chris@17: 22: Stmt_Expression( Chris@13: expr: Expr_PostDec( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@0: ) Chris@0: ) Chris@0: )