code: def p_AccessObj(p):
      '''
      AccessObj : Expression DOT INDENTIFIER
                | Expression LBRACKET Expression RBRACKET
                | Expression LBRACKET RBRACKET
      '''
      if len(p) <= 4:
          if p[2] == '.':
              p[0] = AccessObj(p[1], p[3], None)
          else:
              p[0] = AccessObj(p[1], None, None)
      else:
          p[0] = AccessObj(p[1], None, p[3]f p_AccessObj(p):
      '''
      AccessObj : Expression DOT INDENTIFIER
                | Expression LBRACKET Expression RBRACKET
                | Expression LBRACKET RBRACKET
      '''
      if len(p) <= 4:
          if p[2] == '.':
              p[0] = AccessObj(p[1], p[3], None)
          else:
              p[0] = AccessObj(p[1], None, None)
      else:
          p[0] = AccessObj(p[1], None, p[3])
docs: AccessObj : Expression DOT INDENTIFIER
                | Expression LBRACKET Expression RBRACKET
                | Expression LBRACKET RBRACKET