Class ArrayAccessExprContext

  • All Implemented Interfaces:
    Context

    public class ArrayAccessExprContext
    extends ExpressionContext<ArrayAccessExpr>

    Required to prevent recursive access to the "parent node" (not necessarily the same as the "parent context").

    Consider, for example, this code where the cursor is currently at the node of type ArrayAccessExpr:

    
         var1.perPriority[index].recovered
         ^^^^^^^^^^^^^^^^^^^^^^^             - ArrayAccessExpr
     

    The AST for this snippet:

    
                                FieldAccessExpr                       // This FieldAccessExpr is accessing the field `recovered`
                                 /           \
                   **ArrayAccessExpr**      SimpleName(recovered)
                      /          \
              FieldAccessExpr  NameExpr(index)                        // This FieldAccessExpr is accessing the field `perPriority`
                /         \
        NameExpr(var1)   SimpleName (perPriority)
     

    In this example:

    • The parent node for ArrayAccessExpr is FieldAccessExpr (variable1.perPriority[index].recovered).
      
           // "Parent Node" of the ArrayAccessExpr
           var.perPriority[index].recovered
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   - FieldAccessExpr
           ^^^^^^^^^^^^^^^^^^^^^^             - ArrayAccessExpr
                                  ^^^^^^^^^   - SimpleName
       
    • The parent context is the FieldAccessExpr to the left of the outer array-access, which is actually a child node.
      
      
           // "Parent Context" of the ArrayAccessExpr
           var1.perPriority[index].recovered
           ^^^^^^^^^^^^^^^^^^^^^^^             - ArrayAccessExpr
           ^^^^^^^^^^^^^^^^                    - FieldAccessExpr
                            ^^^^^              - NameExpr
       
    Author:
    Roger Howell