Chris@0: Object access Chris@0: ----- Chris@0: b; Chris@0: $a->b['c']; Chris@0: $a->b{'c'}; Chris@0: Chris@0: // method call variations Chris@0: $a->b(); Chris@0: $a->{'b'}(); Chris@0: $a->$b(); Chris@0: $a->$b['c'](); Chris@0: Chris@0: // array dereferencing Chris@0: $a->b()['c']; Chris@0: $a->b(){'c'}; // invalid PHP: drop Support? Chris@0: ----- Chris@0: !!php5 Chris@0: array( Chris@13: 0: Stmt_Expression( Chris@13: expr: Expr_PropertyFetch( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: comments: array( Chris@13: 0: // property fetch variations Chris@13: ) Chris@13: ) Chris@13: name: Identifier( Chris@13: name: b Chris@13: ) Chris@0: comments: array( Chris@0: 0: // property fetch variations Chris@0: ) Chris@0: ) Chris@0: comments: array( Chris@0: 0: // property fetch variations Chris@0: ) Chris@0: ) Chris@13: 1: Stmt_Expression( Chris@13: expr: Expr_ArrayDimFetch( Chris@13: var: Expr_PropertyFetch( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@13: name: Identifier( Chris@13: name: b Chris@13: ) Chris@13: ) Chris@13: dim: Scalar_String( Chris@13: value: c Chris@13: ) Chris@13: ) Chris@13: ) Chris@13: 2: Stmt_Expression( Chris@13: expr: Expr_ArrayDimFetch( Chris@13: var: Expr_PropertyFetch( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@13: name: Identifier( Chris@13: name: b Chris@13: ) Chris@13: ) Chris@13: dim: Scalar_String( Chris@13: value: c Chris@13: ) Chris@13: ) Chris@13: ) Chris@13: 3: Stmt_Expression( Chris@13: expr: Expr_MethodCall( Chris@0: var: Expr_Variable( Chris@0: name: a Chris@13: comments: array( Chris@13: 0: // method call variations Chris@13: ) Chris@0: ) Chris@13: name: Identifier( Chris@13: name: b Chris@0: ) Chris@13: args: array( Chris@13: ) Chris@0: comments: array( Chris@0: 0: // method call variations Chris@0: ) Chris@0: ) Chris@0: comments: array( Chris@0: 0: // method call variations Chris@0: ) Chris@0: ) Chris@13: 4: Stmt_Expression( Chris@13: expr: Expr_MethodCall( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@13: name: Scalar_String( Chris@13: value: b Chris@13: ) Chris@13: args: array( Chris@13: ) Chris@0: ) Chris@0: ) Chris@13: 5: Stmt_Expression( Chris@13: expr: Expr_MethodCall( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@13: name: Expr_Variable( Chris@13: name: b Chris@13: ) Chris@13: args: array( Chris@13: ) Chris@0: ) Chris@0: ) Chris@13: 6: Stmt_Expression( Chris@13: expr: Expr_MethodCall( Chris@0: var: Expr_Variable( Chris@13: name: a Chris@0: ) Chris@13: name: Expr_ArrayDimFetch( Chris@13: var: Expr_Variable( Chris@13: name: b Chris@13: ) Chris@13: dim: Scalar_String( Chris@13: value: c Chris@13: ) Chris@13: ) Chris@13: args: array( Chris@0: ) Chris@0: ) Chris@0: ) Chris@13: 7: Stmt_Expression( Chris@13: expr: Expr_ArrayDimFetch( Chris@13: var: Expr_MethodCall( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: comments: array( Chris@13: 0: // array dereferencing Chris@13: ) Chris@13: ) Chris@13: name: Identifier( Chris@13: name: b Chris@13: ) Chris@13: args: array( Chris@13: ) Chris@0: comments: array( Chris@0: 0: // array dereferencing Chris@0: ) Chris@0: ) Chris@13: dim: Scalar_String( Chris@13: value: c Chris@0: ) Chris@0: comments: array( Chris@0: 0: // array dereferencing Chris@0: ) Chris@0: ) Chris@0: comments: array( Chris@0: 0: // array dereferencing Chris@0: ) Chris@0: ) Chris@13: 8: Stmt_Expression( Chris@13: expr: Expr_ArrayDimFetch( Chris@13: var: Expr_MethodCall( Chris@13: var: Expr_Variable( Chris@13: name: a Chris@13: ) Chris@13: name: Identifier( Chris@13: name: b Chris@13: ) Chris@13: args: array( Chris@13: ) Chris@0: ) Chris@13: dim: Scalar_String( Chris@13: value: c Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 9: Stmt_Nop( Chris@0: comments: array( Chris@0: 0: // invalid PHP: drop Support? Chris@0: ) Chris@0: ) Chris@0: )