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@0: 0: Expr_PropertyFetch( Chris@0: var: Expr_Variable( Chris@0: name: a Chris@0: comments: array( Chris@0: 0: // property fetch variations Chris@0: ) Chris@0: ) Chris@0: name: b Chris@0: comments: array( Chris@0: 0: // property fetch variations Chris@0: ) Chris@0: ) Chris@0: 1: Expr_ArrayDimFetch( Chris@0: var: Expr_PropertyFetch( Chris@0: var: Expr_Variable( Chris@0: name: a Chris@0: ) Chris@0: name: b Chris@0: ) Chris@0: dim: Scalar_String( Chris@0: value: c Chris@0: ) Chris@0: ) Chris@0: 2: Expr_ArrayDimFetch( Chris@0: var: Expr_PropertyFetch( Chris@0: var: Expr_Variable( Chris@0: name: a Chris@0: ) Chris@0: name: b Chris@0: ) Chris@0: dim: Scalar_String( Chris@0: value: c Chris@0: ) Chris@0: ) Chris@0: 3: Expr_MethodCall( Chris@0: var: Expr_Variable( Chris@0: name: a Chris@0: comments: array( Chris@0: 0: // method call variations Chris@0: ) Chris@0: ) Chris@0: name: b Chris@0: args: array( Chris@0: ) Chris@0: comments: array( Chris@0: 0: // method call variations Chris@0: ) Chris@0: ) Chris@0: 4: Expr_MethodCall( Chris@0: var: Expr_Variable( Chris@0: name: a Chris@0: ) Chris@0: name: Scalar_String( Chris@0: value: b Chris@0: ) Chris@0: args: array( Chris@0: ) Chris@0: ) Chris@0: 5: Expr_MethodCall( Chris@0: var: Expr_Variable( Chris@0: name: a Chris@0: ) Chris@0: name: Expr_Variable( Chris@0: name: b Chris@0: ) Chris@0: args: array( Chris@0: ) Chris@0: ) Chris@0: 6: Expr_MethodCall( Chris@0: var: Expr_Variable( Chris@0: name: a Chris@0: ) Chris@0: name: Expr_ArrayDimFetch( Chris@0: var: Expr_Variable( Chris@0: name: b Chris@0: ) Chris@0: dim: Scalar_String( Chris@0: value: c Chris@0: ) Chris@0: ) Chris@0: args: array( Chris@0: ) Chris@0: ) Chris@0: 7: Expr_ArrayDimFetch( Chris@0: var: Expr_MethodCall( Chris@0: var: Expr_Variable( Chris@0: name: a Chris@0: comments: array( Chris@0: 0: // array dereferencing Chris@0: ) Chris@0: ) Chris@0: name: b Chris@0: args: array( Chris@0: ) Chris@0: comments: array( Chris@0: 0: // array dereferencing Chris@0: ) Chris@0: ) Chris@0: dim: Scalar_String( Chris@0: value: c Chris@0: ) Chris@0: comments: array( Chris@0: 0: // array dereferencing Chris@0: ) Chris@0: ) Chris@0: 8: Expr_ArrayDimFetch( Chris@0: var: Expr_MethodCall( Chris@0: var: Expr_Variable( Chris@0: name: a Chris@0: ) Chris@0: name: b Chris@0: args: array( Chris@0: ) Chris@0: ) Chris@0: dim: Scalar_String( Chris@0: value: c 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: )