On 2023-11-28 Tu 10:27, Tom Lane wrote:
> Andrew Dunstan <andrew@dunslane.net> writes:
>> Looks good. Perhaps the comments above the UNBOUNDED precedence setting
>> (esp. the first paragraph) need strengthening, with a stern injunction
>> to avoid different precedence for non-reserved keywords if at all possible.
> OK. How about rewriting that first para like this?
>
> * Sometimes it is necessary to assign precedence to keywords that are not
> * really part of the operator hierarchy, in order to resolve grammar
> * ambiguities. It's best to avoid doing so whenever possible, because such
> * assignments have global effect and may hide ambiguities besides the one
> * you intended to solve. (Attaching a precedence to a single rule with
> * %prec is far safer and should be preferred.) If you must give precedence
> * to a new keyword, try very hard to give it the same precedence as IDENT.
> * If the keyword has IDENT's precedence then it clearly acts the same as
> * non-keywords and other similar keywords, thus reducing the risk of
> * unexpected precedence effects.
> *
> * We used to need to assign IDENT an explicit precedence just less than Op,
> * to support target_el without AS. While that's not really necessary since
> * we removed postfix operators, we continue to do so because it provides a
> * reference point for a precedence level that we can assign to other
> * keywords that lack a natural precedence level.
>
>
LGTM. Thanks.
cheers
andrew
--
Andrew Dunstan
EDB: https://www.enterprisedb.com