Need Help with Troublesome Production



Can anyone please help me with this production. I cant figure out how I
need to change it to get past the warning:

Warning: Choice conflict in (...)+ construct at line 2128, column 3.
Expansion nested within construct and expansion following
construct
have common prefixes, one of which is: "("
Consider using a lookahead of 2 or more for nested expansion.

void direct_declarator():
{}
{
(
LOOKAHEAD(2) <LPARENTHESIS> declarator() <RPARENTHESIS>
|
declarator_id()
)
( /* !!! THIS IS LINE 2128 !!! */
<LPARENTHESIS> parameter_declaration_clause() // <RPARENTHESIS> [
cv_qualifier_seq() ] [ exception_specification() ]
|
<LSQUAREBRACKET> // [ constant_expression() ] <RSQUAREBRACKET>
)+
}

As you can see I have commented out much of the second block to try
simplify but the results are the same. If I remove the second option
from the second block "| <LSQUAREBRACKET> // [ con ..." it passes
through okay.

Have tried sticking LOOKAHEADS everywhere but to no avail.

Thanks.

.