name ::= lc_letter (lc_letter | "_")*
(letter|"_") (letter | digit | "_")*
[stringprefix](shortstring | longstring)
"r" | "u" | "ur" | "R" | "U" | "UR" | "Ur" | "uR"
| '"' shortstringitem* '"'
"'''" longstringitem* "'''"
| '"""' longstringitem* '"""'
shortstringchar | escapeseq
longstringchar | escapeseq
<any source character except "\" or newline or the quote>
<any source character except "\">
"\" <any ASCII character>
decimalinteger | octinteger | hexinteger
nonzerodigit digit* | "0"
"0" ("x" | "X") hexdigit+
digit | "a"..."f" | "A"..."F"
pointfloat | exponentfloat
[intpart] fraction | intpart "."
("e" | "E") ["+" | "-"] digit+
imagnumber ::= (floatnumber | intpart) ("j" | "J")
identifier | literal | enclosure
parenth_form | list_display
| generator_expression | dict_display
stringliteral | integer | longinteger
| floatnumber | imagnumber
"(" [expression_list] ")"
and_test ( "or" and_test )*
test ( "," test )* [ "," ]
| ( "," expression )* [","] )
"for" expression_list "in" testlist
"for" expression_list "in" test
"\{" [key_datum_list] "\}"
key_datum ("," key_datum)* [","]
expression ":" expression
| subscription | slicing | call
primary "[" expression_list "]"
simple_slicing | extended_slicing
primary "[" short_slice "]"
primary "[" slice_list "]"
slice_item ("," slice_item)* [","]
expression | proper_slice | ellipsis
[lower_bound] ":" [upper_bound]
primary "(" [argument_list [","]] ")"
primary "(" [argument_list [","] |
positional_arguments ["," keyword_arguments]
| keyword_arguments ["," "*" expression]
| "*" expression ["," "**" expression]
expression ("," expression)*
keyword_item ("," keyword_item)*
identifier "=" expression
| "+" u_expr | "\~" u_expr
u_expr | m_expr "*" u_expr
m_expr | a_expr "+" m_expr
<tex2html_comment_mark>39
| shift_expr ( "<<" | ">>" ) a_expr
shift_expr | and_expr "\;SPMamp;" shift_expr
and_expr | xor_expr "\textasciicircum" and_expr
xor_expr | or_expr "|" xor_expr
or_expr ( comp_operator or_expr )*
"<" | ">" | "==" | ">=" | "<=" | "<>" | "!="
| "is" ["not"] | ["not"] "in"
and_test | or_test "or" and_test
not_test | and_test "and" not_test
comparison | "not" not_test
"lambda" [parameter_list]: expression
expression ( "," expression )* [","]
simple_stmt ::= expression_stmt
| augmented_assignment_stmt
"assert" expression ["," expression]
(target_list "=")+ expression_list
target ("," target)* [","]
augmented_assignment_stmt ::=
target augop expression_list
"+=" | "-=" | "*=" | "/=" | "\%=" | "**="
<tex2html_comment_mark>45
| ">>=" | "<<=" | "\&=" | "\textasciicircum=" | "|="
"print" ( \optionalexpression ("," expression)* \optional","
\optional("," expression)+ \optional"," )
"return" [expression_list]
"raise" [expression ["," expression
"import" module ["as" name]
( "," module ["as" name] )*
| "from" module "import" identifier
( "," identifier ["as" name] )*
| "from" module "import" "(" identifier
( "," identifier ["as" name] )* [","] ")"
| "from" module "import" "*"
(identifier ".")* identifier
"global" identifier ("," identifier)*
["in" expression ["," expression]]
| NEWLINE INDENT statement+ DEDENT
stmt_list NEWLINE | compound_stmt
simple_stmt (";" simple_stmt)* [";"]
"if" expression ":" suite
( "elif" expression ":" suite )*
"while" expression ":" suite
"for" target_list "in" expression_list
try_exc_stmt | try_fin_stmt
["," target]] ":" suite)+
[decorators] "def" funcname "(" [parameter_list] ")"
"@" dotted_name ["(" [argument_list [","]] ")"] NEWLINE
identifier ("." identifier)*
(~~"*" identifier [, "**" identifier]
parameter ["=" expression]
parameter ("," parameter)* [","]
identifier | "(" sublist ")"
"class" classname [inheritance] ":"
[stmt_list] NEWLINE | compound_stmt NEWLINE