[Python-checkins] r56666 - in doctools/trunk: Doc-26/TODO Doc-26/documenting/markup.rst Doc-26/install/index.rst Doc-26/reference/compound_stmts.rst Doc-26/reference/expressions.rst Doc-26/reference/introduction.rst Doc-26/reference/lexical_analysis.rst Doc-26/reference/simple_stmts.rst Doc-26/reference/toplevel_components.rst Doc-3k/TODO Doc-3k/documenting/markup.rst Doc-3k/install/index.rst Doc-3k/reference/compound_stmts.rst Doc-3k/reference/expressions.rst Doc-3k/reference/introduction.rst Doc-3k/reference/lexical_analysis.rst Doc-3k/reference/simple_stmts.rst Doc-3k/reference/toplevel_components.rst
georg.brandl
python-checkins at python.org
Thu Aug 2 14:32:15 CEST 2007
Author: georg.brandl
Date: Thu Aug 2 14:32:13 2007
New Revision: 56666
Modified:
doctools/trunk/Doc-26/TODO
doctools/trunk/Doc-26/documenting/markup.rst
doctools/trunk/Doc-26/install/index.rst
doctools/trunk/Doc-26/reference/compound_stmts.rst
doctools/trunk/Doc-26/reference/expressions.rst
doctools/trunk/Doc-26/reference/introduction.rst
doctools/trunk/Doc-26/reference/lexical_analysis.rst
doctools/trunk/Doc-26/reference/simple_stmts.rst
doctools/trunk/Doc-26/reference/toplevel_components.rst
doctools/trunk/Doc-3k/TODO
doctools/trunk/Doc-3k/documenting/markup.rst
doctools/trunk/Doc-3k/install/index.rst
doctools/trunk/Doc-3k/reference/compound_stmts.rst
doctools/trunk/Doc-3k/reference/expressions.rst
doctools/trunk/Doc-3k/reference/introduction.rst
doctools/trunk/Doc-3k/reference/lexical_analysis.rst
doctools/trunk/Doc-3k/reference/simple_stmts.rst
doctools/trunk/Doc-3k/reference/toplevel_components.rst
Log:
Fix production list escaping.
Modified: doctools/trunk/Doc-26/TODO
==============================================================================
--- doctools/trunk/Doc-26/TODO (original)
+++ doctools/trunk/Doc-26/TODO Thu Aug 2 14:32:13 2007
@@ -3,14 +3,11 @@
* fix all references and links marked with `XXX`
* adjust all literal include paths
-* remove all non-literal includes
* fix all duplicate labels and undefined label references
* split very large files and add toctrees
* integrate standalone HOWTOs
* find out which files get "comments disabled" metadata
-* double backslashes in production lists
* add synopses for each module
* write "About these documents"
* finish "Documenting Python"
* extend copyright.rst
-* fix :file: and |version| in install
Modified: doctools/trunk/Doc-26/documenting/markup.rst
==============================================================================
--- doctools/trunk/Doc-26/documenting/markup.rst (original)
+++ doctools/trunk/Doc-26/documenting/markup.rst Thu Aug 2 14:32:13 2007
@@ -673,7 +673,7 @@
triple
Likewise, ``triple: module; search; path`` is a shortcut that creates three
index entries, which are ``module; search path``, ``search; path, module`` and
- ``path; module search``.
+ ``path; module search``.
module, keyword, operator, object, exception, statement, builtin
These all create two index entries. For example, ``module: hashlib`` creates
the entries ``module; hashlib`` and ``hashlib; module``.
@@ -700,9 +700,10 @@
The definition can contain token names which are marked as interpreted text
(e.g. ``sum ::= `integer` "+" `integer```) -- this generates cross-references
- to the productions of these tokens. Note that vertical bars used to indicate
- alternatives must be escaped with backslashes because otherwise they would
- indicate a substitution reference to the reST parser.
+ to the productions of these tokens.
+
+ Note that no further reST parsing is done in the production, so that you
+ don't have to escape ``*`` or ``|`` characters.
.. XXX describe optional first parameter
@@ -710,13 +711,13 @@
The following is an example taken from the Python Reference Manual::
.. productionlist::
- try_stmt: try1_stmt \| try2_stmt
- try1_stmt: "try" ":" :token:`suite`
- : ("except" [:token:`expression` ["," :token:`target`]] ":" :token:`suite`)+
- : ["else" ":" :token:`suite`]
- : ["finally" ":" :token:`suite`]
- try2_stmt: "try" ":" :token:`suite`
- : "finally" ":" :token:`suite`
+ try_stmt: try1_stmt | try2_stmt
+ try1_stmt: "try" ":" `suite`
+ : ("except" [`expression` ["," `target`]] ":" `suite`)+
+ : ["else" ":" `suite`]
+ : ["finally" ":" `suite`]
+ try2_stmt: "try" ":" `suite`
+ : "finally" ":" `suite`
Substitutions
Modified: doctools/trunk/Doc-26/install/index.rst
==============================================================================
--- doctools/trunk/Doc-26/install/index.rst (original)
+++ doctools/trunk/Doc-26/install/index.rst Thu Aug 2 14:32:13 2007
@@ -246,19 +246,15 @@
Unix-based), it also depends on whether the module distribution being installed
is pure Python or contains extensions ("non-pure"):
-+-----------------+------------------------------------+--------------------------------------+-------+
-| Platform | Standard installation | Default value | Notes |
-| | location | | |
-+=================+====================================+======================================+=======+
-| Unix (pure) | :file:`{prefix}/lib/python|version | :file:`/usr/local/lib/python|version | \(1) |
-| | |/site-packages` | |/site-packages` | |
-+-----------------+------------------------------------+--------------------------------------+-------+
-| Unix (non-pure) | :file:`{exec- | :file:`/usr/local/lib/python|version | \(1) |
-| | prefix}/lib/python|version | |/site-packages` | |
-| | |/site-packages` | | |
-+-----------------+------------------------------------+--------------------------------------+-------+
-| Windows | :file:`{prefix}` | :file:`C:\\Python` | \(2) |
-+-----------------+------------------------------------+--------------------------------------+-------+
++-----------------+-----------------------------------------------------+--------------------------------------------------+-------+
+| Platform | Standard installation location | Default value | Notes |
++=================+=====================================================+==================================================+=======+
+| Unix (pure) | :file:`{prefix}/lib/python{X.Y}/site-packages` | :file:`/usr/local/lib/python{X.Y}/site-packages` | \(1) |
++-----------------+-----------------------------------------------------+--------------------------------------------------+-------+
+| Unix (non-pure) | :file:`{exec-prefix}/lib/python{X.Y}/site-packages` | :file:`/usr/local/lib/python{X.Y}/site-packages` | \(1) |
++-----------------+-----------------------------------------------------+--------------------------------------------------+-------+
+| Windows | :file:`{prefix}` | :file:`C:\\Python` | \(2) |
++-----------------+-----------------------------------------------------+--------------------------------------------------+-------+
Notes:
@@ -346,17 +342,17 @@
The :option:`--home` option defines the installation base directory. Files are
installed to the following directories under the installation base as follows:
-+------------------------------+-----------------------------------+-----------------------------+
-| Type of file | Installation Directory | Override option |
-+==============================+===================================+=============================+
-| pure module distribution | :file:`{home}`:file:`/lib/python` | :option:`--install-purelib` |
-+------------------------------+-----------------------------------+-----------------------------+
-| non-pure module distribution | :file:`{home}`:file:`/lib/python` | :option:`--install-platlib` |
-+------------------------------+-----------------------------------+-----------------------------+
-| scripts | :file:`{home}`:file:`/bin` | :option:`--install-scripts` |
-+------------------------------+-----------------------------------+-----------------------------+
-| data | :file:`{home}`:file:`/share` | :option:`--install-data` |
-+------------------------------+-----------------------------------+-----------------------------+
++------------------------------+---------------------------+-----------------------------+
+| Type of file | Installation Directory | Override option |
++==============================+===========================+=============================+
+| pure module distribution | :file:`{home}/lib/python` | :option:`--install-purelib` |
++------------------------------+---------------------------+-----------------------------+
+| non-pure module distribution | :file:`{home}/lib/python` | :option:`--install-platlib` |
++------------------------------+---------------------------+-----------------------------+
+| scripts | :file:`{home}/bin` | :option:`--install-scripts` |
++------------------------------+---------------------------+-----------------------------+
+| data | :file:`{home}/share` | :option:`--install-data` |
++------------------------------+---------------------------+-----------------------------+
.. versionchanged:: 2.4
The :option:`--home` option used to be supported only on Unix.
@@ -399,20 +395,17 @@
executables, etc.) If :option:`--exec-prefix` is not supplied, it defaults to
:option:`--prefix`. Files are installed as follows:
-+------------------------------+----------------------------------------+-----------------------------+
-| Type of file | Installation Directory | Override option |
-+==============================+========================================+=============================+
-| pure module distribution | :file:`{prefix}`:file:`/lib/python2.{X | :option:`--install-purelib` |
-| | }/site-packages` | |
-+------------------------------+----------------------------------------+-----------------------------+
-| non-pure module distribution | :file:`{exec- | :option:`--install-platlib` |
-| | prefix}`:file:`/lib/python2.{X | |
-| | }/site-packages` | |
-+------------------------------+----------------------------------------+-----------------------------+
-| scripts | :file:`{prefix}`:file:`/bin` | :option:`--install-scripts` |
-+------------------------------+----------------------------------------+-----------------------------+
-| data | :file:`{prefix}`:file:`/share` | :option:`--install-data` |
-+------------------------------+----------------------------------------+-----------------------------+
++------------------------------+-----------------------------------------------------+-----------------------------+
+| Type of file | Installation Directory | Override option |
++==============================+=====================================================+=============================+
+| pure module distribution | :file:`{prefix}/lib/python{X.Y}/site-packages` | :option:`--install-purelib` |
++------------------------------+-----------------------------------------------------+-----------------------------+
+| non-pure module distribution | :file:`{exec-prefix}/lib/python{X.Y}/site-packages` | :option:`--install-platlib` |
++------------------------------+-----------------------------------------------------+-----------------------------+
+| scripts | :file:`{prefix}/bin` | :option:`--install-scripts` |
++------------------------------+-----------------------------------------------------+-----------------------------+
+| data | :file:`{prefix}/share` | :option:`--install-data` |
++------------------------------+-----------------------------------------------------+-----------------------------+
There is no requirement that :option:`--prefix` or :option:`--exec-prefix`
actually point to an alternate Python installation; if the directories listed
@@ -455,17 +448,17 @@
:option:`--exec-prefix` option is not supported under Windows. Files are
installed as follows:
-+------------------------------+-----------------------------------+-----------------------------+
-| Type of file | Installation Directory | Override option |
-+==============================+===================================+=============================+
-| pure module distribution | :file:`{prefix}`:file:`` | :option:`--install-purelib` |
-+------------------------------+-----------------------------------+-----------------------------+
-| non-pure module distribution | :file:`{prefix}`:file:`` | :option:`--install-platlib` |
-+------------------------------+-----------------------------------+-----------------------------+
-| scripts | :file:`{prefix}`:file:`\\Scripts` | :option:`--install-scripts` |
-+------------------------------+-----------------------------------+-----------------------------+
-| data | :file:`{prefix}`:file:`\\Data` | :option:`--install-data` |
-+------------------------------+-----------------------------------+-----------------------------+
++------------------------------+---------------------------+-----------------------------+
+| Type of file | Installation Directory | Override option |
++==============================+===========================+=============================+
+| pure module distribution | :file:`{prefix}` | :option:`--install-purelib` |
++------------------------------+---------------------------+-----------------------------+
+| non-pure module distribution | :file:`{prefix}` | :option:`--install-platlib` |
++------------------------------+---------------------------+-----------------------------+
+| scripts | :file:`{prefix}\\Scripts` | :option:`--install-scripts` |
++------------------------------+---------------------------+-----------------------------+
+| data | :file:`{prefix}\\Data` | :option:`--install-data` |
++------------------------------+---------------------------+-----------------------------+
.. _custom-install:
@@ -625,12 +618,12 @@
.. % $ <-- bow to font-lock
The expected convention for locally installed packages is to put them in the
-:file:`.../site-packages/` directory, but you may want to install Python modules
-into some arbitrary directory. For example, your site may have a convention of
-keeping all software related to the web server under :file:`/www`. Add-on
-Python modules might then belong in :file:`/www/python`, and in order to import
-them, this directory must be added to ``sys.path``. There are several different
-ways to add the directory.
+:file:`{...}/site-packages/` directory, but you may want to install Python
+modules into some arbitrary directory. For example, your site may have a
+convention of keeping all software related to the web server under :file:`/www`.
+Add-on Python modules might then belong in :file:`/www/python`, and in order to
+import them, this directory must be added to ``sys.path``. There are several
+different ways to add the directory.
The most convenient way is to add a path configuration file to a directory
that's already on Python's path, usually to the :file:`.../site-packages/`
@@ -921,7 +914,7 @@
The :file:`coff2omf` program comes with the Borland compiler. The file
:file:`python25.lib` is in the :file:`Libs` directory of your Python
-installation. If your extension uses other libraries (zlib,...) you have to
+installation. If your extension uses other libraries (zlib, ...) you have to
convert them too.
The converted files have to reside in the same directories as the normal
Modified: doctools/trunk/Doc-26/reference/compound_stmts.rst
==============================================================================
--- doctools/trunk/Doc-26/reference/compound_stmts.rst (original)
+++ doctools/trunk/Doc-26/reference/compound_stmts.rst Thu Aug 2 14:32:13 2007
@@ -44,15 +44,15 @@
.. productionlist::
compound_stmt: `if_stmt`
- : \| `while_stmt`
- : \| `for_stmt`
- : \| `try_stmt`
- : \| `with_stmt`
- : \| `funcdef`
- : \| `classdef`
- suite: `stmt_list` NEWLINE \| NEWLINE INDENT `statement`\ + DEDENT
- statement: `stmt_list` NEWLINE \| `compound_stmt`
- stmt_list: `simple_stmt` (";" `simple_stmt`)\* [";"]
+ : | `while_stmt`
+ : | `for_stmt`
+ : | `try_stmt`
+ : | `with_stmt`
+ : | `funcdef`
+ : | `classdef`
+ suite: `stmt_list` NEWLINE | NEWLINE INDENT `statement`+ DEDENT
+ statement: `stmt_list` NEWLINE | `compound_stmt`
+ stmt_list: `simple_stmt` (";" `simple_stmt`)* [";"]
.. index::
single: NEWLINE token
@@ -80,7 +80,7 @@
.. productionlist::
if_stmt: "if" `expression` ":" `suite`
- : ( "elif" `expression` ":" `suite` )\*
+ : ( "elif" `expression` ":" `suite` )*
: ["else" ":" `suite`]
.. index::
@@ -216,7 +216,7 @@
for a group of statements:
.. productionlist::
- try_stmt: try1_stmt \| try2_stmt
+ try_stmt: try1_stmt | try2_stmt
try1_stmt: "try" ":" `suite`
: ("except" [`expression` ["," `target`]] ":" `suite`)+
: ["else" ":" `suite`]
@@ -403,16 +403,16 @@
.. productionlist::
funcdef: [`decorators`] "def" `funcname` "(" [`parameter_list`] ")" ":" `suite`
- decorators: `decorator`\ +
+ decorators: `decorator`+
decorator: "@" `dotted_name` ["(" [`argument_list` [","]] ")"] NEWLINE
- dotted_name: `identifier` ("." `identifier`)\*
- parameter_list: (`defparameter` ",")\*
- : ( "\*" `identifier` [, "\*\*" `identifier`]
- : \| "\*\*" `identifier`
- : \| `defparameter` [","] )
+ dotted_name: `identifier` ("." `identifier`)*
+ parameter_list: (`defparameter` ",")*
+ : ( "*" `identifier` [, "**" `identifier`]
+ : | "**" `identifier`
+ : | `defparameter` [","] )
defparameter: `parameter` ["=" `expression`]
- sublist: `parameter` ("," `parameter`)\* [","]
- parameter: `identifier` \| "(" `sublist` ")"
+ sublist: `parameter` ("," `parameter`)* [","]
+ parameter: `identifier` | "(" `sublist` ")"
funcname: `identifier`
.. index::
Modified: doctools/trunk/Doc-26/reference/expressions.rst
==============================================================================
--- doctools/trunk/Doc-26/reference/expressions.rst (original)
+++ doctools/trunk/Doc-26/reference/expressions.rst Thu Aug 2 14:32:13 2007
@@ -63,10 +63,10 @@
atoms is:
.. productionlist::
- atom: `identifier` \| `literal` \| `enclosure`
- enclosure: `parenth_form` \| `list_display`
- : \| `generator_expression` \| `dict_display`
- : \| `string_conversion` \| `yield_atom`
+ atom: `identifier` | `literal` | `enclosure`
+ enclosure: `parenth_form` | `list_display`
+ : | `generator_expression` | `dict_display`
+ : | `string_conversion` | `yield_atom`
.. _atom-identifiers:
@@ -119,8 +119,8 @@
Python supports string literals and various numeric literals:
.. productionlist::
- literal: `stringliteral` \| `integer` \| `longinteger`
- : \| `floatnumber` \| `imagnumber`
+ literal: `stringliteral` | `integer` | `longinteger`
+ : | `floatnumber` | `imagnumber`
Evaluation of a literal yields an object of the given type (string, integer,
long integer, floating point number, complex number) with the given value. The
@@ -183,11 +183,11 @@
brackets:
.. productionlist::
- list_display: "[" [`expression_list` \| `list_comprehension`] "]"
+ list_display: "[" [`expression_list` | `list_comprehension`] "]"
list_comprehension: `expression` `list_for`
list_for: "for" `target_list` "in" `old_expression_list` [`list_iter`]
old_expression_list: `old_expression` [("," `old_expression`)+ [","]]
- list_iter: `list_for` \| `list_if`
+ list_iter: `list_for` | `list_if`
list_if: "if" `old_expression` [`list_iter`]
.. index::
@@ -219,7 +219,7 @@
.. productionlist::
generator_expression: "(" `expression` `genexpr_for` ")"
genexpr_for: "for" `target_list` "in" `or_test` [`genexpr_iter`]
- genexpr_iter: `genexpr_for` \| `genexpr_if`
+ genexpr_iter: `genexpr_for` | `genexpr_if`
genexpr_if: "if" `old_expression` [`genexpr_iter`]
.. index:: object: generator
@@ -262,7 +262,7 @@
.. productionlist::
dict_display: "{" [`key_datum_list`] "}"
- key_datum_list: `key_datum` ("," `key_datum`)\* [","]
+ key_datum_list: `key_datum` ("," `key_datum`)* [","]
key_datum: `expression` ":" `expression`
.. index:: object: dictionary
@@ -470,7 +470,7 @@
syntax is:
.. productionlist::
- primary: `atom` \| `attributeref` \| `subscription` \| `slicing` \| `call`
+ primary: `atom` | `attributeref` | `subscription` | `slicing` | `call`
.. _attribute-references:
@@ -562,12 +562,12 @@
:keyword:`del` statements. The syntax for a slicing:
.. productionlist::
- slicing: `simple_slicing` \| `extended_slicing`
+ slicing: `simple_slicing` | `extended_slicing`
simple_slicing: `primary` "[" `short_slice` "]"
extended_slicing: `primary` "[" `slice_list` "]"
- slice_list: `slice_item` ("," `slice_item`)\* [","]
- slice_item: `expression` \| `proper_slice` \| `ellipsis`
- proper_slice: `short_slice` \| `long_slice`
+ slice_list: `slice_item` ("," `slice_item`)* [","]
+ slice_item: `expression` | `proper_slice` | `ellipsis`
+ proper_slice: `short_slice` | `long_slice`
short_slice: [`lower_bound`] ":" [`upper_bound`]
long_slice: `short_slice` ":" [`stride`]
lower_bound: `expression`
@@ -627,16 +627,16 @@
.. productionlist::
call: `primary` "(" [`argument_list` [","]
- : \| `expression` `genexpr_for`] ")"
+ : | `expression` `genexpr_for`] ")"
argument_list: `positional_arguments` ["," `keyword_arguments`]
- : ["," "\*" `expression`]
- : ["," "\*\*" `expression`]
- : \| `keyword_arguments` ["," "\*" `expression`]
- : ["," "\*\*" `expression`]
- : \| "\*" `expression` ["," "\*\*" `expression`]
- : \| "\*\*" `expression`
- positional_arguments: `expression` ("," `expression`)\*
- keyword_arguments: `keyword_item` ("," `keyword_item`)\*
+ : ["," "*" `expression`]
+ : ["," "**" `expression`]
+ : | `keyword_arguments` ["," "*" `expression`]
+ : ["," "**" `expression`]
+ : | "*" `expression` ["," "**" `expression`]
+ : | "**" `expression`
+ positional_arguments: `expression` ("," `expression`)*
+ keyword_arguments: `keyword_item` ("," `keyword_item`)*
keyword_item: `identifier` "=" `expression`
A trailing comma may be present after the positional and keyword arguments but
@@ -786,7 +786,7 @@
less tightly than unary operators on its right. The syntax is:
.. productionlist::
- power: `primary` ["\*\*" `u_expr`]
+ power: `primary` ["**" `u_expr`]
Thus, in an unparenthesized sequence of power and unary operators, the operators
are evaluated from right to left (this does not constrain the evaluation order
@@ -822,7 +822,7 @@
All unary arithmetic (and bit-wise) operations have the same priority:
.. productionlist::
- u_expr: `power` \| "-" `u_expr` \| "+" `u_expr` \| "~" `u_expr`
+ u_expr: `power` | "-" `u_expr` | "+" `u_expr` | "~" `u_expr`
.. index::
single: negation
@@ -859,9 +859,9 @@
operators and one for additive operators:
.. productionlist::
- m_expr: `u_expr` \| `m_expr` "\*" `u_expr` \| `m_expr` "//" `u_expr` \| `m_expr` "/" `u_expr`
- : \| `m_expr` "%" `u_expr`
- a_expr: `m_expr` \| `a_expr` "+" `m_expr` \| `a_expr` "-" `m_expr`
+ m_expr: `u_expr` | `m_expr` "*" `u_expr` | `m_expr` "//" `u_expr` | `m_expr` "/" `u_expr`
+ : | `m_expr` "%" `u_expr`
+ a_expr: `m_expr` | `a_expr` "+" `m_expr` | `a_expr` "-" `m_expr`
.. index:: single: multiplication
@@ -934,7 +934,7 @@
The shifting operations have lower priority than the arithmetic operations:
.. productionlist::
- shift_expr: `a_expr` \| `shift_expr` ( "<<" \| ">>" ) `a_expr`
+ shift_expr: `a_expr` | `shift_expr` ( "<<" | ">>" ) `a_expr`
These operators accept plain or long integers as arguments. The arguments are
converted to a common type. They shift the first argument to the left or right
@@ -959,9 +959,9 @@
Each of the three bitwise operations has a different priority level:
.. productionlist::
- and_expr: `shift_expr` \| `and_expr` "&" `shift_expr`
- xor_expr: `and_expr` \| `xor_expr` "^" `and_expr`
- or_expr: `xor_expr` \| `or_expr` "\|" `xor_expr`
+ and_expr: `shift_expr` | `and_expr` "&" `shift_expr`
+ xor_expr: `and_expr` | `xor_expr` "^" `and_expr`
+ or_expr: `xor_expr` | `or_expr` "|" `xor_expr`
.. index:: pair: bit-wise; and
@@ -998,9 +998,9 @@
in mathematics:
.. productionlist::
- comparison: `or_expr` ( `comp_operator` `or_expr` )\*
- comp_operator: "<" \| ">" \| "==" \| ">=" \| "<=" \| "<>" \| "!="
- : \| "is" ["not"] \| ["not"] "in"
+ comparison: `or_expr` ( `comp_operator` `or_expr` )*
+ comp_operator: "<" | ">" | "==" | ">=" | "<=" | "<>" | "!="
+ : | "is" ["not"] | ["not"] "in"
Comparisons yield boolean values: ``True`` or ``False``.
@@ -1124,12 +1124,12 @@
Boolean operations have the lowest priority of all Python operations:
.. productionlist::
- expression: `conditional_expression` \| `lambda_form`
- old_expression: `or_test` \| `old_lambda_form`
+ expression: `conditional_expression` | `lambda_form`
+ old_expression: `or_test` | `old_lambda_form`
conditional_expression: `or_test` ["if" `or_test` "else" `expression`]
- or_test: `and_test` \| `or_test` "or" `and_test`
- and_test: `not_test` \| `and_test` "and" `not_test`
- not_test: `comparison` \| "not" `not_test`
+ or_test: `and_test` | `or_test` "or" `and_test`
+ and_test: `not_test` | `and_test` "and" `not_test`
+ not_test: `comparison` | "not" `not_test`
In the context of Boolean operations, and also when expressions are used by
control flow statements, the following values are interpreted as false:
@@ -1203,7 +1203,7 @@
.. index:: pair: expression; list
.. productionlist::
- expression_list: `expression` ( "," `expression` )\* [","]
+ expression_list: `expression` ( "," `expression` )* [","]
.. index:: object: tuple
@@ -1306,7 +1306,7 @@
+-----------------------------------------------+-------------------------------------+
| ``{key:datum...}`` | Dictionary display |
+-----------------------------------------------+-------------------------------------+
-| ```expressions...``\ ` | String conversion |
+| ```expressions...``` | String conversion |
+-----------------------------------------------+-------------------------------------+
.. rubric:: Footnotes
Modified: doctools/trunk/Doc-26/reference/introduction.rst
==============================================================================
--- doctools/trunk/Doc-26/reference/introduction.rst (original)
+++ doctools/trunk/Doc-26/reference/introduction.rst Thu Aug 2 14:32:13 2007
@@ -98,7 +98,7 @@
notation. This uses the following style of definition:
.. productionlist:: *
- name: `lc_letter` (`lc_letter` \| "_")\*
+ name: `lc_letter` (`lc_letter` | "_")*
lc_letter: "a"..."z"
The first line says that a ``name`` is an ``lc_letter`` followed by a sequence
Modified: doctools/trunk/Doc-26/reference/lexical_analysis.rst
==============================================================================
--- doctools/trunk/Doc-26/reference/lexical_analysis.rst (original)
+++ doctools/trunk/Doc-26/reference/lexical_analysis.rst Thu Aug 2 14:32:13 2007
@@ -323,8 +323,8 @@
definitions:
.. productionlist::
- identifier: (`letter`\|"_") (`letter` \| `digit` \| "_")\*
- letter: `lowercase` \| `uppercase`
+ identifier: (`letter`|"_") (`letter` | `digit` | "_")\*
+ letter: `lowercase` | `uppercase`
lowercase: "a"..."z"
uppercase: "A"..."Z"
digit: "0"..."9"
@@ -433,13 +433,13 @@
.. index:: single: ASCII at ASCII
.. productionlist::
- stringliteral: [`stringprefix`](`shortstring` \| `longstring`)
- stringprefix: "r" \| "u" \| "ur" \| "R" \| "U" \| "UR" \| "Ur" \| "uR"
- shortstring: "'" `shortstringitem`\* "'" \| '"' `shortstringitem`\* '"'
- longstring: ""'" `longstringitem`\* ""'"
- : \| '"""' `longstringitem`\* '"""'
- shortstringitem: `shortstringchar` \| `escapeseq`
- longstringitem: `longstringchar` \| `escapeseq`
+ stringliteral: [`stringprefix`](`shortstring` | `longstring`)
+ stringprefix: "r" | "u" | "ur" | "R" | "U" | "UR" | "Ur" | "uR"
+ shortstring: "'" `shortstringitem`* "'" | '"' `shortstringitem`* '"'
+ longstring: ""'" `longstringitem`* ""'"
+ : | '"""' `longstringitem`* '"""'
+ shortstringitem: `shortstringchar` | `escapeseq`
+ longstringitem: `longstringchar` | `escapeseq`
shortstringchar: <any source character except "\" or newline or the quote>
longstringchar: <any source character except "\">
escapeseq: "\" <any ASCII character>
@@ -640,14 +640,14 @@
definitions:
.. productionlist::
- longinteger: `integer` ("l" \| "L")
- integer: `decimalinteger` \| `octinteger` \| `hexinteger`
- decimalinteger: `nonzerodigit` `digit`\* \| "0"
- octinteger: "0" `octdigit`\ +
- hexinteger: "0" ("x" \| "X") `hexdigit`\ +
+ longinteger: `integer` ("l" | "L")
+ integer: `decimalinteger` | `octinteger` | `hexinteger`
+ decimalinteger: `nonzerodigit` `digit`* | "0"
+ octinteger: "0" `octdigit`+
+ hexinteger: "0" ("x" | "X") `hexdigit`+
nonzerodigit: "1"..."9"
octdigit: "0"..."7"
- hexdigit: `digit` \| "a"..."f" \| "A"..."F"
+ hexdigit: `digit` | "a"..."f" | "A"..."F"
Although both lower case ``'l'`` and upper case ``'L'`` are allowed as suffix
for long integers, it is strongly recommended to always use ``'L'``, since the
@@ -674,12 +674,12 @@
Floating point literals are described by the following lexical definitions:
.. productionlist::
- floatnumber: `pointfloat` \| `exponentfloat`
- pointfloat: [`intpart`] `fraction` \| `intpart` "."
- exponentfloat: (`intpart` \| `pointfloat`) `exponent`
- intpart: `digit`\ +
- fraction: "." `digit`\ +
- exponent: ("e" \| "E") ["+" \| "-"] `digit`\ +
+ floatnumber: `pointfloat` | `exponentfloat`
+ pointfloat: [`intpart`] `fraction` | `intpart` "."
+ exponentfloat: (`intpart` | `pointfloat`) `exponent`
+ intpart: `digit`+
+ fraction: "." `digit`+
+ exponent: ("e" | "E") ["+" | "-"] `digit`+
Note that the integer and exponent parts of floating point numbers can look like
octal integers, but are interpreted using radix 10. For example, ``077e010`` is
@@ -702,7 +702,7 @@
Imaginary literals are described by the following lexical definitions:
.. productionlist::
- imagnumber: (`floatnumber` \| `intpart`) ("j" \| "J")
+ imagnumber: (`floatnumber` | `intpart`) ("j" | "J")
An imaginary literal yields a complex number with a real part of 0.0. Complex
numbers are represented as a pair of floating point numbers and have the same
Modified: doctools/trunk/Doc-26/reference/simple_stmts.rst
==============================================================================
--- doctools/trunk/Doc-26/reference/simple_stmts.rst (original)
+++ doctools/trunk/Doc-26/reference/simple_stmts.rst Thu Aug 2 14:32:13 2007
@@ -13,20 +13,20 @@
.. productionlist::
simple_stmt: `expression_stmt`
- : \| `assert_stmt`
- : \| `assignment_stmt`
- : \| `augmented_assignment_stmt`
- : \| `pass_stmt`
- : \| `del_stmt`
- : \| `print_stmt`
- : \| `return_stmt`
- : \| `yield_stmt`
- : \| `raise_stmt`
- : \| `break_stmt`
- : \| `continue_stmt`
- : \| `import_stmt`
- : \| `global_stmt`
- : \| `exec_stmt`
+ : | `assert_stmt`
+ : | `assignment_stmt`
+ : | `augmented_assignment_stmt`
+ : | `pass_stmt`
+ : | `del_stmt`
+ : | `print_stmt`
+ : | `return_stmt`
+ : | `yield_stmt`
+ : | `raise_stmt`
+ : | `break_stmt`
+ : | `continue_stmt`
+ : | `import_stmt`
+ : | `global_stmt`
+ : | `exec_stmt`
.. _exprstmts:
@@ -124,14 +124,14 @@
attributes or items of mutable objects:
.. productionlist::
- assignment_stmt: (`target_list` "=")+ (`expression_list` \| `yield_expression`)
- target_list: `target` ("," `target`)\* [","]
+ assignment_stmt: (`target_list` "=")+ (`expression_list` | `yield_expression`)
+ target_list: `target` ("," `target`)* [","]
target: `identifier`
- : \| "(" `target_list` ")"
- : \| "[" `target_list` "]"
- : \| `attributeref`
- : \| `subscription`
- : \| `slicing`
+ : | "(" `target_list` ")"
+ : | "[" `target_list` "]"
+ : | `attributeref`
+ : | `subscription`
+ : | `slicing`
(See section :ref:`primaries` for the syntax definitions for the last three
symbols.)
@@ -272,9 +272,9 @@
operation and an assignment statement:
.. productionlist::
- augmented_assignment_stmt: `target` `augop` (`expression_list` \| `yield_expression`)
- augop: "+=" \| "-=" \| "\*=" \| "/=" \| "%=" \| "\*\*="
- : \| ">>=" \| "<<=" \| "&=" \| "^=" \| "\|="
+ augmented_assignment_stmt: `target` `augop` (`expression_list` | `yield_expression`)
+ augop: "+=" | "-=" | "*=" | "/=" | "%=" | "**="
+ : | ">>=" | "<<=" | "&=" | "^=" | "|="
(See section :ref:`primaries` for the syntax definitions for the last three
symbols.)
@@ -378,8 +378,8 @@
.. index:: statement: print
.. productionlist::
- print_stmt: "print" ([`expression` ("," `expression`)\* [","]
- : \| ">>" `expression` [("," `expression`)+ [","])
+ print_stmt: "print" ([`expression` ("," `expression`)* [","]
+ : | ">>" `expression` [("," `expression`)+ [","])
:keyword:`print` evaluates each expression in turn and writes the resulting
object to standard output (see below). If an object is not a string, it is
@@ -645,14 +645,14 @@
keyword: from
.. productionlist::
- import_stmt: "import" `module` ["as" `name`] ( "," `module` ["as" `name`] )\*
- : \| "from" `relative_module` "import" `identifier` ["as" `name`]
- : ( "," `identifier` ["as" `name`] )\*
- : \| "from" `relative_module` "import" "(" `identifier` ["as" `name`]
- : ( "," `identifier` ["as" `name`] )\* [","] ")"
- : \| "from" `module` "import" "\*"
- module: (`identifier` ".")\* `identifier`
- relative_module: "."\* `module` \| "."+
+ import_stmt: "import" `module` ["as" `name`] ( "," `module` ["as" `name`] )*
+ : | "from" `relative_module` "import" `identifier` ["as" `name`]
+ : ( "," `identifier` ["as" `name`] )*
+ : | "from" `relative_module` "import" "(" `identifier` ["as" `name`]
+ : ( "," `identifier` ["as" `name`] )* [","] ")"
+ : | "from" `module` "import" "*"
+ module: (`identifier` ".")* `identifier`
+ relative_module: "."* `module` | "."+
name: `identifier`
Import statements are executed in two steps: (1) find a module, and initialize
@@ -781,9 +781,9 @@
.. productionlist:: *
future_statement: "from" "__future__" "import" feature ["as" name]
- : ("," feature ["as" name])\*
- : \| "from" "__future__" "import" "(" feature ["as" name]
- : ("," feature ["as" name])\* [","] ")"
+ : ("," feature ["as" name])*
+ : | "from" "__future__" "import" "(" feature ["as" name]
+ : ("," feature ["as" name])* [","] ")"
feature: identifier
name: identifier
@@ -851,7 +851,7 @@
.. index:: statement: global
.. productionlist::
- global_stmt: "global" `identifier` ("," `identifier`)\*
+ global_stmt: "global" `identifier` ("," `identifier`)*
.. index:: triple: global; name; binding
Modified: doctools/trunk/Doc-26/reference/toplevel_components.rst
==============================================================================
--- doctools/trunk/Doc-26/reference/toplevel_components.rst (original)
+++ doctools/trunk/Doc-26/reference/toplevel_components.rst Thu Aug 2 14:32:13 2007
@@ -66,7 +66,7 @@
All input read from non-interactive files has the same form:
.. productionlist::
- file_input: (NEWLINE \| `statement`)\*
+ file_input: (NEWLINE | `statement`)*
This syntax is used in the following situations:
@@ -85,7 +85,7 @@
Input in interactive mode is parsed using the following grammar:
.. productionlist::
- interactive_input: [`stmt_list`] NEWLINE \| `compound_stmt` NEWLINE
+ interactive_input: [`stmt_list`] NEWLINE | `compound_stmt` NEWLINE
Note that a (top-level) compound statement must be followed by a blank line in
interactive mode; this is needed to help the parser detect the end of the input.
@@ -104,7 +104,7 @@
string argument to :func:`eval` must have the following form:
.. productionlist::
- eval_input: `expression_list` NEWLINE\*
+ eval_input: `expression_list` NEWLINE*
.. index:: builtin: input
Modified: doctools/trunk/Doc-3k/TODO
==============================================================================
--- doctools/trunk/Doc-3k/TODO (original)
+++ doctools/trunk/Doc-3k/TODO Thu Aug 2 14:32:13 2007
@@ -3,14 +3,11 @@
* fix all references and links marked with `XXX`
* adjust all literal include paths
-* remove all non-literal includes
* fix all duplicate labels and undefined label references
* split very large files and add toctrees
* integrate standalone HOWTOs
* find out which files get "comments disabled" metadata
-* double backslashes in production lists
* add synopses for each module
* write "About these documents"
* finish "Documenting Python"
* extend copyright.rst
-* fix :file: and |version| in install
Modified: doctools/trunk/Doc-3k/documenting/markup.rst
==============================================================================
--- doctools/trunk/Doc-3k/documenting/markup.rst (original)
+++ doctools/trunk/Doc-3k/documenting/markup.rst Thu Aug 2 14:32:13 2007
@@ -673,7 +673,7 @@
triple
Likewise, ``triple: module; search; path`` is a shortcut that creates three
index entries, which are ``module; search path``, ``search; path, module`` and
- ``path; module search``.
+ ``path; module search``.
module, keyword, operator, object, exception, statement, builtin
These all create two index entries. For example, ``module: hashlib`` creates
the entries ``module; hashlib`` and ``hashlib; module``.
@@ -700,9 +700,10 @@
The definition can contain token names which are marked as interpreted text
(e.g. ``sum ::= `integer` "+" `integer```) -- this generates cross-references
- to the productions of these tokens. Note that vertical bars used to indicate
- alternatives must be escaped with backslashes because otherwise they would
- indicate a substitution reference to the reST parser.
+ to the productions of these tokens.
+
+ Note that no further reST parsing is done in the production, so that you
+ don't have to escape ``*`` or ``|`` characters.
.. XXX describe optional first parameter
@@ -710,13 +711,13 @@
The following is an example taken from the Python Reference Manual::
.. productionlist::
- try_stmt: try1_stmt \| try2_stmt
- try1_stmt: "try" ":" :token:`suite`
- : ("except" [:token:`expression` ["," :token:`target`]] ":" :token:`suite`)+
- : ["else" ":" :token:`suite`]
- : ["finally" ":" :token:`suite`]
- try2_stmt: "try" ":" :token:`suite`
- : "finally" ":" :token:`suite`
+ try_stmt: try1_stmt | try2_stmt
+ try1_stmt: "try" ":" `suite`
+ : ("except" [`expression` ["," `target`]] ":" `suite`)+
+ : ["else" ":" `suite`]
+ : ["finally" ":" `suite`]
+ try2_stmt: "try" ":" `suite`
+ : "finally" ":" `suite`
Substitutions
Modified: doctools/trunk/Doc-3k/install/index.rst
==============================================================================
--- doctools/trunk/Doc-3k/install/index.rst (original)
+++ doctools/trunk/Doc-3k/install/index.rst Thu Aug 2 14:32:13 2007
@@ -246,19 +246,15 @@
Unix-based), it also depends on whether the module distribution being installed
is pure Python or contains extensions ("non-pure"):
-+-----------------+------------------------------------+--------------------------------------+-------+
-| Platform | Standard installation | Default value | Notes |
-| | location | | |
-+=================+====================================+======================================+=======+
-| Unix (pure) | :file:`{prefix}/lib/python|version | :file:`/usr/local/lib/python|version | \(1) |
-| | |/site-packages` | |/site-packages` | |
-+-----------------+------------------------------------+--------------------------------------+-------+
-| Unix (non-pure) | :file:`{exec- | :file:`/usr/local/lib/python|version | \(1) |
-| | prefix}/lib/python|version | |/site-packages` | |
-| | |/site-packages` | | |
-+-----------------+------------------------------------+--------------------------------------+-------+
-| Windows | :file:`{prefix}` | :file:`C:\\Python` | \(2) |
-+-----------------+------------------------------------+--------------------------------------+-------+
++-----------------+-----------------------------------------------------+--------------------------------------------------+-------+
+| Platform | Standard installation location | Default value | Notes |
++=================+=====================================================+==================================================+=======+
+| Unix (pure) | :file:`{prefix}/lib/python{X.Y}/site-packages` | :file:`/usr/local/lib/python{X.Y}/site-packages` | \(1) |
++-----------------+-----------------------------------------------------+--------------------------------------------------+-------+
+| Unix (non-pure) | :file:`{exec-prefix}/lib/python{X.Y}/site-packages` | :file:`/usr/local/lib/python{X.Y}/site-packages` | \(1) |
++-----------------+-----------------------------------------------------+--------------------------------------------------+-------+
+| Windows | :file:`{prefix}` | :file:`C:\\Python` | \(2) |
++-----------------+-----------------------------------------------------+--------------------------------------------------+-------+
Notes:
@@ -346,17 +342,17 @@
The :option:`--home` option defines the installation base directory. Files are
installed to the following directories under the installation base as follows:
-+------------------------------+-----------------------------------+-----------------------------+
-| Type of file | Installation Directory | Override option |
-+==============================+===================================+=============================+
-| pure module distribution | :file:`{home}`:file:`/lib/python` | :option:`--install-purelib` |
-+------------------------------+-----------------------------------+-----------------------------+
-| non-pure module distribution | :file:`{home}`:file:`/lib/python` | :option:`--install-platlib` |
-+------------------------------+-----------------------------------+-----------------------------+
-| scripts | :file:`{home}`:file:`/bin` | :option:`--install-scripts` |
-+------------------------------+-----------------------------------+-----------------------------+
-| data | :file:`{home}`:file:`/share` | :option:`--install-data` |
-+------------------------------+-----------------------------------+-----------------------------+
++------------------------------+---------------------------+-----------------------------+
+| Type of file | Installation Directory | Override option |
++==============================+===========================+=============================+
+| pure module distribution | :file:`{home}/lib/python` | :option:`--install-purelib` |
++------------------------------+---------------------------+-----------------------------+
+| non-pure module distribution | :file:`{home}/lib/python` | :option:`--install-platlib` |
++------------------------------+---------------------------+-----------------------------+
+| scripts | :file:`{home}/bin` | :option:`--install-scripts` |
++------------------------------+---------------------------+-----------------------------+
+| data | :file:`{home}/share` | :option:`--install-data` |
++------------------------------+---------------------------+-----------------------------+
.. versionchanged:: 2.4
The :option:`--home` option used to be supported only on Unix.
@@ -399,20 +395,17 @@
executables, etc.) If :option:`--exec-prefix` is not supplied, it defaults to
:option:`--prefix`. Files are installed as follows:
-+------------------------------+----------------------------------------+-----------------------------+
-| Type of file | Installation Directory | Override option |
-+==============================+========================================+=============================+
-| pure module distribution | :file:`{prefix}`:file:`/lib/python2.{X | :option:`--install-purelib` |
-| | }/site-packages` | |
-+------------------------------+----------------------------------------+-----------------------------+
-| non-pure module distribution | :file:`{exec- | :option:`--install-platlib` |
-| | prefix}`:file:`/lib/python2.{X | |
-| | }/site-packages` | |
-+------------------------------+----------------------------------------+-----------------------------+
-| scripts | :file:`{prefix}`:file:`/bin` | :option:`--install-scripts` |
-+------------------------------+----------------------------------------+-----------------------------+
-| data | :file:`{prefix}`:file:`/share` | :option:`--install-data` |
-+------------------------------+----------------------------------------+-----------------------------+
++------------------------------+-----------------------------------------------------+-----------------------------+
+| Type of file | Installation Directory | Override option |
++==============================+=====================================================+=============================+
+| pure module distribution | :file:`{prefix}/lib/python{X.Y}/site-packages` | :option:`--install-purelib` |
++------------------------------+-----------------------------------------------------+-----------------------------+
+| non-pure module distribution | :file:`{exec-prefix}/lib/python{X.Y}/site-packages` | :option:`--install-platlib` |
++------------------------------+-----------------------------------------------------+-----------------------------+
+| scripts | :file:`{prefix}/bin` | :option:`--install-scripts` |
++------------------------------+-----------------------------------------------------+-----------------------------+
+| data | :file:`{prefix}/share` | :option:`--install-data` |
++------------------------------+-----------------------------------------------------+-----------------------------+
There is no requirement that :option:`--prefix` or :option:`--exec-prefix`
actually point to an alternate Python installation; if the directories listed
@@ -455,17 +448,17 @@
:option:`--exec-prefix` option is not supported under Windows. Files are
installed as follows:
-+------------------------------+-----------------------------------+-----------------------------+
-| Type of file | Installation Directory | Override option |
-+==============================+===================================+=============================+
-| pure module distribution | :file:`{prefix}`:file:`` | :option:`--install-purelib` |
-+------------------------------+-----------------------------------+-----------------------------+
-| non-pure module distribution | :file:`{prefix}`:file:`` | :option:`--install-platlib` |
-+------------------------------+-----------------------------------+-----------------------------+
-| scripts | :file:`{prefix}`:file:`\\Scripts` | :option:`--install-scripts` |
-+------------------------------+-----------------------------------+-----------------------------+
-| data | :file:`{prefix}`:file:`\\Data` | :option:`--install-data` |
-+------------------------------+-----------------------------------+-----------------------------+
++------------------------------+---------------------------+-----------------------------+
+| Type of file | Installation Directory | Override option |
++==============================+===========================+=============================+
+| pure module distribution | :file:`{prefix}` | :option:`--install-purelib` |
++------------------------------+---------------------------+-----------------------------+
+| non-pure module distribution | :file:`{prefix}` | :option:`--install-platlib` |
++------------------------------+---------------------------+-----------------------------+
+| scripts | :file:`{prefix}\\Scripts` | :option:`--install-scripts` |
++------------------------------+---------------------------+-----------------------------+
+| data | :file:`{prefix}\\Data` | :option:`--install-data` |
++------------------------------+---------------------------+-----------------------------+
.. _custom-install:
@@ -625,12 +618,12 @@
.. % $ <-- bow to font-lock
The expected convention for locally installed packages is to put them in the
-:file:`.../site-packages/` directory, but you may want to install Python modules
-into some arbitrary directory. For example, your site may have a convention of
-keeping all software related to the web server under :file:`/www`. Add-on
-Python modules might then belong in :file:`/www/python`, and in order to import
-them, this directory must be added to ``sys.path``. There are several different
-ways to add the directory.
+:file:`{...}/site-packages/` directory, but you may want to install Python
+modules into some arbitrary directory. For example, your site may have a
+convention of keeping all software related to the web server under :file:`/www`.
+Add-on Python modules might then belong in :file:`/www/python`, and in order to
+import them, this directory must be added to ``sys.path``. There are several
+different ways to add the directory.
The most convenient way is to add a path configuration file to a directory
that's already on Python's path, usually to the :file:`.../site-packages/`
@@ -921,7 +914,7 @@
The :file:`coff2omf` program comes with the Borland compiler. The file
:file:`python25.lib` is in the :file:`Libs` directory of your Python
-installation. If your extension uses other libraries (zlib,...) you have to
+installation. If your extension uses other libraries (zlib, ...) you have to
convert them too.
The converted files have to reside in the same directories as the normal
Modified: doctools/trunk/Doc-3k/reference/compound_stmts.rst
==============================================================================
--- doctools/trunk/Doc-3k/reference/compound_stmts.rst (original)
+++ doctools/trunk/Doc-3k/reference/compound_stmts.rst Thu Aug 2 14:32:13 2007
@@ -44,15 +44,15 @@
.. productionlist::
compound_stmt: `if_stmt`
- : \| `while_stmt`
- : \| `for_stmt`
- : \| `try_stmt`
- : \| `with_stmt`
- : \| `funcdef`
- : \| `classdef`
- suite: `stmt_list` NEWLINE \| NEWLINE INDENT `statement`\ + DEDENT
- statement: `stmt_list` NEWLINE \| `compound_stmt`
- stmt_list: `simple_stmt` (";" `simple_stmt`)\* [";"]
+ : | `while_stmt`
+ : | `for_stmt`
+ : | `try_stmt`
+ : | `with_stmt`
+ : | `funcdef`
+ : | `classdef`
+ suite: `stmt_list` NEWLINE | NEWLINE INDENT `statement`+ DEDENT
+ statement: `stmt_list` NEWLINE | `compound_stmt`
+ stmt_list: `simple_stmt` (";" `simple_stmt`)* [";"]
.. index::
single: NEWLINE token
@@ -80,7 +80,7 @@
.. productionlist::
if_stmt: "if" `expression` ":" `suite`
- : ( "elif" `expression` ":" `suite` )\*
+ : ( "elif" `expression` ":" `suite` )*
: ["else" ":" `suite`]
.. index::
@@ -216,7 +216,7 @@
for a group of statements:
.. productionlist::
- try_stmt: try1_stmt \| try2_stmt
+ try_stmt: try1_stmt | try2_stmt
try1_stmt: "try" ":" `suite`
: ("except" [`expression` ["," `target`]] ":" `suite`)+
: ["else" ":" `suite`]
@@ -397,14 +397,14 @@
.. productionlist::
funcdef: [`decorators`] "def" `funcname` "(" [`parameter_list`] ")" ["->" `expression`]? ":" `suite`
- decorators: `decorator`\ +
+ decorators: `decorator`+
decorator: "@" `dotted_name` ["(" [`argument_list` [","]] ")"] NEWLINE
- dotted_name: `identifier` ("." `identifier`)\*
- parameter_list: (`defparameter` ",")\*
- : ( "\*" [`parameter`] ("," `defparameter`)\*
- : [, "\*\*" `parameter`]
- : \| "\*\*" `parameter`
- : \| `defparameter` [","] )
+ dotted_name: `identifier` ("." `identifier`)*
+ parameter_list: (`defparameter` ",")*
+ : ( "*" [`parameter`] ("," `defparameter`)*
+ : [, "**" `parameter`]
+ : | "**" `parameter`
+ : | `defparameter` [","] )
parameter: `identifier` [":" `expression`]
defparameter: `parameter` ["=" `expression`]
funcname: `identifier`
Modified: doctools/trunk/Doc-3k/reference/expressions.rst
==============================================================================
--- doctools/trunk/Doc-3k/reference/expressions.rst (original)
+++ doctools/trunk/Doc-3k/reference/expressions.rst Thu Aug 2 14:32:13 2007
@@ -63,10 +63,10 @@
atoms is:
.. productionlist::
- atom: `identifier` \| `literal` \| `enclosure`
- enclosure: `parenth_form` \| `list_display`
- : \| `generator_expression` \| `dict_display`
- : \| `string_conversion` \| `yield_atom`
+ atom: `identifier` | `literal` | `enclosure`
+ enclosure: `parenth_form` | `list_display`
+ : | `generator_expression` | `dict_display`
+ : | `string_conversion` | `yield_atom`
.. _atom-identifiers:
@@ -119,8 +119,8 @@
Python supports string literals and various numeric literals:
.. productionlist::
- literal: `stringliteral` \| `integer` \| `longinteger`
- : \| `floatnumber` \| `imagnumber`
+ literal: `stringliteral` | `integer` | `longinteger`
+ : | `floatnumber` | `imagnumber`
Evaluation of a literal yields an object of the given type (string, integer,
long integer, floating point number, complex number) with the given value. The
@@ -183,11 +183,11 @@
brackets:
.. productionlist::
- list_display: "[" [`expression_list` \| `list_comprehension`] "]"
+ list_display: "[" [`expression_list` | `list_comprehension`] "]"
list_comprehension: `expression` `list_for`
list_for: "for" `target_list` "in" `old_expression_list` [`list_iter`]
old_expression_list: `old_expression` [("," `old_expression`)+ [","]]
- list_iter: `list_for` \| `list_if`
+ list_iter: `list_for` | `list_if`
list_if: "if" `old_expression` [`list_iter`]
.. index::
@@ -219,7 +219,7 @@
.. productionlist::
generator_expression: "(" `expression` `genexpr_for` ")"
genexpr_for: "for" `target_list` "in" `or_test` [`genexpr_iter`]
- genexpr_iter: `genexpr_for` \| `genexpr_if`
+ genexpr_iter: `genexpr_for` | `genexpr_if`
genexpr_if: "if" `old_expression` [`genexpr_iter`]
.. index:: object: generator
@@ -262,7 +262,7 @@
.. productionlist::
dict_display: "{" [`key_datum_list`] "}"
- key_datum_list: `key_datum` ("," `key_datum`)\* [","]
+ key_datum_list: `key_datum` ("," `key_datum`)* [","]
key_datum: `expression` ":" `expression`
.. index:: object: dictionary
@@ -425,7 +425,7 @@
syntax is:
.. productionlist::
- primary: `atom` \| `attributeref` \| `subscription` \| `slicing` \| `call`
+ primary: `atom` | `attributeref` | `subscription` | `slicing` | `call`
.. _attribute-references:
@@ -517,12 +517,12 @@
:keyword:`del` statements. The syntax for a slicing:
.. productionlist::
- slicing: `simple_slicing` \| `extended_slicing`
+ slicing: `simple_slicing` | `extended_slicing`
simple_slicing: `primary` "[" `short_slice` "]"
extended_slicing: `primary` "[" `slice_list` "]"
- slice_list: `slice_item` ("," `slice_item`)\* [","]
- slice_item: `expression` \| `proper_slice` \| `ellipsis`
- proper_slice: `short_slice` \| `long_slice`
+ slice_list: `slice_item` ("," `slice_item`)* [","]
+ slice_item: `expression` | `proper_slice` | `ellipsis`
+ proper_slice: `short_slice` | `long_slice`
short_slice: [`lower_bound`] ":" [`upper_bound`]
long_slice: `short_slice` ":" [`stride`]
lower_bound: `expression`
@@ -581,16 +581,16 @@
.. productionlist::
call: `primary` "(" [`argument_list` [","]
- : \| `expression` `genexpr_for`] ")"
+ : | `expression` `genexpr_for`] ")"
argument_list: `positional_arguments` ["," `keyword_arguments`]
- : ["," "\*" `expression`]
- : ["," "\*\*" `expression`]
- : \| `keyword_arguments` ["," "\*" `expression`]
- : ["," "\*\*" `expression`]
- : \| "\*" `expression` ["," "\*\*" `expression`]
- : \| "\*\*" `expression`
- positional_arguments: `expression` ("," `expression`)\*
- keyword_arguments: `keyword_item` ("," `keyword_item`)\*
+ : ["," "*" `expression`]
+ : ["," "**" `expression`]
+ : | `keyword_arguments` ["," "*" `expression`]
+ : ["," "**" `expression`]
+ : | "*" `expression` ["," "**" `expression`]
+ : | "**" `expression`
+ positional_arguments: `expression` ("," `expression`)*
+ keyword_arguments: `keyword_item` ("," `keyword_item`)*
keyword_item: `identifier` "=" `expression`
A trailing comma may be present after the positional and keyword arguments but
@@ -736,7 +736,7 @@
less tightly than unary operators on its right. The syntax is:
.. productionlist::
- power: `primary` ["\*\*" `u_expr`]
+ power: `primary` ["**" `u_expr`]
Thus, in an unparenthesized sequence of power and unary operators, the operators
are evaluated from right to left (this does not constrain the evaluation order
@@ -772,7 +772,7 @@
All unary arithmetic (and bit-wise) operations have the same priority:
.. productionlist::
- u_expr: `power` \| "-" `u_expr` \| "+" `u_expr` \| "~" `u_expr`
+ u_expr: `power` | "-" `u_expr` | "+" `u_expr` | "~" `u_expr`
.. index::
single: negation
@@ -809,9 +809,9 @@
operators and one for additive operators:
.. productionlist::
- m_expr: `u_expr` \| `m_expr` "\*" `u_expr` \| `m_expr` "//" `u_expr` \| `m_expr` "/" `u_expr`
- : \| `m_expr` "%" `u_expr`
- a_expr: `m_expr` \| `a_expr` "+" `m_expr` \| `a_expr` "-" `m_expr`
+ m_expr: `u_expr` | `m_expr` "*" `u_expr` | `m_expr` "//" `u_expr` | `m_expr` "/" `u_expr`
+ : | `m_expr` "%" `u_expr`
+ a_expr: `m_expr` | `a_expr` "+" `m_expr` | `a_expr` "-" `m_expr`
.. index:: single: multiplication
@@ -884,7 +884,7 @@
The shifting operations have lower priority than the arithmetic operations:
.. productionlist::
- shift_expr: `a_expr` \| `shift_expr` ( "<<" \| ">>" ) `a_expr`
+ shift_expr: `a_expr` | `shift_expr` ( "<<" | ">>" ) `a_expr`
These operators accept plain or long integers as arguments. The arguments are
converted to a common type. They shift the first argument to the left or right
@@ -909,9 +909,9 @@
Each of the three bitwise operations has a different priority level:
.. productionlist::
- and_expr: `shift_expr` \| `and_expr` "&" `shift_expr`
- xor_expr: `and_expr` \| `xor_expr` "^" `and_expr`
- or_expr: `xor_expr` \| `or_expr` "\|" `xor_expr`
+ and_expr: `shift_expr` | `and_expr` "&" `shift_expr`
+ xor_expr: `and_expr` | `xor_expr` "^" `and_expr`
+ or_expr: `xor_expr` | `or_expr` "|" `xor_expr`
.. index:: pair: bit-wise; and
@@ -948,9 +948,9 @@
in mathematics:
.. productionlist::
- comparison: `or_expr` ( `comp_operator` `or_expr` )\*
- comp_operator: "<" \| ">" \| "==" \| ">=" \| "<=" \| "!="
- : \| "is" ["not"] \| ["not"] "in"
+ comparison: `or_expr` ( `comp_operator` `or_expr` )*
+ comp_operator: "<" | ">" | "==" | ">=" | "<=" | "!="
+ : | "is" ["not"] | ["not"] "in"
Comparisons yield boolean values: ``True`` or ``False``.
@@ -1070,12 +1070,12 @@
Boolean operations have the lowest priority of all Python operations:
.. productionlist::
- expression: `conditional_expression` \| `lambda_form`
- old_expression: `or_test` \| `old_lambda_form`
+ expression: `conditional_expression` | `lambda_form`
+ old_expression: `or_test` | `old_lambda_form`
conditional_expression: `or_test` ["if" `or_test` "else" `expression`]
- or_test: `and_test` \| `or_test` "or" `and_test`
- and_test: `not_test` \| `and_test` "and" `not_test`
- not_test: `comparison` \| "not" `not_test`
+ or_test: `and_test` | `or_test` "or" `and_test`
+ and_test: `not_test` | `and_test` "and" `not_test`
+ not_test: `comparison` | "not" `not_test`
In the context of Boolean operations, and also when expressions are used by
control flow statements, the following values are interpreted as false:
@@ -1149,7 +1149,7 @@
.. index:: pair: expression; list
.. productionlist::
- expression_list: `expression` ( "," `expression` )\* [","]
+ expression_list: `expression` ( "," `expression` )* [","]
.. index:: object: tuple
@@ -1251,8 +1251,6 @@
+----------------------------------------------+-------------------------------------+
| ``{key:datum...}`` | Dictionary display |
+----------------------------------------------+-------------------------------------+
-| ```expressions...``\ ` | String conversion |
-+----------------------------------------------+-------------------------------------+
.. rubric:: Footnotes
Modified: doctools/trunk/Doc-3k/reference/introduction.rst
==============================================================================
--- doctools/trunk/Doc-3k/reference/introduction.rst (original)
+++ doctools/trunk/Doc-3k/reference/introduction.rst Thu Aug 2 14:32:13 2007
@@ -98,7 +98,7 @@
notation. This uses the following style of definition:
.. productionlist:: *
- name: `lc_letter` (`lc_letter` \| "_")\*
+ name: `lc_letter` (`lc_letter` | "_")*
lc_letter: "a"..."z"
The first line says that a ``name`` is an ``lc_letter`` followed by a sequence
Modified: doctools/trunk/Doc-3k/reference/lexical_analysis.rst
==============================================================================
--- doctools/trunk/Doc-3k/reference/lexical_analysis.rst (original)
+++ doctools/trunk/Doc-3k/reference/lexical_analysis.rst Thu Aug 2 14:32:13 2007
@@ -323,8 +323,8 @@
definitions:
.. productionlist::
- identifier: (`letter`\|"_") (`letter` \| `digit` \| "_")\*
- letter: `lowercase` \| `uppercase`
+ identifier: (`letter`|"_") (`letter` | `digit` | "_")\*
+ letter: `lowercase` | `uppercase`
lowercase: "a"..."z"
uppercase: "A"..."Z"
digit: "0"..."9"
@@ -432,13 +432,13 @@
.. index:: single: ASCII at ASCII
.. productionlist::
- stringliteral: [`stringprefix`](`shortstring` \| `longstring`)
- stringprefix: "r" \| "u" \| "ur" \| "R" \| "U" \| "UR" \| "Ur" \| "uR"
- shortstring: "'" `shortstringitem`\* "'" \| '"' `shortstringitem`\* '"'
- longstring: ""'" `longstringitem`\* ""'"
- : \| '"""' `longstringitem`\* '"""'
- shortstringitem: `shortstringchar` \| `escapeseq`
- longstringitem: `longstringchar` \| `escapeseq`
+ stringliteral: [`stringprefix`](`shortstring` | `longstring`)
+ stringprefix: "r" | "u" | "ur" | "R" | "U" | "UR" | "Ur" | "uR"
+ shortstring: "'" `shortstringitem`* "'" | '"' `shortstringitem`* '"'
+ longstring: ""'" `longstringitem`* ""'"
+ : | '"""' `longstringitem`* '"""'
+ shortstringitem: `shortstringchar` | `escapeseq`
+ longstringitem: `longstringchar` | `escapeseq`
shortstringchar: <any source character except "\" or newline or the quote>
longstringchar: <any source character except "\">
escapeseq: "\" <any ASCII character>
@@ -639,14 +639,14 @@
Integer literals are described by the following lexical definitions:
.. productionlist::
- integer: `decimalinteger` \| `octinteger` \| `hexinteger`
- decimalinteger: `nonzerodigit` `digit`\* \| "0"+
- octinteger: "0" ("o" \| "O") `octdigit`\ +
- hexinteger: "0" ("x" \| "X") `hexdigit`\ +
- bininteger: "0" ("b" \| "B") `bindigit`\ +
+ integer: `decimalinteger` | `octinteger` | `hexinteger`
+ decimalinteger: `nonzerodigit` `digit`* | "0"+
+ octinteger: "0" ("o" | "O") `octdigit`+
+ hexinteger: "0" ("x" | "X") `hexdigit`+
+ bininteger: "0" ("b" | "B") `bindigit`+
nonzerodigit: "1"..."9"
octdigit: "0"..."7"
- hexdigit: `digit` \| "a"..."f" \| "A"..."F"
+ hexdigit: `digit` | "a"..."f" | "A"..."F"
bindigit: "0"..."1"
Plain integer literals that are above the largest representable plain integer
@@ -673,12 +673,12 @@
Floating point literals are described by the following lexical definitions:
.. productionlist::
- floatnumber: `pointfloat` \| `exponentfloat`
- pointfloat: [`intpart`] `fraction` \| `intpart` "."
- exponentfloat: (`intpart` \| `pointfloat`) `exponent`
- intpart: `digit`\ +
- fraction: "." `digit`\ +
- exponent: ("e" \| "E") ["+" \| "-"] `digit`\ +
+ floatnumber: `pointfloat` | `exponentfloat`
+ pointfloat: [`intpart`] `fraction` | `intpart` "."
+ exponentfloat: (`intpart` | `pointfloat`) `exponent`
+ intpart: `digit`+
+ fraction: "." `digit`+
+ exponent: ("e" | "E") ["+" | "-"] `digit`+
Note that the integer and exponent parts are always interpreted using radix 10.
For example, ``077e010`` is legal, and denotes the same number as ``77e10``. The
@@ -700,7 +700,7 @@
Imaginary literals are described by the following lexical definitions:
.. productionlist::
- imagnumber: (`floatnumber` \| `intpart`) ("j" \| "J")
+ imagnumber: (`floatnumber` | `intpart`) ("j" | "J")
An imaginary literal yields a complex number with a real part of 0.0. Complex
numbers are represented as a pair of floating point numbers and have the same
Modified: doctools/trunk/Doc-3k/reference/simple_stmts.rst
==============================================================================
--- doctools/trunk/Doc-3k/reference/simple_stmts.rst (original)
+++ doctools/trunk/Doc-3k/reference/simple_stmts.rst Thu Aug 2 14:32:13 2007
@@ -13,18 +13,18 @@
.. productionlist::
simple_stmt: `expression_stmt`
- : \| `assert_stmt`
- : \| `assignment_stmt`
- : \| `augmented_assignment_stmt`
- : \| `pass_stmt`
- : \| `del_stmt`
- : \| `return_stmt`
- : \| `yield_stmt`
- : \| `raise_stmt`
- : \| `break_stmt`
- : \| `continue_stmt`
- : \| `import_stmt`
- : \| `global_stmt`
+ : | `assert_stmt`
+ : | `assignment_stmt`
+ : | `augmented_assignment_stmt`
+ : | `pass_stmt`
+ : | `del_stmt`
+ : | `return_stmt`
+ : | `yield_stmt`
+ : | `raise_stmt`
+ : | `break_stmt`
+ : | `continue_stmt`
+ : | `import_stmt`
+ : | `global_stmt`
.. _exprstmts:
@@ -122,14 +122,14 @@
attributes or items of mutable objects:
.. productionlist::
- assignment_stmt: (`target_list` "=")+ (`expression_list` \| `yield_expression`)
- target_list: `target` ("," `target`)\* [","]
+ assignment_stmt: (`target_list` "=")+ (`expression_list` | `yield_expression`)
+ target_list: `target` ("," `target`)* [","]
target: `identifier`
- : \| "(" `target_list` ")"
- : \| "[" `target_list` "]"
- : \| `attributeref`
- : \| `subscription`
- : \| `slicing`
+ : | "(" `target_list` ")"
+ : | "[" `target_list` "]"
+ : | `attributeref`
+ : | `subscription`
+ : | `slicing`
(See section :ref:`primaries` for the syntax definitions for the last three
symbols.)
@@ -270,9 +270,9 @@
operation and an assignment statement:
.. productionlist::
- augmented_assignment_stmt: `target` `augop` (`expression_list` \| `yield_expression`)
- augop: "+=" \| "-=" \| "\*=" \| "/=" \| "%=" \| "\*\*="
- : \| ">>=" \| "<<=" \| "&=" \| "^=" \| "\|="
+ augmented_assignment_stmt: `target` `augop` (`expression_list` | `yield_expression`)
+ augop: "+=" | "-=" | "*=" | "/=" | "%=" | "**="
+ : | ">>=" | "<<=" | "&=" | "^=" | "|="
(See section :ref:`primaries` for the syntax definitions for the last three
symbols.)
@@ -582,14 +582,14 @@
keyword: from
.. productionlist::
- import_stmt: "import" `module` ["as" `name`] ( "," `module` ["as" `name`] )\*
- : \| "from" `relative_module` "import" `identifier` ["as" `name`]
- : ( "," `identifier` ["as" `name`] )\*
- : \| "from" `relative_module` "import" "(" `identifier` ["as" `name`]
- : ( "," `identifier` ["as" `name`] )\* [","] ")"
- : \| "from" `module` "import" "\*"
- module: (`identifier` ".")\* `identifier`
- relative_module: "."\* `module` \| "."+
+ import_stmt: "import" `module` ["as" `name`] ( "," `module` ["as" `name`] )*
+ : | "from" `relative_module` "import" `identifier` ["as" `name`]
+ : ( "," `identifier` ["as" `name`] )*
+ : | "from" `relative_module` "import" "(" `identifier` ["as" `name`]
+ : ( "," `identifier` ["as" `name`] )* [","] ")"
+ : | "from" `module` "import" "*"
+ module: (`identifier` ".")* `identifier`
+ relative_module: "."* `module` | "."+
name: `identifier`
Import statements are executed in two steps: (1) find a module, and initialize
@@ -718,9 +718,9 @@
.. productionlist:: *
future_statement: "from" "__future__" "import" feature ["as" name]
- : ("," feature ["as" name])\*
- : \| "from" "__future__" "import" "(" feature ["as" name]
- : ("," feature ["as" name])\* [","] ")"
+ : ("," feature ["as" name])*
+ : | "from" "__future__" "import" "(" feature ["as" name]
+ : ("," feature ["as" name])* [","] ")"
feature: identifier
name: identifier
@@ -788,7 +788,7 @@
.. index:: statement: global
.. productionlist::
- global_stmt: "global" `identifier` ("," `identifier`)\*
+ global_stmt: "global" `identifier` ("," `identifier`)*
.. index:: triple: global; name; binding
Modified: doctools/trunk/Doc-3k/reference/toplevel_components.rst
==============================================================================
--- doctools/trunk/Doc-3k/reference/toplevel_components.rst (original)
+++ doctools/trunk/Doc-3k/reference/toplevel_components.rst Thu Aug 2 14:32:13 2007
@@ -66,7 +66,7 @@
All input read from non-interactive files has the same form:
.. productionlist::
- file_input: (NEWLINE \| `statement`)\*
+ file_input: (NEWLINE | `statement`)*
This syntax is used in the following situations:
@@ -85,7 +85,7 @@
Input in interactive mode is parsed using the following grammar:
.. productionlist::
- interactive_input: [`stmt_list`] NEWLINE \| `compound_stmt` NEWLINE
+ interactive_input: [`stmt_list`] NEWLINE | `compound_stmt` NEWLINE
Note that a (top-level) compound statement must be followed by a blank line in
interactive mode; this is needed to help the parser detect the end of the input.
@@ -104,7 +104,7 @@
string argument to :func:`eval` must have the following form:
.. productionlist::
- eval_input: `expression_list` NEWLINE\*
+ eval_input: `expression_list` NEWLINE*
.. index:: builtin: input
More information about the Python-checkins
mailing list