Parse a direct abstract declarator.
(parse-direct-abstract-declarator parstate) → (mv erp dirabsdeclor span new-parstate)
A direct abstract declarator must start with: (i) a parenthesized abstract declarator; or (ii) an array abstract declarator that starts with an open square bracket and ends with a closed square bracket; or (iii) a function abstract declarator, which is a parenthesized parameter type list. After one of these three possibilities, there may be zero or more array or function abstract declarators. So we have either a sequence of one or more array and function abstract declarators, or a parenthesized abstract declarator followed by a sequence of zero or more array and function abstract declarators.