AccessObj : Expression DOT INDENTIFIER
              | Expression LBRACKET Expression RBRACKET
              | Expression LBRACKET RBRACKET

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])