<primary-declarator>[k] is already a recursive definition, because of
the parentheses. Besides, if <declarator-suffix> was going to be shown
as repeatable, it should have a `+' rather than a `*', otherwise the
rule is directly recursive.
<primary-declarator>$[k]$ ::= $k$
\alt "(" <primary-declarator>$[k]$ ")"
<primary-declarator>$[k]$ ::= $k$
\alt "(" <primary-declarator>$[k]$ ")"
-\alt <primary-declarator>$[k]$ @<declarator-suffix>^*
+\alt <primary-declarator>$[k]$ @<declarator-suffix>
<pointer> ::= "*" @<qualifier>^*
<pointer> ::= "*" @<qualifier>^*