'direct_declarator   : direct_declarator LBRACKET type_qualifier_list_opt assignment_expression_opt RBRACKET'

def p_direct_declarator_3(self, p):

    quals = ((p[3] if (len(p) > 5) else []) or [])
    arr = c_ast.ArrayDecl(type=None, dim=(p[4] if (len(p) > 5) else p[3]), dim_quals=quals, coord=p[1].coord)
    p[0] = self._type_modify_decl(decl=p[1], modifier=arr)
