Table 3: A grammar for parameter-declaration using left-recursion


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

declarator =
    direct-declarator |
    ptr-operator declarator .

direct-declarator =
    declarator-id |
    "(" declarator ")" |
    direct-declarator ( array-suffix | function-suffix ) .

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

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