The ANSI C grammar from -link- give me the following rules for array declarations:
(1) | direct_declarator \'[\' type_qualifier_list assignment_expression \']\'
I hope you are not trying to learn C grammar from a yacc specification!? The link you posted appears to be based on the ISO C99 draft. The relevant section is 6.7.5.2. The wording is arcane (but less so than the yacc syntax perhaps!)