]> granicus.if.org Git - python/commitdiff
Fix SF bug #1061770: Manual typesets bit-shift operators as guillemet
authorFred Drake <fdrake@acm.org>
Thu, 11 Nov 2004 06:14:05 +0000 (06:14 +0000)
committerFred Drake <fdrake@acm.org>
Thu, 11 Nov 2004 06:14:05 +0000 (06:14 +0000)
Doc/lib/libstdtypes.tex
Doc/ref/ref5.tex
Doc/ref/ref6.tex
Doc/whatsnew/whatsnew20.tex
Doc/whatsnew/whatsnew23.tex

index c523d46f785ef90ce0bf20ca4bbd2c855512df0f..b2bb3787621569444403f77c826b95feedfd7808 100644 (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}
index 036533ca74cf08d847bb4a5a1d7a90ad7024a33e..091c91cbe0f2eb5a29fa85876cb1d20f373118b5 100644 (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
index e74a7dded07812ef8e777ed50a921c62d375d77a..153ddf7743d1befaea33837bc3780b1f2d7463e5 100644 (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
index fe5378be5440e462ce2b203d7f7090631daad3da..d376d9d570c4d65bc8f5312a56396812e6532e16 100644 (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
index 0a007d541e1f76833d96a666dc38b71fddb8294f..b74403a9634bacc4ba23af26c110d361c8016885 100644 (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__}.