• Tom Lane's avatar
    Remove precedence labeling of keywords TRUE, FALSE, UNKNOWN, and ZONE. · 12b71645
    Tom Lane authored
    These were labeled with precedences just to avoid attaching explicit
    precedences to the productions in which they were the last terminal symbol.
    Since a terminal symbol precedence marking can affect many other things
    too, it seems like better practice to attach precedence labels to the
    productions, and not mark the terminal symbols.
    
    Ideally we'd also remove the precedence attached to NULL_P, but it turns
    out that we are actually depending on that having a precedence higher than
    POSTFIXOP, else we get a shift/reduce conflict for postfix operators in
    b_expr.  (Which more or less proves my point about these markings having a
    high risk of unexpected consequences.)  For the moment, move NULL_P into
    the set of keywords grouped with IDENT, so that at least it will act
    similarly to non-keywords; and document the interaction.
    12b71645
gram.y 331 KB