Choose a more suitable example for the operator precedence mis-parsing

example.
This commit is contained in:
Peter Eisentraut 2001-02-24 18:09:51 +00:00
parent 2db9d5e53a
commit 3460181c3c

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/syntax.sgml,v 1.39 2001/02/10 07:08:44 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/syntax.sgml,v 1.40 2001/02/24 18:09:51 petere Exp $
--> -->
<chapter id="sql-syntax"> <chapter id="sql-syntax">
@ -905,17 +905,17 @@ sqrt(2)
you will sometimes need to add parentheses when using combinations you will sometimes need to add parentheses when using combinations
of binary and unary operators. For instance of binary and unary operators. For instance
<programlisting> <programlisting>
SELECT 5 ! ~ 6; SELECT 5 ! + 6;
</programlisting> </programlisting>
will be parsed as will be parsed as
<programlisting> <programlisting>
SELECT 5 ! (~ 6); SELECT 5 ! (+ 6);
</programlisting> </programlisting>
because the parser has no idea --- until it's too late --- that because the parser has no idea -- until it is too late -- that
<token>!</token> is defined as a postfix operator not an infix one. <token>!</token> is defined as a postfix operator, not an infix one.
To get the desired behavior in this case, you must write To get the desired behavior in this case, you must write
<programlisting> <programlisting>
SELECT (5 !) ~ 6; SELECT (5 !) + 6;
</programlisting> </programlisting>
This is the price one pays for extensibility. This is the price one pays for extensibility.
</para> </para>