Fix SF bug #1061770: Manual typesets bit-shift operators as guillemet

This commit is contained in:
Fred Drake 2004-11-11 06:14:05 +00:00
parent c6864832d7
commit 2269d86598
5 changed files with 13 additions and 7 deletions

View File

@ -318,8 +318,9 @@ priority (operations in the same box have the same priority):
\lineiii{\var{x} | \var{y}}{bitwise \dfn{or} of \var{x} and \var{y}}{}
\lineiii{\var{x} \^{} \var{y}}{bitwise \dfn{exclusive or} of \var{x} and \var{y}}{}
\lineiii{\var{x} \&{} \var{y}}{bitwise \dfn{and} of \var{x} and \var{y}}{}
\lineiii{\var{x} << \var{n}}{\var{x} shifted left by \var{n} bits}{(1), (2)}
\lineiii{\var{x} >> \var{n}}{\var{x} shifted right by \var{n} bits}{(1), (3)}
% The empty groups below prevent conversion to guillemets.
\lineiii{\var{x} <{}< \var{n}}{\var{x} shifted left by \var{n} bits}{(1), (2)}
\lineiii{\var{x} >{}> \var{n}}{\var{x} shifted right by \var{n} bits}{(1), (3)}
\hline
\lineiii{\~\var{x}}{the bits of \var{x} inverted}{}
\end{tableiii}

View File

@ -802,9 +802,10 @@ The shifting operations have lower priority than the arithmetic
operations:
\begin{productionlist}
% The empty groups below prevent conversion to guillemets.
\production{shift_expr}
{\token{a_expr}
| \token{shift_expr} ( "<<" | ">>" ) \token{a_expr}}
| \token{shift_expr} ( "<{}<" | ">{}>" ) \token{a_expr}}
\end{productionlist}
These operators accept plain or long integers as arguments. The

View File

@ -275,7 +275,8 @@ operation and an assignment statement:
{\token{target} \token{augop} \token{expression_list}}
\production{augop}
{"+=" | "-=" | "*=" | "/=" | "\%=" | "**="}
\productioncont{| ">>=" | "<<=" | "\&=" | "\textasciicircum=" | "|="}
% The empty groups below prevent conversion to guillemets.
\productioncont{| ">{}>=" | "<{}<=" | "\&=" | "\textasciicircum=" | "|="}
\end{productionlist}
(See section~\ref{primaries} for the syntax definitions for the last

View File

@ -397,9 +397,10 @@ been added to Python 2.0. Augmented assignment operators include
statement \code{a += 2} increments the value of the variable
\code{a} by 2, equivalent to the slightly lengthier \code{a = a + 2}.
% The empty groups below prevent conversion to guillemets.
The full list of supported assignment operators is \code{+=},
\code{-=}, \code{*=}, \code{/=}, \code{\%=}, \code{**=}, \code{\&=},
\code{|=}, \verb|^=|, \code{>>=}, and \code{<<=}. Python classes can
\code{|=}, \verb|^=|, \code{>{}>=}, and \code{<{}<=}. Python classes can
override the augmented assignment operators by defining methods named
\method{__iadd__}, \method{__isub__}, etc. For example, the following
\class{Number} class stores a number and supports using += to create a

View File

@ -2325,13 +2325,15 @@ exists.
they're stored as 32-bit numbers and result in a negative value, but
in Python 2.4 they'll become positive long integers.
% The empty groups below prevent conversion to guillemets.
There are a few ways to fix this warning. If you really need a
positive number, just add an \samp{L} to the end of the literal. If
you're trying to get a 32-bit integer with low bits set and have
previously used an expression such as \code{~(1 << 31)}, it's probably
previously used an expression such as \code{\textasciitilde(1 <{}< 31)},
it's probably
clearest to start with all bits set and clear the desired upper bits.
For example, to clear just the top bit (bit 31), you could write
\code{0xffffffffL {\&}{\textasciitilde}(1L<<31)}.
\code{0xffffffffL {\&}{\textasciitilde}(1L<{}<31)}.
\item You can no longer disable assertions by assigning to \code{__debug__}.