Table 3: A grammar for parameter-declaration using optional, non-empty abstract declarators

parameter-declaration =
    decl-specifier-seq
        [ declarator | abstract-declarator ] .

abstract-declarator =
    direct-abstract-declarator |
    ptr-operator [ abstract-declarator ] .

direct-abstract-declarator =
    "(" abstract-declarator ")" |
    [ direct-abstract-declarator ]
        ( array-suffix | function-suffix ) .