"Rod Taylor" <rbt(at)zort(dot)ca> writes:
> Changing ColLabel to ColId seems to have corrected the problem but now
> I'm completely confused as to how it works.
Well, you don't really need to know anything about the parsing algorithm
to see that the way you had it was ambiguous. Consider input
DEFAULT = foo
If DEFAULT can be a ColLabel, then there are two valid parsings of
this input: one in which foo is reduced to c_expr and one in which
it's reduced to a typename. That ambiguity is what creates the
shift/reduce conflict.
BTW, I would recommend b_expr not c_expr as the expression nonterminal
to use, if possible. (Actually, I suspect a_expr would work, in which
case you might as well use it.)
regards, tom lane