bpo-33702: Add some missing links in production lists and do a little polish (GH-7259)

This commit is contained in:
Andrés Delfino 2018-07-07 17:24:46 -03:00 committed by Serhiy Storchaka
parent b6bb77c2b8
commit caccca78e4
3 changed files with 25 additions and 25 deletions

View file

@ -235,7 +235,7 @@ The :keyword:`try` statement specifies exception handlers and/or cleanup code
for a group of statements:
.. productionlist::
try_stmt: try1_stmt | try2_stmt
try_stmt: `try1_stmt` | `try2_stmt`
try1_stmt: "try" ":" `suite`
: ("except" [`expression` ["as" `identifier`]] ":" `suite`)+
: ["else" ":" `suite`]
@ -384,7 +384,7 @@ This allows common :keyword:`try`...\ :keyword:`except`...\ :keyword:`finally`
usage patterns to be encapsulated for convenient reuse.
.. productionlist::
with_stmt: "with" with_item ("," with_item)* ":" `suite`
with_stmt: "with" `with_item` ("," `with_item`)* ":" `suite`
with_item: `expression` ["as" `target`]
The execution of the :keyword:`with` statement with one "item" proceeds as follows:
@ -468,7 +468,8 @@ A function definition defines a user-defined function object (see section
:ref:`types`):
.. productionlist::
funcdef: [`decorators`] "def" `funcname` "(" [`parameter_list`] ")" ["->" `expression`] ":" `suite`
funcdef: [`decorators`] "def" `funcname` "(" [`parameter_list`] ")"
: ["->" `expression`] ":" `suite`
decorators: `decorator`+
decorator: "@" `dotted_name` ["(" [`argument_list` [","]] ")"] NEWLINE
dotted_name: `identifier` ("." `identifier`)*
@ -698,7 +699,8 @@ Coroutine function definition
-----------------------------
.. productionlist::
async_funcdef: [`decorators`] "async" "def" `funcname` "(" [`parameter_list`] ")" ["->" `expression`] ":" `suite`
async_funcdef: [`decorators`] "async" "def" `funcname` "(" [`parameter_list`] ")"
: ["->" `expression`] ":" `suite`
.. index::
keyword: async

View file

@ -707,15 +707,14 @@ The :keyword:`import` statement
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`] )* [","] ")"
import_stmt: "import" `module` ["as" `identifier`] ("," `module` ["as" `identifier`])*
: | "from" `relative_module` "import" `identifier` ["as" `identifier`]
: ("," `identifier` ["as" `identifier`])*
: | "from" `relative_module` "import" "(" `identifier` ["as" `identifier`]
: ("," `identifier` ["as" `identifier`])* [","] ")"
: | "from" `module` "import" "*"
module: (`identifier` ".")* `identifier`
relative_module: "."* `module` | "."+
name: `identifier`
The basic import statement (no :keyword:`from` clause) is executed in two
steps:
@ -837,12 +836,11 @@ features on a per-module basis before the release in which the feature becomes
standard.
.. productionlist:: *
future_statement: "from" "__future__" "import" feature ["as" name]
: ("," feature ["as" name])*
: | "from" "__future__" "import" "(" feature ["as" name]
: ("," feature ["as" name])* [","] ")"
feature: identifier
name: identifier
future_stmt: "from" "__future__" "import" `feature` ["as" `identifier`]
: ("," `feature` ["as" `identifier`])*
: | "from" "__future__" "import" "(" `feature` ["as" `identifier`]
: ("," `feature` ["as" `identifier`])* [","] ")"
feature: `identifier`
A future statement must appear near the top of the module. The only lines that
can appear before a future statement are: