summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Doc/library/ast.rst31
-rw-r--r--Doc/library/dis.rst26
-rw-r--r--Doc/whatsnew/3.11.rst2
-rw-r--r--Grammar/python.gram17
-rw-r--r--Include/internal/pycore_ast.h17
-rw-r--r--Include/internal/pycore_ast_state.h1
-rw-r--r--Include/internal/pycore_pyerrors.h8
-rw-r--r--Include/opcode.h6
-rw-r--r--Lib/ast.py21
-rw-r--r--Lib/importlib/_bootstrap_external.py3
-rw-r--r--Lib/opcode.py3
-rw-r--r--Lib/test/test_ast.py23
-rw-r--r--Lib/test/test_compile.py33
-rw-r--r--Lib/test/test_dis.py52
-rw-r--r--Lib/test/test_except_star.py976
-rw-r--r--Lib/test/test_exception_group.py3
-rw-r--r--Lib/test/test_exception_variations.py278
-rw-r--r--Lib/test/test_exceptions.py2
-rw-r--r--Lib/test/test_grammar.py24
-rw-r--r--Lib/test/test_syntax.py100
-rw-r--r--Lib/test/test_sys_settrace.py175
-rw-r--r--Lib/test/test_unparse.py16
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2021-11-22-13-05-32.bpo-45292.pfEouJ.rst1
-rw-r--r--Objects/exceptions.c158
-rw-r--r--Objects/frameobject.c5
-rw-r--r--Parser/Python.asdl1
-rw-r--r--Parser/parser.c4496
-rw-r--r--Python/Python-ast.c229
-rw-r--r--Python/ast.c25
-rw-r--r--Python/ast_opt.c6
-rw-r--r--Python/ceval.c355
-rw-r--r--Python/compile.c339
-rw-r--r--Python/opcode_targets.h6
-rw-r--r--Python/symtable.c6
34 files changed, 5591 insertions, 1853 deletions
diff --git a/Doc/library/ast.rst b/Doc/library/ast.rst
index e29b5e8..6486ed4 100644
--- a/Doc/library/ast.rst
+++ b/Doc/library/ast.rst
@@ -1167,6 +1167,37 @@ Control flow
type_ignores=[])
+.. class:: TryStar(body, handlers, orelse, finalbody)
+
+ ``try`` blocks which are followed by ``except*`` clauses. The attributes are the
+ same as for :class:`Try` but the :class:`ExceptHandler` nodes in ``handlers``
+ are interpreted as ``except*`` blocks rather then ``except``.
+
+ .. doctest::
+
+ >>> print(ast.dump(ast.parse("""
+ ... try:
+ ... ...
+ ... except* Exception:
+ ... ...
+ ... """), indent=4))
+ Module(
+ body=[
+ TryStar(
+ body=[
+ Expr(
+ value=Constant(value=Ellipsis))],
+ handlers=[
+ ExceptHandler(
+ type=Name(id='Exception', ctx=Load()),
+ body=[
+ Expr(
+ value=Constant(value=Ellipsis))])],
+ orelse=[],
+ finalbody=[])],
+ type_ignores=[])
+
+
.. class:: ExceptHandler(type, name, body)
A single ``except`` clause. ``type`` is the exception type it will match,
diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst
index 9665e8d..7ac5a9b 100644
--- a/Doc/library/dis.rst
+++ b/Doc/library/dis.rst
@@ -872,8 +872,10 @@ All of the following opcodes use their arguments.
.. versionadded:: 3.1
+
.. opcode:: JUMP_IF_NOT_EXC_MATCH (target)
+ Performs exception matching for ``except``.
Tests whether the second value on the stack is an exception matching TOS,
and jumps if it is not. Pops one value from the stack.
@@ -883,6 +885,30 @@ All of the following opcodes use their arguments.
This opcode no longer pops the active exception.
+.. opcode:: JUMP_IF_NOT_EG_MATCH (target)
+
+ Performs exception matching for ``except*``. Applies ``split(TOS)`` on
+ the exception group representing TOS1. Jumps if no match is found.
+
+ Pops one item from the stack. If a match was found, pops the 3 items representing
+ the exception and pushes the 3 items representing the non-matching part of
+ the exception group, followed by the 3 items representing the matching part.
+ In other words, in case of a match it pops 4 items and pushes 6.
+
+ .. versionadded:: 3.11
+
+
+.. opcode:: PREP_RERAISE_STAR
+
+ Combines the raised and reraised exceptions list from TOS, into an exception
+ group to propagate from a try-except* block. Uses the original exception
+ group from TOS1 to reconstruct the structure of reraised exceptions. Pops
+ two items from the stack and pushes a triplet representing the exception to
+ reraise or three ``None`` if there isn't one.
+
+ .. versionadded:: 3.11
+
+
.. opcode:: JUMP_IF_TRUE_OR_POP (target)
If TOS is true, sets the bytecode counter to *target* and leaves TOS on the
diff --git a/Doc/whatsnew/3.11.rst b/Doc/whatsnew/3.11.rst
index 8d1f4eb..793075c 100644
--- a/Doc/whatsnew/3.11.rst
+++ b/Doc/whatsnew/3.11.rst
@@ -65,6 +65,8 @@ Summary -- Release highlights
.. PEP-sized items next.
+PEP-654: Exception Groups and ``except*``.
+(Contributed by Irit Katriel in :issue:`45292`.)
New Features
============
diff --git a/Grammar/python.gram b/Grammar/python.gram
index 2c696a6..c989823 100644
--- a/Grammar/python.gram
+++ b/Grammar/python.gram
@@ -403,6 +403,8 @@ try_stmt[stmt_ty]:
| invalid_try_stmt
| 'try' &&':' b=block f=finally_block { _PyAST_Try(b, NULL, NULL, f, EXTRA) }
| 'try' &&':' b=block ex[asdl_excepthandler_seq*]=except_block+ el=[else_block] f=[finally_block] { _PyAST_Try(b, ex, el, f, EXTRA) }
+ | 'try' &&':' b=block ex[asdl_excepthandler_seq*]=except_star_block+ el=[else_block] f=[finally_block] { _PyAST_TryStar(b, ex, el, f, EXTRA) }
+
# Except statement
# ----------------
@@ -413,6 +415,11 @@ except_block[excepthandler_ty]:
_PyAST_ExceptHandler(e, (t) ? ((expr_ty) t)->v.Name.id : NULL, b, EXTRA) }
| 'except' ':' b=block { _PyAST_ExceptHandler(NULL, NULL, b, EXTRA) }
| invalid_except_stmt
+except_star_block[excepthandler_ty]:
+ | invalid_except_star_stmt_indent
+ | 'except' '*' e=expression t=['as' z=NAME { z }] ':' b=block {
+ _PyAST_ExceptHandler(e, (t) ? ((expr_ty) t)->v.Name.id : NULL, b, EXTRA) }
+ | invalid_except_stmt
finally_block[asdl_stmt_seq*]:
| invalid_finally_stmt
| 'finally' &&':' a=block { a }
@@ -1192,11 +1199,14 @@ invalid_try_stmt:
| a='try' ':' NEWLINE !INDENT {
RAISE_INDENTATION_ERROR("expected an indented block after 'try' statement on line %d", a->lineno) }
| 'try' ':' block !('except' | 'finally') { RAISE_SYNTAX_ERROR("expected 'except' or 'finally' block") }
+ | 'try' ':' block* ((except_block+ except_star_block) | (except_star_block+ except_block)) block* {
+ RAISE_SYNTAX_ERROR("cannot have both 'except' and 'except*' on the same 'try'") }
invalid_except_stmt:
- | 'except' a=expression ',' expressions ['as' NAME ] ':' {
+ | 'except' '*'? a=expression ',' expressions ['as' NAME ] ':' {
RAISE_SYNTAX_ERROR_STARTING_FROM(a, "multiple exception types must be parenthesized") }
- | a='except' expression ['as' NAME ] NEWLINE { RAISE_SYNTAX_ERROR("expected ':'") }
+ | a='except' '*'? expression ['as' NAME ] NEWLINE { RAISE_SYNTAX_ERROR("expected ':'") }
| a='except' NEWLINE { RAISE_SYNTAX_ERROR("expected ':'") }
+ | a='except' '*' (NEWLINE | ':') { RAISE_SYNTAX_ERROR("expected one or more exception types") }
invalid_finally_stmt:
| a='finally' ':' NEWLINE !INDENT {
RAISE_INDENTATION_ERROR("expected an indented block after 'finally' statement on line %d", a->lineno) }
@@ -1204,6 +1214,9 @@ invalid_except_stmt_indent:
| a='except' expression ['as' NAME ] ':' NEWLINE !INDENT {
RAISE_INDENTATION_ERROR("expected an indented block after 'except' statement on line %d", a->lineno) }
| a='except' ':' NEWLINE !INDENT { RAISE_SYNTAX_ERROR("expected an indented block after except statement on line %d", a->lineno) }
+invalid_except_star_stmt_indent:
+ | a='except' '*' expression ['as' NAME ] ':' NEWLINE !INDENT {
+ RAISE_INDENTATION_ERROR("expected an indented block after 'except*' statement on line %d", a->lineno) }
invalid_match_stmt:
| "match" subject_expr !':' { CHECK_VERSION(void*, 10, "Pattern matching is", RAISE_SYNTAX_ERROR("expected ':'") ) }
| a="match" subject=subject_expr ':' NEWLINE !INDENT {
diff --git a/Include/internal/pycore_ast.h b/Include/internal/pycore_ast.h
index ebb6a90..36277ef 100644
--- a/Include/internal/pycore_ast.h
+++ b/Include/internal/pycore_ast.h
@@ -179,9 +179,9 @@ enum _stmt_kind {FunctionDef_kind=1, AsyncFunctionDef_kind=2, ClassDef_kind=3,
AugAssign_kind=7, AnnAssign_kind=8, For_kind=9,
AsyncFor_kind=10, While_kind=11, If_kind=12, With_kind=13,
AsyncWith_kind=14, Match_kind=15, Raise_kind=16, Try_kind=17,
- Assert_kind=18, Import_kind=19, ImportFrom_kind=20,
- Global_kind=21, Nonlocal_kind=22, Expr_kind=23, Pass_kind=24,
- Break_kind=25, Continue_kind=26};
+ TryStar_kind=18, Assert_kind=19, Import_kind=20,
+ ImportFrom_kind=21, Global_kind=22, Nonlocal_kind=23,
+ Expr_kind=24, Pass_kind=25, Break_kind=26, Continue_kind=27};
struct _stmt {
enum _stmt_kind kind;
union {
@@ -296,6 +296,13 @@ struct _stmt {
} Try;
struct {
+ asdl_stmt_seq *body;
+ asdl_excepthandler_seq *handlers;
+ asdl_stmt_seq *orelse;
+ asdl_stmt_seq *finalbody;
+ } TryStar;
+
+ struct {
expr_ty test;
expr_ty msg;
} Assert;
@@ -688,6 +695,10 @@ stmt_ty _PyAST_Try(asdl_stmt_seq * body, asdl_excepthandler_seq * handlers,
asdl_stmt_seq * orelse, asdl_stmt_seq * finalbody, int
lineno, int col_offset, int end_lineno, int end_col_offset,
PyArena *arena);
+stmt_ty _PyAST_TryStar(asdl_stmt_seq * body, asdl_excepthandler_seq * handlers,
+ asdl_stmt_seq * orelse, asdl_stmt_seq * finalbody, int
+ lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena);
stmt_ty _PyAST_Assert(expr_ty test, expr_ty msg, int lineno, int col_offset,
int end_lineno, int end_col_offset, PyArena *arena);
stmt_ty _PyAST_Import(asdl_alias_seq * names, int lineno, int col_offset, int
diff --git a/Include/internal/pycore_ast_state.h b/Include/internal/pycore_ast_state.h
index 882cd09..da78bba 100644
--- a/Include/internal/pycore_ast_state.h
+++ b/Include/internal/pycore_ast_state.h
@@ -132,6 +132,7 @@ struct ast_state {
PyObject *Sub_singleton;
PyObject *Sub_type;
PyObject *Subscript_type;
+ PyObject *TryStar_type;
PyObject *Try_type;
PyObject *Tuple_type;
PyObject *TypeIgnore_type;
diff --git a/Include/internal/pycore_pyerrors.h b/Include/internal/pycore_pyerrors.h
index 3134afe..5e8d202 100644
--- a/Include/internal/pycore_pyerrors.h
+++ b/Include/internal/pycore_pyerrors.h
@@ -92,6 +92,14 @@ PyAPI_FUNC(PyObject *) _PyErr_FormatFromCauseTstate(
const char *format,
...);
+PyAPI_FUNC(PyObject *) _PyExc_CreateExceptionGroup(
+ const char *msg,
+ PyObject *excs);
+
+PyAPI_FUNC(PyObject *) _PyExc_ExceptionGroupProjection(
+ PyObject *left,
+ PyObject *right);
+
PyAPI_FUNC(int) _PyErr_CheckSignalsTstate(PyThreadState *tstate);
PyAPI_FUNC(void) _Py_DumpExtensionModules(int fd, PyInterpreterState *interp);
diff --git a/Include/opcode.h b/Include/opcode.h
index f22f7e9..1341a8a 100644
--- a/Include/opcode.h
+++ b/Include/opcode.h
@@ -45,6 +45,7 @@ extern "C" {
#define IMPORT_STAR 84
#define SETUP_ANNOTATIONS 85
#define YIELD_VALUE 86
+#define PREP_RERAISE_STAR 88
#define POP_EXCEPT 89
#define HAVE_ARGUMENT 90
#define STORE_NAME 90
@@ -83,6 +84,7 @@ extern "C" {
#define LOAD_FAST 124
#define STORE_FAST 125
#define DELETE_FAST 126
+#define JUMP_IF_NOT_EG_MATCH 127
#define GEN_START 129
#define RAISE_VARARGS 130
#define CALL_FUNCTION 131
@@ -161,7 +163,7 @@ extern "C" {
#define STORE_FAST__LOAD_FAST 80
#define LOAD_FAST__LOAD_CONST 81
#define LOAD_CONST__LOAD_FAST 87
-#define STORE_FAST__STORE_FAST 88
+#define STORE_FAST__STORE_FAST 123
#define DO_TRACING 255
#ifdef NEED_OPCODE_JUMP_TABLES
static uint32_t _PyOpcode_RelativeJump[8] = {
@@ -178,7 +180,7 @@ static uint32_t _PyOpcode_Jump[8] = {
0U,
0U,
536870912U,
- 34586624U,
+ 2182070272U,
0U,
0U,
0U,
diff --git a/Lib/ast.py b/Lib/ast.py
index 400d7c4..625738a 100644
--- a/Lib/ast.py
+++ b/Lib/ast.py
@@ -683,6 +683,7 @@ class _Unparser(NodeVisitor):
self._type_ignores = {}
self._indent = 0
self._avoid_backslashes = _avoid_backslashes
+ self._in_try_star = False
def interleave(self, inter, f, seq):
"""Call f on each item in seq, calling inter() in between."""
@@ -953,7 +954,7 @@ class _Unparser(NodeVisitor):
self.write(" from ")
self.traverse(node.cause)
- def visit_Try(self, node):
+ def do_visit_try(self, node):
self.fill("try")
with self.block():
self.traverse(node.body)
@@ -968,8 +969,24 @@ class _Unparser(NodeVisitor):
with self.block():
self.traverse(node.finalbody)
+ def visit_Try(self, node):
+ prev_in_try_star = self._in_try_star
+ try:
+ self._in_try_star = False
+ self.do_visit_try(node)
+ finally:
+ self._in_try_star = prev_in_try_star
+
+ def visit_TryStar(self, node):
+ prev_in_try_star = self._in_try_star
+ try:
+ self._in_try_star = True
+ self.do_visit_try(node)
+ finally:
+ self._in_try_star = prev_in_try_star
+
def visit_ExceptHandler(self, node):
- self.fill("except")
+ self.fill("except*" if self._in_try_star else "except")
if node.type:
self.write(" ")
self.traverse(node.type)
diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py
index 6970e9f..6e7ea7b 100644
--- a/Lib/importlib/_bootstrap_external.py
+++ b/Lib/importlib/_bootstrap_external.py
@@ -371,6 +371,7 @@ _code_type = type(_write_atomic.__code__)
# Python 3.11a3 3464 (bpo-45636: Merge numeric BINARY_*/INPLACE_* into
# BINARY_OP)
# Python 3.11a3 3465 (Add COPY_FREE_VARS opcode)
+# Python 3.11a3 3466 (bpo-45292: PEP-654 except*)
#
# MAGIC must change whenever the bytecode emitted by the compiler may no
@@ -380,7 +381,7 @@ _code_type = type(_write_atomic.__code__)
# Whenever MAGIC_NUMBER is changed, the ranges in the magic_values array
# in PC/launcher.c must also be updated.
-MAGIC_NUMBER = (3465).to_bytes(2, 'little') + b'\r\n'
+MAGIC_NUMBER = (3466).to_bytes(2, 'little') + b'\r\n'
_RAW_MAGIC_NUMBER = int.from_bytes(MAGIC_NUMBER, 'little') # For import.c
_PYCACHE = '__pycache__'
diff --git a/Lib/opcode.py b/Lib/opcode.py
index e5889bc..299216d 100644
--- a/Lib/opcode.py
+++ b/Lib/opcode.py
@@ -103,6 +103,7 @@ def_op('IMPORT_STAR', 84)
def_op('SETUP_ANNOTATIONS', 85)
def_op('YIELD_VALUE', 86)
+def_op('PREP_RERAISE_STAR', 88)
def_op('POP_EXCEPT', 89)
HAVE_ARGUMENT = 90 # Opcodes from here have an argument:
@@ -150,6 +151,8 @@ haslocal.append(125)
def_op('DELETE_FAST', 126) # Local variable number
haslocal.append(126)
+jabs_op('JUMP_IF_NOT_EG_MATCH', 127)
+
def_op('GEN_START', 129) # Kind of generator/coroutine
def_op('RAISE_VARARGS', 130) # Number of raise arguments (1, 2, or 3)
def_op('CALL_FUNCTION', 131) # #args
diff --git a/Lib/test/test_ast.py b/Lib/test/test_ast.py
index e630677..314b360 100644
--- a/Lib/test/test_ast.py
+++ b/Lib/test/test_ast.py
@@ -86,6 +86,8 @@ exec_tests = [
"try:\n pass\nexcept Exception:\n pass",
# TryFinally
"try:\n pass\nfinally:\n pass",
+ # TryStarExcept
+ "try:\n pass\nexcept* Exception:\n pass",
# Assert
"assert v",
# Import
@@ -1310,6 +1312,26 @@ class ASTValidatorTests(unittest.TestCase):
t = ast.Try([p], e, [p], [ast.Expr(ast.Name("x", ast.Store()))])
self.stmt(t, "must have Load context")
+ def test_try_star(self):
+ p = ast.Pass()
+ t = ast.TryStar([], [], [], [p])
+ self.stmt(t, "empty body on TryStar")
+ t = ast.TryStar([ast.Expr(ast.Name("x", ast.Store()))], [], [], [p])
+ self.stmt(t, "must have Load context")
+ t = ast.TryStar([p], [], [], [])
+ self.stmt(t, "TryStar has neither except handlers nor finalbody")
+ t = ast.TryStar([p], [], [p], [p])
+ self.stmt(t, "TryStar has orelse but no except handlers")
+ t = ast.TryStar([p], [ast.ExceptHandler(None, "x", [])], [], [])
+ self.stmt(t, "empty body on ExceptHandler")
+ e = [ast.ExceptHandler(ast.Name("x", ast.Store()), "y", [p])]
+ self.stmt(ast.TryStar([p], e, [], []), "must have Load context")
+ e = [ast.ExceptHandler(None, "x", [p])]
+ t = ast.TryStar([p], e, [ast.Expr(ast.Name("x", ast.Store()))], [p])
+ self.stmt(t, "must have Load context")
+ t = ast.TryStar([p], e, [p], [ast.Expr(ast.Name("x", ast.Store()))])
+ self.stmt(t, "must have Load context")
+
def test_assert(self):
self.stmt(ast.Assert(ast.Name("x", ast.Store()), None),
"must have Load context")
@@ -2316,6 +2338,7 @@ exec_results = [
('Module', [('Raise', (1, 0, 1, 25), ('Call', (1, 6, 1, 25), ('Name', (1, 6, 1, 15), 'Exception', ('Load',)), [('Constant', (1, 16, 1, 24), 'string', None)], []), None)], []),
('Module', [('Try', (1, 0, 4, 6), [('Pass', (2, 2, 2, 6))], [('ExceptHandler', (3, 0, 4, 6), ('Name', (3, 7, 3, 16), 'Exception', ('Load',)), None, [('Pass', (4, 2, 4, 6))])], [], [])], []),
('Module', [('Try', (1, 0, 4, 6), [('Pass', (2, 2, 2, 6))], [], [], [('Pass', (4, 2, 4, 6))])], []),
+('Module', [('TryStar', (1, 0, 4, 6), [('Pass', (2, 2, 2, 6))], [('ExceptHandler', (3, 0, 4, 6), ('Name', (3, 8, 3, 17), 'Exception', ('Load',)), None, [('Pass', (4, 2, 4, 6))])], [], [])], []),
('Module', [('Assert', (1, 0, 1, 8), ('Name', (1, 7, 1, 8), 'v', ('Load',)), None)], []),
('Module', [('Import', (1, 0, 1, 10), [('alias', (1, 7, 1, 10), 'sys', None)])], []),
('Module', [('ImportFrom', (1, 0, 1, 17), 'sys', [('alias', (1, 16, 1, 17), 'v', None)], 0)], []),
diff --git a/Lib/test/test_compile.py b/Lib/test/test_compile.py
index f4ed6c7..5bd7b06 100644
--- a/Lib/test/test_compile.py
+++ b/Lib/test/test_compile.py
@@ -1263,6 +1263,39 @@ class TestStackSizeStability(unittest.TestCase):
"""
self.check_stack_size(snippet)
+ def test_try_except_star_qualified(self):
+ snippet = """
+ try:
+ a
+ except* ImportError:
+ b
+ else:
+ c
+ """
+ self.check_stack_size(snippet)
+
+ def test_try_except_star_as(self):
+ snippet = """
+ try:
+ a
+ except* ImportError as e:
+ b
+ else:
+ c
+ """
+ self.check_stack_size(snippet)
+
+ def test_try_except_star_finally(self):
+ snippet = """
+ try:
+ a
+ except* A:
+ b
+ finally:
+ c
+ """
+ self.check_stack_size(snippet)
+
def test_try_finally(self):
snippet = """
try:
diff --git a/Lib/test/test_dis.py b/Lib/test/test_dis.py
index dd328f0..e821e00 100644
--- a/Lib/test/test_dis.py
+++ b/Lib/test/test_dis.py
@@ -1119,7 +1119,7 @@ expected_opinfo_jumpy = [
Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=132, starts_line=None, is_jump_target=False, positions=None),
Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=134, starts_line=None, is_jump_target=False, positions=None),
Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=136, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='JUMP_FORWARD', opcode=110, arg=33, argval=206, argrepr='to 206', offset=138, starts_line=None, is_jump_target=False, positions=None),
+ Instruction(opname='JUMP_FORWARD', opcode=110, arg=32, argval=204, argrepr='to 204', offset=138, starts_line=None, is_jump_target=False, positions=None),
Instruction(opname='RERAISE', opcode=119, arg=0, argval=0, argrepr='', offset=140, starts_line=22, is_jump_target=True, positions=None),
Instruction(opname='POP_EXCEPT_AND_RERAISE', opcode=37, arg=None, argval=None, argrepr='', offset=142, starts_line=None, is_jump_target=False, positions=None),
Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=144, starts_line=25, is_jump_target=True, positions=None),
@@ -1134,7 +1134,7 @@ expected_opinfo_jumpy = [
Instruction(opname='DUP_TOP', opcode=4, arg=None, argval=None, argrepr='', offset=162, starts_line=None, is_jump_target=False, positions=None),
Instruction(opname='CALL_FUNCTION', opcode=131, arg=3, argval=3, argrepr='', offset=164, starts_line=None, is_jump_target=False, positions=None),
Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=166, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='JUMP_FORWARD', opcode=110, arg=25, argval=220, argrepr='to 220', offset=168, starts_line=None, is_jump_target=False, positions=None),
+ Instruction(opname='JUMP_FORWARD', opcode=110, arg=11, argval=192, argrepr='to 192', offset=168, starts_line=None, is_jump_target=False, positions=None),
Instruction(opname='PUSH_EXC_INFO', opcode=35, arg=None, argval=None, argrepr='', offset=170, starts_line=None, is_jump_target=False, positions=None),
Instruction(opname='WITH_EXCEPT_START', opcode=49, arg=None, argval=None, argrepr='', offset=172, starts_line=None, is_jump_target=False, positions=None),
Instruction(opname='POP_JUMP_IF_TRUE', opcode=115, arg=90, argval=180, argrepr='to 180', offset=174, starts_line=None, is_jump_target=False, positions=None),
@@ -1146,34 +1146,26 @@ expected_opinfo_jumpy = [
Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=186, starts_line=None, is_jump_target=False, positions=None),
Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=188, starts_line=None, is_jump_target=False, positions=None),
Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=190, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='NOP', opcode=9, arg=None, argval=None, argrepr='', offset=192, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=194, starts_line=28, is_jump_target=False, positions=None),
- Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=196, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=198, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=200, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=202, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=204, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='NOP', opcode=9, arg=None, argval=None, argrepr='', offset=206, starts_line=23, is_jump_target=True, positions=None),
- Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=208, starts_line=28, is_jump_target=False, positions=None),
- Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=210, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=212, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=214, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=216, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=218, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='NOP', opcode=9, arg=None, argval=None, argrepr='', offset=220, starts_line=25, is_jump_target=True, positions=None),
- Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=222, starts_line=28, is_jump_target=False, positions=None),
- Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=224, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=226, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=228, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=230, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=232, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='PUSH_EXC_INFO', opcode=35, arg=None, argval=None, argrepr='', offset=234, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=236, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=238, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=240, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=242, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='RERAISE', opcode=119, arg=0, argval=0, argrepr='', offset=244, starts_line=None, is_jump_target=False, positions=None),
- Instruction(opname='POP_EXCEPT_AND_RERAISE', opcode=37, arg=None, argval=None, argrepr='', offset=246, starts_line=None, is_jump_target=False, positions=None),
+ Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=192, starts_line=28, is_jump_target=True, positions=None),
+ Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=194, starts_line=None, is_jump_target=False, positions=None),
+ Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=196, starts_line=None, is_jump_target=False, positions=None),
+ Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=198, starts_line=None, is_jump_target=False, positions=None),
+ Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=200, starts_line=None, is_jump_target=False, positions=None),
+ Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=202, starts_line=None, is_jump_target=False, positions=None),
+ Instruction(opname='NOP', opcode=9, arg=None, argval=None, argrepr='', offset=204, starts_line=23, is_jump_target=True, positions=None),
+ Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=206, starts_line=28, is_jump_target=False, positions=None),
+ Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=208, starts_line=None, is_jump_target=False, positions=None),
+ Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=210, starts_line=None, is_jump_target=False, positions=None),
+ Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=212, starts_line=None, is_jump_target=False, positions=None),
+ Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=214, starts_line=None, is_jump_target=False, positions=None),
+ Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=216, starts_line=None, is_jump_target=False, positions=None),
+ Instruction(opname='PUSH_EXC_INFO', opcode=35, arg=None, argval=None, argrepr='', offset=218, starts_line=None, is_jump_target=False, positions=None),
+ Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=220, starts_line=None, is_jump_target=False, positions=None),
+ Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=222, starts_line=None, is_jump_target=False, positions=None),
+ Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=224, starts_line=None, is_jump_target=False, positions=None),
+ Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=226, starts_line=None, is_jump_target=False, positions=None),
+ Instruction(opname='RERAISE', opcode=119, arg=0, argval=0, argrepr='', offset=228, starts_line=None, is_jump_target=False, positions=None),
+ Instruction(opname='POP_EXCEPT_AND_RERAISE', opcode=37, arg=None, argval=None, argrepr='', offset=230, starts_line=None, is_jump_target=False, positions=None),
]
# One last piece of inspect fodder to check the default line number handling
diff --git a/Lib/test/test_except_star.py b/Lib/test/test_except_star.py
new file mode 100644
index 0000000..b03de9c
--- /dev/null
+++ b/Lib/test/test_except_star.py
@@ -0,0 +1,976 @@
+import sys
+import unittest
+import textwrap
+
+class TestInvalidExceptStar(unittest.TestCase):
+ def test_mixed_except_and_except_star_is_syntax_error(self):
+ errors = [
+ "try: pass\nexcept ValueError: pass\nexcept* TypeError: pass\n",
+ "try: pass\nexcept* ValueError: pass\nexcept TypeError: pass\n",
+ "try: pass\nexcept ValueError as e: pass\nexcept* TypeError: pass\n",
+ "try: pass\nexcept* ValueError as e: pass\nexcept TypeError: pass\n",
+ "try: pass\nexcept ValueError: pass\nexcept* TypeError as e: pass\n",
+ "try: pass\nexcept* ValueError: pass\nexcept TypeError as e: pass\n",
+ "try: pass\nexcept ValueError: pass\nexcept*: pass\n",
+ "try: pass\nexcept* ValueError: pass\nexcept: pass\n",
+ ]
+
+ for err in errors:
+ with self.assertRaises(SyntaxError):
+ compile(err, "<string>", "exec")
+
+ def test_except_star_ExceptionGroup_is_runtime_error_single(self):
+ with self.assertRaises(TypeError):
+ try:
+ raise OSError("blah")
+ except* ExceptionGroup as e:
+ pass
+
+ def test_except_star_ExceptionGroup_is_runtime_error_tuple(self):
+ with self.assertRaises(TypeError):
+ try:
+ raise ExceptionGroup("eg", [ValueError(42)])
+ except* (TypeError, ExceptionGroup):
+ pass
+
+ def test_except_star_invalid_exception_type(self):
+ with self.assertRaises(TypeError):
+ try:
+ raise ValueError
+ except* 42:
+ pass
+
+ with self.assertRaises(TypeError):
+ try:
+ raise ValueError
+ except* (ValueError, 42):
+ pass
+
+
+class TestBreakContinueReturnInExceptStarBlock(unittest.TestCase):
+ MSG = (r"'break', 'continue' and 'return'"
+ r" cannot appear in an except\* block")
+
+ def check_invalid(self, src):
+ with self.assertRaisesRegex(SyntaxError, self.MSG):
+ compile(textwrap.dedent(src), "<string>", "exec")
+
+ def test_break_in_except_star(self):
+ self.check_invalid(
+ """
+ try:
+ raise ValueError
+ except* Exception as e:
+ break
+ """)
+
+ self.check_invalid(
+ """
+ for i in range(5):
+ try:
+ pass
+ except* Exception as e:
+ if i == 2:
+ break
+ """)
+
+ self.check_invalid(
+ """
+ for i in range(5):
+ try:
+ pass
+ except* Exception as e:
+ if i == 2:
+ break
+ finally:
+ return 0
+ """)
+
+
+ def test_continue_in_except_star_block_invalid(self):
+ self.check_invalid(
+ """
+ for i in range(5):
+ try:
+ raise ValueError
+ except* Exception as e:
+ continue
+ """)
+
+ self.check_invalid(
+ """
+ for i in range(5):
+ try:
+ pass
+ except* Exception as e:
+ if i == 2:
+ continue
+ """)
+
+ self.check_invalid(
+ """
+ for i in range(5):
+ try:
+ pass
+ except* Exception as e:
+ if i == 2:
+ continue
+ finally:
+ return 0
+ """)
+
+ def test_return_in_except_star_block_invalid(self):
+ self.check_invalid(
+ """
+ def f():
+ try:
+ raise ValueError
+ except* Exception as e:
+ return 42
+ """)
+
+ self.check_invalid(
+ """
+ def f():
+ try:
+ pass
+ except* Exception as e:
+ return 42
+ finally:
+ finished = True
+ """)
+
+ def test_break_continue_in_except_star_block_valid(self):
+ try:
+ raise ValueError(42)
+ except* Exception as e:
+ count = 0
+ for i in range(5):
+ if i == 0:
+ continue
+ if i == 4:
+ break
+ count += 1
+
+ self.assertEqual(count, 3)
+ self.assertEqual(i, 4)
+ exc = e
+ self.assertIsInstance(exc, ExceptionGroup)
+
+ def test_return_in_except_star_block_valid(self):
+ try:
+ raise ValueError(42)
+ except* Exception as e:
+ def f(x):
+ return 2*x
+ r = f(3)
+ exc = e
+ self.assertEqual(r, 6)
+ self.assertIsInstance(exc, ExceptionGroup)
+
+
+class ExceptStarTest(unittest.TestCase):
+ def assertExceptionIsLike(self, exc, template):
+ if exc is None and template is None:
+ return
+
+ if template is None:
+ self.fail(f"unexpected exception: {exc}")
+
+ if exc is None:
+ self.fail(f"expected an exception like {template!r}, got None")
+
+ if not isinstance(exc, ExceptionGroup):
+ self.assertEqual(exc.__class__, template.__class__)
+ self.assertEqual(exc.args[0], template.args[0])
+ else:
+ self.assertEqual(exc.message, template.message)
+ self.assertEqual(len(exc.exceptions), len(template.exceptions))
+ for e, t in zip(exc.exceptions, template.exceptions):
+ self.assertExceptionIsLike(e, t)
+
+ def assertMetadataEqual(self, e1, e2):
+ if e1 is None or e2 is None:
+ self.assertTrue(e1 is None and e2 is None)
+ else:
+ self.assertEqual(e1.__context__, e2.__context__)
+ self.assertEqual(e1.__cause__, e2.__cause__)
+ self.assertEqual(e1.__traceback__, e2.__traceback__)
+
+ def assertMetadataNotEqual(self, e1, e2):
+ if e1 is None or e2 is None:
+ self.assertNotEqual(e1, e2)
+ else:
+ return not (e1.__context__ == e2.__context__
+ and e1.__cause__ == e2.__cause__
+ and e1.__traceback__ == e2.__traceback__)
+
+
+class TestExceptStarSplitSemantics(ExceptStarTest):
+ def doSplitTestNamed(self, exc, T, match_template, rest_template):
+ initial_exc_info = sys.exc_info()
+ exc_info = match = rest = None
+ try:
+ try:
+ raise exc
+ except* T as e:
+ exc_info = sys.exc_info()
+ match = e
+ except BaseException as e:
+ rest = e
+
+ if match_template:
+ self.assertEqual(exc_info[1], match)
+ else:
+ self.assertIsNone(exc_info)
+ self.assertExceptionIsLike(match, match_template)
+ self.assertExceptionIsLike(rest, rest_template)
+ self.assertEqual(sys.exc_info(), initial_exc_info)
+
+ def doSplitTestUnnamed(self, exc, T, match_template, rest_template):
+ initial_exc_info = sys.exc_info()
+ exc_info = match = rest = None
+ try:
+ try:
+ raise exc
+ except* T:
+ exc_info = sys.exc_info()
+ match = sys.exc_info()[1]
+ else:
+ if rest_template:
+ self.fail("Exception not raised")
+ except BaseException as e:
+ rest = e
+ self.assertExceptionIsLike(match, match_template)
+ if match_template:
+ self.assertEqual(exc_info[0], type(match_template))
+ self.assertExceptionIsLike(rest, rest_template)
+ self.assertEqual(sys.exc_info(), initial_exc_info)
+
+ def doSplitTestInExceptHandler(self, exc, T, match_template, rest_template):
+ try:
+ raise ExceptionGroup('eg', [TypeError(1), ValueError(2)])
+ except Exception:
+ self.doSplitTestNamed(exc, T, match_template, rest_template)
+ self.doSplitTestUnnamed(exc, T, match_template, rest_template)
+
+ def doSplitTestInExceptStarHandler(self, exc, T, match_template, rest_template):
+ try:
+ raise ExceptionGroup('eg', [TypeError(1), ValueError(2)])
+ except* Exception:
+ self.doSplitTestNamed(exc, T, match_template, rest_template)
+ self.doSplitTestUnnamed(exc, T, match_template, rest_template)
+
+ def doSplitTest(self, exc, T, match_template, rest_template):
+ self.doSplitTestNamed(exc, T, match_template, rest_template)
+ self.doSplitTestUnnamed(exc, T, match_template, rest_template)
+ self.doSplitTestInExceptHandler(exc, T, match_template, rest_template)
+ self.doSplitTestInExceptStarHandler(exc, T, match_template, rest_template)
+
+ def test_no_match_single_type(self):
+ self.doSplitTest(
+ ExceptionGroup("test1", [ValueError("V"), TypeError("T")]),
+ SyntaxError,
+ None,
+ ExceptionGroup("test1", [ValueError("V"), TypeError("T")]))
+
+ def test_match_single_type(self):
+ self.doSplitTest(
+ ExceptionGroup("test2", [ValueError("V1"), ValueError("V2")]),
+ ValueError,
+ ExceptionGroup("test2", [ValueError("V1"), ValueError("V2")]),
+ None)
+
+ def test_match_single_type_partial_match(self):
+ self.doSplitTest(
+ ExceptionGroup(
+ "test3",
+ [ValueError("V1"), OSError("OS"), ValueError("V2")]),
+ ValueError,
+ ExceptionGroup("test3", [ValueError("V1"), ValueError("V2")]),
+ ExceptionGroup("test3", [OSError("OS")]))
+
+ def test_match_single_type_nested(self):
+ self.doSplitTest(
+ ExceptionGroup(
+ "g1", [
+ ValueError("V1"),
+ OSError("OS1"),
+ ExceptionGroup(
+ "g2", [
+ OSError("OS2"),
+ ValueError("V2"),
+ TypeError("T")])]),
+ ValueError,
+ ExceptionGroup(
+ "g1", [
+ ValueError("V1"),
+ ExceptionGroup("g2", [ValueError("V2")])]),
+ ExceptionGroup("g1", [
+ OSError("OS1"),
+ ExceptionGroup("g2", [
+ OSError("OS2"), TypeError("T")])]))
+
+ def test_match_type_tuple_nested(self):
+ self.doSplitTest(
+ ExceptionGroup(
+ "h1", [
+ ValueError("V1"),
+ OSError("OS1"),
+ ExceptionGroup(
+ "h2", [OSError("OS2"), ValueError("V2"), TypeError("T")])]),
+ (ValueError, TypeError),
+ ExceptionGroup(
+ "h1", [
+ ValueError("V1"),
+ ExceptionGroup("h2", [ValueError("V2"), TypeError("T")])]),
+ ExceptionGroup(
+ "h1", [
+ OSError("OS1"),
+ ExceptionGroup("h2", [OSError("OS2")])]))
+
+ def test_empty_groups_removed(self):
+ self.doSplitTest(
+ ExceptionGroup(
+ "eg", [
+ ExceptionGroup("i1", [ValueError("V1")]),
+ ExceptionGroup("i2", [ValueError("V2"), TypeError("T1")]),
+ ExceptionGroup("i3", [TypeError("T2")])]),
+ TypeError,
+ ExceptionGroup("eg", [
+ ExceptionGroup("i2", [TypeError("T1")]),
+ ExceptionGroup("i3", [TypeError("T2")])]),
+ ExceptionGroup("eg", [
+ ExceptionGroup("i1", [ValueError("V1")]),
+ ExceptionGroup("i2", [ValueError("V2")])]))
+
+ def test_singleton_groups_are_kept(self):
+ self.doSplitTest(
+ ExceptionGroup("j1", [
+ ExceptionGroup("j2", [
+ ExceptionGroup("j3", [ValueError("V1")]),
+ ExceptionGroup("j4", [TypeError("T")])])]),
+ TypeError,
+ ExceptionGroup(
+ "j1",
+ [ExceptionGroup("j2", [ExceptionGroup("j4", [TypeError("T")])])]),
+ ExceptionGroup(
+ "j1",
+ [ExceptionGroup("j2", [ExceptionGroup("j3", [ValueError("V1")])])]))
+
+ def test_naked_exception_matched_wrapped1(self):
+ self.doSplitTest(
+ ValueError("V"),
+ ValueError,
+ ExceptionGroup("", [ValueError("V")]),
+ None)
+
+ def test_naked_exception_matched_wrapped2(self):
+ self.doSplitTest(
+ ValueError("V"),
+ Exception,
+ ExceptionGroup("", [ValueError("V")]),
+ None)
+
+ def test_exception_group_except_star_Exception_not_wrapped(self):
+ self.doSplitTest(
+ ExceptionGroup("eg", [ValueError("V")]),
+ Exception,
+ ExceptionGroup("eg", [ValueError("V")]),
+ None)
+
+ def test_plain_exception_not_matched(self):
+ self.doSplitTest(
+ ValueError("V"),
+ TypeError,
+ None,
+ ValueError("V"))
+
+ def test_match__supertype(self):
+ self.doSplitTest(
+ ExceptionGroup("st", [BlockingIOError("io"), TypeError("T")]),
+ OSError,
+ ExceptionGroup("st", [BlockingIOError("io")]),
+ ExceptionGroup("st", [TypeError("T")]))
+
+ def test_multiple_matches_named(self):
+ try:
+ raise ExceptionGroup("mmn", [OSError("os"), BlockingIOError("io")])
+ except* BlockingIOError as e:
+ self.assertExceptionIsLike(e,
+ ExceptionGroup("mmn", [BlockingIOError("io")]))
+ except* OSError as e:
+ self.assertExceptionIsLike(e,
+ ExceptionGroup("mmn", [OSError("os")]))
+ else:
+ self.fail("Exception not raised")
+
+ def test_multiple_matches_unnamed(self):
+ try:
+ raise ExceptionGroup("mmu", [OSError("os"), BlockingIOError("io")])
+ except* BlockingIOError:
+ e = sys.exc_info()[1]
+ self.assertExceptionIsLike(e,
+ ExceptionGroup("mmu", [BlockingIOError("io")]))
+ except* OSError:
+ e = sys.exc_info()[1]
+ self.assertExceptionIsLike(e,
+ ExceptionGroup("mmu", [OSError("os")]))
+ else:
+ self.fail("Exception not raised")
+
+ def test_first_match_wins_named(self):
+ try:
+ raise ExceptionGroup("fst", [BlockingIOError("io")])
+ except* OSError as e:
+ self.assertExceptionIsLike(e,
+ ExceptionGroup("fst", [BlockingIOError("io")]))
+ except* BlockingIOError:
+ self.fail("Should have been matched as OSError")
+ else:
+ self.fail("Exception not raised")
+
+ def test_first_match_wins_unnamed(self):
+ try:
+ raise ExceptionGroup("fstu", [BlockingIOError("io")])
+ except* OSError:
+ e = sys.exc_info()[1]
+ self.assertExceptionIsLike(e,
+ ExceptionGroup("fstu", [BlockingIOError("io")]))
+ except* BlockingIOError:
+ pass
+ else:
+ self.fail("Exception not raised")
+
+ def test_nested_except_stars(self):
+ try:
+ raise ExceptionGroup("n", [BlockingIOError("io")])
+ except* BlockingIOError:
+ try:
+ raise ExceptionGroup("n", [ValueError("io")])
+ except* ValueError:
+ pass
+ else:
+ self.fail("Exception not raised")
+ e = sys.exc_info()[1]
+ self.assertExceptionIsLike(e,
+ ExceptionGroup("n", [BlockingIOError("io")]))
+ else:
+ self.fail("Exception not raised")
+
+ def test_nested_in_loop(self):
+ for _ in range(2):
+ try:
+ raise ExceptionGroup("nl", [BlockingIOError("io")])
+ except* BlockingIOError:
+ pass
+ else:
+ self.fail("Exception not raised")
+
+
+class TestExceptStarReraise(ExceptStarTest):
+ def test_reraise_all_named(self):
+ try:
+ try:
+ raise ExceptionGroup(
+ "eg", [TypeError(1), ValueError(2), OSError(3)])
+ except* TypeError as e:
+ raise
+ except* ValueError as e:
+ raise
+ # OSError not handled
+ except ExceptionGroup as e:
+ exc = e
+
+ self.assertExceptionIsLike(
+ exc,
+ ExceptionGroup("eg", [TypeError(1), ValueError(2), OSError(3)]))
+
+ def test_reraise_all_unnamed(self):
+ try:
+ try:
+ raise ExceptionGroup(
+ "eg", [TypeError(1), ValueError(2), OSError(3)])
+ except* TypeError:
+ raise
+ except* ValueError:
+ raise
+ # OSError not handled
+ except ExceptionGroup as e:
+ exc = e
+
+ self.assertExceptionIsLike(
+ exc,
+ ExceptionGroup("eg", [TypeError(1), ValueError(2), OSError(3)]))
+
+ def test_reraise_some_handle_all_named(self):
+ try:
+ try:
+ raise ExceptionGroup(
+ "eg", [TypeError(1), ValueError(2), OSError(3)])
+ except* TypeError as e:
+ raise
+ except* ValueError as e:
+ pass
+ # OSError not handled
+ except ExceptionGroup as e:
+ exc = e
+
+ self.assertExceptionIsLike(
+ exc, ExceptionGroup("eg", [TypeError(1), OSError(3)]))
+
+ def test_reraise_partial_handle_all_unnamed(self):
+ try:
+ try:
+ raise ExceptionGroup(
+ "eg", [TypeError(1), ValueError(2)])
+ except* TypeError:
+ raise
+ except* ValueError:
+ pass
+ except ExceptionGroup as e:
+ exc = e
+
+ self.assertExceptionIsLike(
+ exc, ExceptionGroup("eg", [TypeError(1)]))
+
+ def test_reraise_partial_handle_some_named(self):
+ try:
+ try:
+ raise ExceptionGroup(
+ "eg", [TypeError(1), ValueError(2), OSError(3)])
+ except* TypeError as e:
+ raise
+ except* ValueError as e:
+ pass
+ # OSError not handled
+ except ExceptionGroup as e:
+ exc = e
+
+ self.assertExceptionIsLike(
+ exc, ExceptionGroup("eg", [TypeError(1), OSError(3)]))
+
+ def test_reraise_partial_handle_some_unnamed(self):
+ try:
+ try:
+ raise ExceptionGroup(
+ "eg", [TypeError(1), ValueError(2), OSError(3)])
+ except* TypeError:
+ raise
+ except* ValueError:
+ pass
+ except ExceptionGroup as e:
+ exc = e
+
+ self.assertExceptionIsLike(
+ exc, ExceptionGroup("eg", [TypeError(1), OSError(3)]))
+
+ def test_reraise_plain_exception_named(self):
+ try:
+ try:
+ raise ValueError(42)
+ except* ValueError as e:
+ raise
+ except ExceptionGroup as e:
+ exc = e
+
+ self.assertExceptionIsLike(
+ exc, ExceptionGroup("", [ValueError(42)]))
+
+ def test_reraise_plain_exception_unnamed(self):
+ try:
+ try:
+ raise ValueError(42)
+ except* ValueError:
+ raise
+ except ExceptionGroup as e:
+ exc = e
+
+ self.assertExceptionIsLike(
+ exc, ExceptionGroup("", [ValueError(42)]))
+
+
+class TestExceptStarRaise(ExceptStarTest):
+ def test_raise_named(self):
+ orig = ExceptionGroup("eg", [ValueError(1), OSError(2)])
+ try:
+ try:
+ raise orig
+ except* OSError as e:
+ raise TypeError(3)
+ except ExceptionGroup as e:
+ exc = e
+
+ self.assertExceptionIsLike(
+ exc,
+ ExceptionGroup(
+ "", [TypeError(3), ExceptionGroup("eg", [ValueError(1)])]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[0].__context__,
+ ExceptionGroup("eg", [OSError(2)]))
+
+ self.assertMetadataNotEqual(orig, exc)
+ self.assertMetadataEqual(orig, exc.exceptions[0].__context__)
+
+ def test_raise_unnamed(self):
+ orig = ExceptionGroup("eg", [ValueError(1), OSError(2)])
+ try:
+ try:
+ raise orig
+ except* OSError:
+ raise TypeError(3)
+ except ExceptionGroup as e:
+ exc = e
+
+ self.assertExceptionIsLike(
+ exc,
+ ExceptionGroup(
+ "", [TypeError(3), ExceptionGroup("eg", [ValueError(1)])]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[0].__context__,
+ ExceptionGroup("eg", [OSError(2)]))
+
+ self.assertMetadataNotEqual(orig, exc)
+ self.assertMetadataEqual(orig, exc.exceptions[0].__context__)
+
+ def test_raise_handle_all_raise_one_named(self):
+ orig = ExceptionGroup("eg", [TypeError(1), ValueError(2)])
+ try:
+ try:
+ raise orig
+ except* (TypeError, ValueError) as e:
+ raise SyntaxError(3)
+ except BaseException as e:
+ exc = e
+
+ self.assertExceptionIsLike(
+ exc, ExceptionGroup("", [SyntaxError(3)]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[0].__context__,
+ ExceptionGroup("eg", [TypeError(1), ValueError(2)]))
+
+ self.assertMetadataNotEqual(orig, exc)
+ self.assertMetadataEqual(orig, exc.exceptions[0].__context__)
+
+ def test_raise_handle_all_raise_one_unnamed(self):
+ orig = ExceptionGroup("eg", [TypeError(1), ValueError(2)])
+ try:
+ try:
+ raise orig
+ except* (TypeError, ValueError) as e:
+ raise SyntaxError(3)
+ except ExceptionGroup as e:
+ exc = e
+
+ self.assertExceptionIsLike(
+ exc, ExceptionGroup("", [SyntaxError(3)]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[0].__context__,
+ ExceptionGroup("eg", [TypeError(1), ValueError(2)]))
+
+ self.assertMetadataNotEqual(orig, exc)
+ self.assertMetadataEqual(orig, exc.exceptions[0].__context__)
+
+ def test_raise_handle_all_raise_two_named(self):
+ orig = ExceptionGroup("eg", [TypeError(1), ValueError(2)])
+ try:
+ try:
+ raise orig
+ except* TypeError as e:
+ raise SyntaxError(3)
+ except* ValueError as e:
+ raise SyntaxError(4)
+ except ExceptionGroup as e:
+ exc = e
+
+ self.assertExceptionIsLike(
+ exc, ExceptionGroup("", [SyntaxError(3), SyntaxError(4)]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[0].__context__,
+ ExceptionGroup("eg", [TypeError(1)]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[1].__context__,
+ ExceptionGroup("eg", [ValueError(2)]))
+
+ self.assertMetadataNotEqual(orig, exc)
+ self.assertMetadataEqual(orig, exc.exceptions[0].__context__)
+ self.assertMetadataEqual(orig, exc.exceptions[1].__context__)
+
+ def test_raise_handle_all_raise_two_unnamed(self):
+ orig = ExceptionGroup("eg", [TypeError(1), ValueError(2)])
+ try:
+ try:
+ raise orig
+ except* TypeError:
+ raise SyntaxError(3)
+ except* ValueError:
+ raise SyntaxError(4)
+ except ExceptionGroup as e:
+ exc = e
+
+ self.assertExceptionIsLike(
+ exc, ExceptionGroup("", [SyntaxError(3), SyntaxError(4)]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[0].__context__,
+ ExceptionGroup("eg", [TypeError(1)]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[1].__context__,
+ ExceptionGroup("eg", [ValueError(2)]))
+
+ self.assertMetadataNotEqual(orig, exc)
+ self.assertMetadataEqual(orig, exc.exceptions[0].__context__)
+ self.assertMetadataEqual(orig, exc.exceptions[1].__context__)
+
+
+class TestExceptStarRaiseFrom(ExceptStarTest):
+ def test_raise_named(self):
+ orig = ExceptionGroup("eg", [ValueError(1), OSError(2)])
+ try:
+ try:
+ raise orig
+ except* OSError as e:
+ raise TypeError(3) from e
+ except ExceptionGroup as e:
+ exc = e
+
+ self.assertExceptionIsLike(
+ exc,
+ ExceptionGroup(
+ "", [TypeError(3), ExceptionGroup("eg", [ValueError(1)])]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[0].__context__,
+ ExceptionGroup("eg", [OSError(2)]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[0].__cause__,
+ ExceptionGroup("eg", [OSError(2)]))
+
+ self.assertMetadataNotEqual(orig, exc)
+ self.assertMetadataEqual(orig, exc.exceptions[0].__context__)
+ self.assertMetadataEqual(orig, exc.exceptions[0].__cause__)
+ self.assertMetadataNotEqual(orig, exc.exceptions[1].__context__)
+ self.assertMetadataNotEqual(orig, exc.exceptions[1].__cause__)
+
+ def test_raise_unnamed(self):
+ orig = ExceptionGroup("eg", [ValueError(1), OSError(2)])
+ try:
+ try:
+ raise orig
+ except* OSError:
+ e = sys.exc_info()[1]
+ raise TypeError(3) from e
+ except ExceptionGroup as e:
+ exc = e
+
+ self.assertExceptionIsLike(
+ exc,
+ ExceptionGroup(
+ "", [TypeError(3), ExceptionGroup("eg", [ValueError(1)])]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[0].__context__,
+ ExceptionGroup("eg", [OSError(2)]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[0].__cause__,
+ ExceptionGroup("eg", [OSError(2)]))
+
+ self.assertMetadataNotEqual(orig, exc)
+ self.assertMetadataEqual(orig, exc.exceptions[0].__context__)
+ self.assertMetadataEqual(orig, exc.exceptions[0].__cause__)
+ self.assertMetadataNotEqual(orig, exc.exceptions[1].__context__)
+ self.assertMetadataNotEqual(orig, exc.exceptions[1].__cause__)
+
+ def test_raise_handle_all_raise_one_named(self):
+ orig = ExceptionGroup("eg", [TypeError(1), ValueError(2)])
+ try:
+ try:
+ raise orig
+ except* (TypeError, ValueError) as e:
+ raise SyntaxError(3) from e
+ except BaseException as e:
+ exc = e
+
+ self.assertExceptionIsLike(
+ exc, ExceptionGroup("", [SyntaxError(3)]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[0].__context__,
+ ExceptionGroup("eg", [TypeError(1), ValueError(2)]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[0].__cause__,
+ ExceptionGroup("eg", [TypeError(1), ValueError(2)]))
+
+ self.assertMetadataNotEqual(orig, exc)
+ self.assertMetadataEqual(orig, exc.exceptions[0].__context__)
+ self.assertMetadataEqual(orig, exc.exceptions[0].__cause__)
+
+ def test_raise_handle_all_raise_one_unnamed(self):
+ orig = ExceptionGroup("eg", [TypeError(1), ValueError(2)])
+ try:
+ try:
+ raise orig
+ except* (TypeError, ValueError) as e:
+ e = sys.exc_info()[1]
+ raise SyntaxError(3) from e
+ except ExceptionGroup as e:
+ exc = e
+
+ self.assertExceptionIsLike(
+ exc, ExceptionGroup("", [SyntaxError(3)]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[0].__context__,
+ ExceptionGroup("eg", [TypeError(1), ValueError(2)]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[0].__cause__,
+ ExceptionGroup("eg", [TypeError(1), ValueError(2)]))
+
+ self.assertMetadataNotEqual(orig, exc)
+ self.assertMetadataEqual(orig, exc.exceptions[0].__context__)
+ self.assertMetadataEqual(orig, exc.exceptions[0].__cause__)
+
+ def test_raise_handle_all_raise_two_named(self):
+ orig = ExceptionGroup("eg", [TypeError(1), ValueError(2)])
+ try:
+ try:
+ raise orig
+ except* TypeError as e:
+ raise SyntaxError(3) from e
+ except* ValueError as e:
+ raise SyntaxError(4) from e
+ except ExceptionGroup as e:
+ exc = e
+
+ self.assertExceptionIsLike(
+ exc, ExceptionGroup("", [SyntaxError(3), SyntaxError(4)]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[0].__context__,
+ ExceptionGroup("eg", [TypeError(1)]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[0].__cause__,
+ ExceptionGroup("eg", [TypeError(1)]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[1].__context__,
+ ExceptionGroup("eg", [ValueError(2)]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[1].__cause__,
+ ExceptionGroup("eg", [ValueError(2)]))
+
+ self.assertMetadataNotEqual(orig, exc)
+ self.assertMetadataEqual(orig, exc.exceptions[0].__context__)
+ self.assertMetadataEqual(orig, exc.exceptions[0].__cause__)
+
+ def test_raise_handle_all_raise_two_unnamed(self):
+ orig = ExceptionGroup("eg", [TypeError(1), ValueError(2)])
+ try:
+ try:
+ raise orig
+ except* TypeError:
+ e = sys.exc_info()[1]
+ raise SyntaxError(3) from e
+ except* ValueError:
+ e = sys.exc_info()[1]
+ raise SyntaxError(4) from e
+ except ExceptionGroup as e:
+ exc = e
+
+ self.assertExceptionIsLike(
+ exc, ExceptionGroup("", [SyntaxError(3), SyntaxError(4)]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[0].__context__,
+ ExceptionGroup("eg", [TypeError(1)]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[0].__cause__,
+ ExceptionGroup("eg", [TypeError(1)]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[1].__context__,
+ ExceptionGroup("eg", [ValueError(2)]))
+
+ self.assertExceptionIsLike(
+ exc.exceptions[1].__cause__,
+ ExceptionGroup("eg", [ValueError(2)]))
+
+ self.assertMetadataNotEqual(orig, exc)
+ self.assertMetadataEqual(orig, exc.exceptions[0].__context__)
+ self.assertMetadataEqual(orig, exc.exceptions[0].__cause__)
+ self.assertMetadataEqual(orig, exc.exceptions[1].__context__)
+ self.assertMetadataEqual(orig, exc.exceptions[1].__cause__)
+
+
+class TestExceptStarExceptionGroupSubclass(ExceptStarTest):
+ def test_except_star_EG_subclass(self):
+ class EG(ExceptionGroup):
+ def __new__(cls, message, excs, code):
+ obj = super().__new__(cls, message, excs)
+ obj.code = code
+ return obj
+
+ def derive(self, excs):
+ return EG(self.message, excs, self.code)
+
+ try:
+ try:
+ try:
+ try:
+ raise TypeError(2)
+ except TypeError as te:
+ raise EG("nested", [te], 101) from None
+ except EG as nested:
+ try:
+ raise ValueError(1)
+ except ValueError as ve:
+ raise EG("eg", [ve, nested], 42)
+ except* ValueError as eg:
+ veg = eg
+ except EG as eg:
+ teg = eg
+
+ self.assertIsInstance(veg, EG)
+ self.assertIsInstance(teg, EG)
+ self.assertIsInstance(teg.exceptions[0], EG)
+ self.assertMetadataEqual(veg, teg)
+ self.assertEqual(veg.code, 42)
+ self.assertEqual(teg.code, 42)
+ self.assertEqual(teg.exceptions[0].code, 101)
+
+
+class TestExceptStarCleanup(ExceptStarTest):
+ def test_exc_info_restored(self):
+ try:
+ try:
+ raise ValueError(42)
+ except:
+ try:
+ raise TypeError(int)
+ except* Exception:
+ pass
+ 1/0
+ except Exception as e:
+ exc = e
+
+ self.assertExceptionIsLike(exc, ZeroDivisionError('division by zero'))
+ self.assertExceptionIsLike(exc.__context__, ValueError(42))
+ self.assertEqual(sys.exc_info(), (None, None, None))
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/Lib/test/test_exception_group.py b/Lib/test/test_exception_group.py
index 62ec1ee..c793c45 100644
--- a/Lib/test/test_exception_group.py
+++ b/Lib/test/test_exception_group.py
@@ -211,7 +211,8 @@ class ExceptionGroupSubgroupTests(ExceptionGroupTestBase):
def test_basics_subgroup_split__bad_arg_type(self):
bad_args = ["bad arg",
OSError('instance not type'),
- [OSError('instance not type')],]
+ [OSError, TypeError],
+ (OSError, 42)]
for arg in bad_args:
with self.assertRaises(TypeError):
self.eg.subgroup(arg)
diff --git a/Lib/test/test_exception_variations.py b/Lib/test/test_exception_variations.py
index d874b0e..aabac6d 100644
--- a/Lib/test/test_exception_variations.py
+++ b/Lib/test/test_exception_variations.py
@@ -172,5 +172,283 @@ class ExceptionTestCase(unittest.TestCase):
self.assertTrue(hit_finally)
self.assertTrue(hit_except)
+
+class ExceptStarTestCases(unittest.TestCase):
+ def test_try_except_else_finally(self):
+ hit_except = False
+ hit_else = False
+ hit_finally = False
+
+ try:
+ raise Exception('nyaa!')
+ except* BaseException:
+ hit_except = True
+ else:
+ hit_else = True
+ finally:
+ hit_finally = True
+
+ self.assertTrue(hit_except)
+ self.assertTrue(hit_finally)
+ self.assertFalse(hit_else)
+
+ def test_try_except_else_finally_no_exception(self):
+ hit_except = False
+ hit_else = False
+ hit_finally = False
+
+ try:
+ pass
+ except* BaseException:
+ hit_except = True
+ else:
+ hit_else = True
+ finally:
+ hit_finally = True
+
+ self.assertFalse(hit_except)
+ self.assertTrue(hit_finally)
+ self.assertTrue(hit_else)
+
+ def test_try_except_finally(self):
+ hit_except = False
+ hit_finally = False
+
+ try:
+ raise Exception('yarr!')
+ except* BaseException:
+ hit_except = True
+ finally:
+ hit_finally = True
+
+ self.assertTrue(hit_except)
+ self.assertTrue(hit_finally)
+
+ def test_try_except_finally_no_exception(self):
+ hit_except = False
+ hit_finally = False
+
+ try:
+ pass
+ except* BaseException:
+ hit_except = True
+ finally:
+ hit_finally = True
+
+ self.assertFalse(hit_except)
+ self.assertTrue(hit_finally)
+
+ def test_try_except(self):
+ hit_except = False
+
+ try:
+ raise Exception('ahoy!')
+ except* BaseException:
+ hit_except = True
+
+ self.assertTrue(hit_except)
+
+ def test_try_except_no_exception(self):
+ hit_except = False
+
+ try:
+ pass
+ except* BaseException:
+ hit_except = True
+
+ self.assertFalse(hit_except)
+
+ def test_try_except_else(self):
+ hit_except = False
+ hit_else = False
+
+ try:
+ raise Exception('foo!')
+ except* BaseException:
+ hit_except = True
+ else:
+ hit_else = True
+
+ self.assertFalse(hit_else)
+ self.assertTrue(hit_except)
+
+ def test_try_except_else_no_exception(self):
+ hit_except = False
+ hit_else = False
+
+ try:
+ pass
+ except* BaseException:
+ hit_except = True
+ else:
+ hit_else = True
+
+ self.assertFalse(hit_except)
+ self.assertTrue(hit_else)
+
+ def test_try_finally_no_exception(self):
+ hit_finally = False
+
+ try:
+ pass
+ finally:
+ hit_finally = True
+
+ self.assertTrue(hit_finally)
+
+ def test_nested(self):
+ hit_finally = False
+ hit_inner_except = False
+ hit_inner_finally = False
+
+ try:
+ try:
+ raise Exception('inner exception')
+ except* BaseException:
+ hit_inner_except = True
+ finally:
+ hit_inner_finally = True
+ finally:
+ hit_finally = True
+
+ self.assertTrue(hit_inner_except)
+ self.assertTrue(hit_inner_finally)
+ self.assertTrue(hit_finally)
+
+ def test_nested_else(self):
+ hit_else = False
+ hit_finally = False
+ hit_except = False
+ hit_inner_except = False
+ hit_inner_else = False
+
+ try:
+ try:
+ pass
+ except* BaseException:
+ hit_inner_except = True
+ else:
+ hit_inner_else = True
+
+ raise Exception('outer exception')
+ except* BaseException:
+ hit_except = True
+ else:
+ hit_else = True
+ finally:
+ hit_finally = True
+
+ self.assertFalse(hit_inner_except)
+ self.assertTrue(hit_inner_else)
+ self.assertFalse(hit_else)
+ self.assertTrue(hit_finally)
+ self.assertTrue(hit_except)
+
+ def test_nested_mixed1(self):
+ hit_except = False
+ hit_finally = False
+ hit_inner_except = False
+ hit_inner_finally = False
+
+ try:
+ try:
+ raise Exception('inner exception')
+ except* BaseException:
+ hit_inner_except = True
+ finally:
+ hit_inner_finally = True
+ except:
+ hit_except = True
+ finally:
+ hit_finally = True
+
+ self.assertTrue(hit_inner_except)
+ self.assertTrue(hit_inner_finally)
+ self.assertFalse(hit_except)
+ self.assertTrue(hit_finally)
+
+ def test_nested_mixed2(self):
+ hit_except = False
+ hit_finally = False
+ hit_inner_except = False
+ hit_inner_finally = False
+
+ try:
+ try:
+ raise Exception('inner exception')
+ except:
+ hit_inner_except = True
+ finally:
+ hit_inner_finally = True
+ except* BaseException:
+ hit_except = True
+ finally:
+ hit_finally = True
+
+ self.assertTrue(hit_inner_except)
+ self.assertTrue(hit_inner_finally)
+ self.assertFalse(hit_except)
+ self.assertTrue(hit_finally)
+
+
+ def test_nested_else_mixed1(self):
+ hit_else = False
+ hit_finally = False
+ hit_except = False
+ hit_inner_except = False
+ hit_inner_else = False
+
+ try:
+ try:
+ pass
+ except* BaseException:
+ hit_inner_except = True
+ else:
+ hit_inner_else = True
+
+ raise Exception('outer exception')
+ except:
+ hit_except = True
+ else:
+ hit_else = True
+ finally:
+ hit_finally = True
+
+ self.assertFalse(hit_inner_except)
+ self.assertTrue(hit_inner_else)
+ self.assertFalse(hit_else)
+ self.assertTrue(hit_finally)
+ self.assertTrue(hit_except)
+
+ def test_nested_else_mixed2(self):
+ hit_else = False
+ hit_finally = False
+ hit_except = False
+ hit_inner_except = False
+ hit_inner_else = False
+
+ try:
+ try:
+ pass
+ except:
+ hit_inner_except = True
+ else:
+ hit_inner_else = True
+
+ raise Exception('outer exception')
+ except* BaseException:
+ hit_except = True
+ else:
+ hit_else = True
+ finally:
+ hit_finally = True
+
+ self.assertFalse(hit_inner_except)
+ self.assertTrue(hit_inner_else)
+ self.assertFalse(hit_else)
+ self.assertTrue(hit_finally)
+ self.assertTrue(hit_except)
+
+
if __name__ == '__main__':
unittest.main()
diff --git a/Lib/test/test_exceptions.py b/Lib/test/test_exceptions.py
index ffcb5e1..3e7808c 100644
--- a/Lib/test/test_exceptions.py
+++ b/Lib/test/test_exceptions.py
@@ -241,6 +241,8 @@ class ExceptionTests(unittest.TestCase):
check('def f():\n continue', 2, 3)
check('def f():\n break', 2, 3)
check('try:\n pass\nexcept:\n pass\nexcept ValueError:\n pass', 3, 1)
+ check('try:\n pass\nexcept*:\n pass', 3, 8)
+ check('try:\n pass\nexcept*:\n pass\nexcept* ValueError:\n pass', 3, 8)
# Errors thrown by tokenizer.c
check('(0x+1)', 1, 3)
diff --git a/Lib/test/test_grammar.py b/Lib/test/test_grammar.py
index b6c4574..a2460ad 100644
--- a/Lib/test/test_grammar.py
+++ b/Lib/test/test_grammar.py
@@ -1419,6 +1419,30 @@ class GrammarTests(unittest.TestCase):
compile("try:\n pass\nexcept Exception as a.b:\n pass", "?", "exec")
compile("try:\n pass\nexcept Exception as a[b]:\n pass", "?", "exec")
+ def test_try_star(self):
+ ### try_stmt: 'try': suite (except_star_clause : suite) + ['else' ':' suite]
+ ### except_star_clause: 'except*' expr ['as' NAME]
+ try:
+ 1/0
+ except* ZeroDivisionError:
+ pass
+ else:
+ pass
+ try: 1/0
+ except* EOFError: pass
+ except* ZeroDivisionError as msg: pass
+ else: pass
+ try: 1/0
+ except* (EOFError, TypeError, ZeroDivisionError): pass
+ try: 1/0
+ except* (EOFError, TypeError, ZeroDivisionError) as msg: pass
+ try: pass
+ finally: pass
+ with self.assertRaises(SyntaxError):
+ compile("try:\n pass\nexcept* Exception as a.b:\n pass", "?", "exec")
+ compile("try:\n pass\nexcept* Exception as a[b]:\n pass", "?", "exec")
+ compile("try:\n pass\nexcept*:\n pass", "?", "exec")
+
def test_suite(self):
# simple_stmt | NEWLINE INDENT NEWLINE* (stmt NEWLINE*)+ DEDENT
if 1: pass
diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py
index fc3c629..6286529 100644
--- a/Lib/test/test_syntax.py
+++ b/Lib/test/test_syntax.py
@@ -955,6 +955,48 @@ Custom error messages for try blocks that are not followed by except/finally
Traceback (most recent call last):
SyntaxError: expected 'except' or 'finally' block
+Custom error message for try block mixing except and except*
+
+ >>> try:
+ ... pass
+ ... except TypeError:
+ ... pass
+ ... except* ValueError:
+ ... pass
+ Traceback (most recent call last):
+ SyntaxError: cannot have both 'except' and 'except*' on the same 'try'
+
+ >>> try:
+ ... pass
+ ... except* TypeError:
+ ... pass
+ ... except ValueError:
+ ... pass
+ Traceback (most recent call last):
+ SyntaxError: cannot have both 'except' and 'except*' on the same 'try'
+
+ >>> try:
+ ... pass
+ ... except TypeError:
+ ... pass
+ ... except TypeError:
+ ... pass
+ ... except* ValueError:
+ ... pass
+ Traceback (most recent call last):
+ SyntaxError: cannot have both 'except' and 'except*' on the same 'try'
+
+ >>> try:
+ ... pass
+ ... except* TypeError:
+ ... pass
+ ... except* TypeError:
+ ... pass
+ ... except ValueError:
+ ... pass
+ Traceback (most recent call last):
+ SyntaxError: cannot have both 'except' and 'except*' on the same 'try'
+
Ensure that early = are not matched by the parser as invalid comparisons
>>> f(2, 4, x=34); 1 $ 2
Traceback (most recent call last):
@@ -1070,6 +1112,13 @@ Specialized indentation errors:
>>> try:
... something()
+ ... except* A:
+ ... pass
+ Traceback (most recent call last):
+ IndentationError: expected an indented block after 'except*' statement on line 3
+
+ >>> try:
+ ... something()
... except A:
... pass
... finally:
@@ -1077,6 +1126,15 @@ Specialized indentation errors:
Traceback (most recent call last):
IndentationError: expected an indented block after 'finally' statement on line 5
+ >>> try:
+ ... something()
+ ... except* A:
+ ... pass
+ ... finally:
+ ... pass
+ Traceback (most recent call last):
+ IndentationError: expected an indented block after 'finally' statement on line 5
+
>>> with A:
... pass
Traceback (most recent call last):
@@ -1180,6 +1238,48 @@ raise a custom exception
SyntaxError: multiple exception types must be parenthesized
+ >>> try:
+ ... pass
+ ... except* A, B:
+ ... pass
+ Traceback (most recent call last):
+ SyntaxError: multiple exception types must be parenthesized
+
+ >>> try:
+ ... pass
+ ... except* A, B, C:
+ ... pass
+ Traceback (most recent call last):
+ SyntaxError: multiple exception types must be parenthesized
+
+ >>> try:
+ ... pass
+ ... except* A, B, C as blech:
+ ... pass
+ Traceback (most recent call last):
+ SyntaxError: multiple exception types must be parenthesized
+
+ >>> try:
+ ... pass
+ ... except* A, B, C as blech:
+ ... pass
+ ... finally:
+ ... pass
+ Traceback (most recent call last):
+ SyntaxError: multiple exception types must be parenthesized
+
+Custom exception for 'except*' without an exception type
+
+ >>> try:
+ ... pass
+ ... except* A as a:
+ ... pass
+ ... except*:
+ ... pass
+ Traceback (most recent call last):
+ SyntaxError: expected one or more exception types
+
+
>>> f(a=23, a=234)
Traceback (most recent call last):
...
diff --git a/Lib/test/test_sys_settrace.py b/Lib/test/test_sys_settrace.py
index 15c33a2..dc2aef1 100644
--- a/Lib/test/test_sys_settrace.py
+++ b/Lib/test/test_sys_settrace.py
@@ -1213,6 +1213,181 @@ class TraceTestCase(unittest.TestCase):
(5, 'line'),
(5, 'return')])
+ def test_try_except_star_no_exception(self):
+
+ def func():
+ try:
+ 2
+ except* Exception:
+ 4
+ else:
+ 6
+ finally:
+ 8
+
+ self.run_and_compare(func,
+ [(0, 'call'),
+ (1, 'line'),
+ (2, 'line'),
+ (6, 'line'),
+ (8, 'line'),
+ (8, 'return')])
+
+ def test_try_except_star_named_no_exception(self):
+
+ def func():
+ try:
+ 2
+ except* Exception as e:
+ 4
+ else:
+ 6
+ finally:
+ 8
+
+ self.run_and_compare(func,
+ [(0, 'call'),
+ (1, 'line'),
+ (2, 'line'),
+ (6, 'line'),
+ (8, 'line'),
+ (8, 'return')])
+
+ def test_try_except_star_exception_caught(self):
+
+ def func():
+ try:
+ raise ValueError(2)
+ except* ValueError:
+ 4
+ else:
+ 6
+ finally:
+ 8
+
+ self.run_and_compare(func,
+ [(0, 'call'),
+ (1, 'line'),
+ (2, 'line'),
+ (2, 'exception'),
+ (3, 'line'),
+ (4, 'line'),
+ (8, 'line'),
+ (8, 'return')])
+
+ def test_try_except_star_named_exception_caught(self):
+
+ def func():
+ try:
+ raise ValueError(2)
+ except* ValueError as e:
+ 4
+ else:
+ 6
+ finally:
+ 8
+
+ self.run_and_compare(func,
+ [(0, 'call'),
+ (1, 'line'),
+ (2, 'line'),
+ (2, 'exception'),
+ (3, 'line'),
+ (4, 'line'),
+ (8, 'line'),
+ (8, 'return')])
+
+ def test_try_except_star_exception_not_caught(self):
+
+ def func():
+ try:
+ try:
+ raise ValueError(3)
+ except* TypeError:
+ 5
+ except ValueError:
+ 7
+
+ self.run_and_compare(func,
+ [(0, 'call'),
+ (1, 'line'),
+ (2, 'line'),
+ (3, 'line'),
+ (3, 'exception'),
+ (4, 'line'),
+ (6, 'line'),
+ (7, 'line'),
+ (7, 'return')])
+
+ def test_try_except_star_named_exception_not_caught(self):
+
+ def func():
+ try:
+ try:
+ raise ValueError(3)
+ except* TypeError as e:
+ 5
+ except ValueError:
+ 7
+
+ self.run_and_compare(func,
+ [(0, 'call'),
+ (1, 'line'),
+ (2, 'line'),
+ (3, 'line'),
+ (3, 'exception'),
+ (4, 'line'),
+ (6, 'line'),
+ (7, 'line'),
+ (7, 'return')])
+
+ def test_try_except_star_nested(self):
+
+ def func():
+ try:
+ try:
+ raise ExceptionGroup(
+ 'eg',
+ [ValueError(5), TypeError('bad type')])
+ except* TypeError as e:
+ 7
+ except* OSError:
+ 9
+ except* ValueError:
+ raise
+ except* ValueError:
+ try:
+ raise TypeError(14)
+ except* OSError:
+ 16
+ except* TypeError as e:
+ 18
+ return 0
+
+ self.run_and_compare(func,
+ [(0, 'call'),
+ (1, 'line'),
+ (2, 'line'),
+ (3, 'line'),
+ (4, 'line'),
+ (5, 'line'),
+ (3, 'line'),
+ (3, 'exception'),
+ (6, 'line'),
+ (7, 'line'),
+ (8, 'line'),
+ (10, 'line'),
+ (11, 'line'),
+ (12, 'line'),
+ (13, 'line'),
+ (14, 'line'),
+ (14, 'exception'),
+ (15, 'line'),
+ (17, 'line'),
+ (18, 'line'),
+ (19, 'line'),
+ (19, 'return')])
+
class SkipLineEventsTraceTestCase(TraceTestCase):
"""Repeat the trace tests, but with per-line events skipped"""
diff --git a/Lib/test/test_unparse.py b/Lib/test/test_unparse.py
index d8ba487..f5be13a 100644
--- a/Lib/test/test_unparse.py
+++ b/Lib/test/test_unparse.py
@@ -93,6 +93,19 @@ finally:
suite5
"""
+try_except_star_finally = """\
+try:
+ suite1
+except* ex1:
+ suite2
+except* ex2:
+ suite3
+else:
+ suite4
+finally:
+ suite5
+"""
+
with_simple = """\
with f():
suite1
@@ -304,6 +317,9 @@ class UnparseTestCase(ASTTestCase):
def test_try_except_finally(self):
self.check_ast_roundtrip(try_except_finally)
+ def test_try_except_star_finally(self):
+ self.check_ast_roundtrip(try_except_star_finally)
+
def test_starred_assignment(self):
self.check_ast_roundtrip("a, *b, c = seq")
self.check_ast_roundtrip("a, (*b, c) = seq")
diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-11-22-13-05-32.bpo-45292.pfEouJ.rst b/Misc/NEWS.d/next/Core and Builtins/2021-11-22-13-05-32.bpo-45292.pfEouJ.rst
new file mode 100644
index 0000000..2cc7f39
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2021-11-22-13-05-32.bpo-45292.pfEouJ.rst
@@ -0,0 +1 @@
+Complete the :pep:`654` implementation: add ``except*``. \ No newline at end of file
diff --git a/Objects/exceptions.c b/Objects/exceptions.c
index 1340157..1db49d9 100644
--- a/Objects/exceptions.c
+++ b/Objects/exceptions.c
@@ -773,6 +773,23 @@ error:
return NULL;
}
+PyObject *
+_PyExc_CreateExceptionGroup(const char *msg_str, PyObject *excs)
+{
+ PyObject *msg = PyUnicode_FromString(msg_str);
+ if (!msg) {
+ return NULL;
+ }
+ PyObject *args = PyTuple_Pack(2, msg, excs);
+ Py_DECREF(msg);
+ if (!args) {
+ return NULL;
+ }
+ PyObject *result = PyObject_CallObject(PyExc_BaseExceptionGroup, args);
+ Py_DECREF(args);
+ return result;
+}
+
static int
BaseExceptionGroup_init(PyBaseExceptionGroupObject *self,
PyObject *args, PyObject *kwds)
@@ -878,7 +895,7 @@ exceptiongroup_subset(
if (tb) {
int res = PyException_SetTraceback(eg, tb);
Py_DECREF(tb);
- if (res == -1) {
+ if (res < 0) {
goto error;
}
}
@@ -896,26 +913,41 @@ typedef enum {
EXCEPTION_GROUP_MATCH_BY_TYPE = 0,
/* A PyFunction returning True for matching exceptions */
EXCEPTION_GROUP_MATCH_BY_PREDICATE = 1,
- /* An instance or container thereof, checked with equality
- * This matcher type is only used internally by the
- * interpreter, it is not exposed to python code */
+ /* A set of leaf exceptions to include in the result.
+ * This matcher type is used internally by the interpreter
+ * to construct reraised exceptions.
+ */
EXCEPTION_GROUP_MATCH_INSTANCES = 2
} _exceptiongroup_split_matcher_type;
static int
get_matcher_type(PyObject *value,
- _exceptiongroup_split_matcher_type *type)
+ _exceptiongroup_split_matcher_type *type)
{
- /* the python API supports only BY_TYPE and BY_PREDICATE */
- if (PyExceptionClass_Check(value) ||
- PyTuple_CheckExact(value)) {
+ assert(value);
+
+ if (PyFunction_Check(value)) {
+ *type = EXCEPTION_GROUP_MATCH_BY_PREDICATE;
+ return 0;
+ }
+
+ if (PyExceptionClass_Check(value)) {
*type = EXCEPTION_GROUP_MATCH_BY_TYPE;
return 0;
}
- if (PyFunction_Check(value)) {
- *type = EXCEPTION_GROUP_MATCH_BY_PREDICATE;
+
+ if (PyTuple_CheckExact(value)) {
+ Py_ssize_t n = PyTuple_GET_SIZE(value);
+ for (Py_ssize_t i=0; i<n; i++) {
+ if (!PyExceptionClass_Check(PyTuple_GET_ITEM(value, i))) {
+ goto error;
+ }
+ }
+ *type = EXCEPTION_GROUP_MATCH_BY_TYPE;
return 0;
}
+
+error:
PyErr_SetString(
PyExc_TypeError,
"expected a function, exception type or tuple of exception types");
@@ -944,10 +976,11 @@ exceptiongroup_split_check_match(PyObject *exc,
return is_true;
}
case EXCEPTION_GROUP_MATCH_INSTANCES: {
- if (PySequence_Check(matcher_value)) {
- return PySequence_Contains(matcher_value, exc);
+ assert(PySet_Check(matcher_value));
+ if (!_PyBaseExceptionGroup_Check(exc)) {
+ return PySet_Contains(matcher_value, exc);
}
- return matcher_value == exc;
+ return 0;
}
}
return 0;
@@ -1019,7 +1052,7 @@ exceptiongroup_split_recursive(PyObject *exc,
}
if (exceptiongroup_split_recursive(
e, matcher_type, matcher_value,
- construct_rest, &rec_result) == -1) {
+ construct_rest, &rec_result) < 0) {
assert(!rec_result.match);
assert(!rec_result.rest);
Py_LeaveRecursiveCall();
@@ -1028,7 +1061,7 @@ exceptiongroup_split_recursive(PyObject *exc,
Py_LeaveRecursiveCall();
if (rec_result.match) {
assert(PyList_CheckExact(match_list));
- if (PyList_Append(match_list, rec_result.match) == -1) {
+ if (PyList_Append(match_list, rec_result.match) < 0) {
Py_DECREF(rec_result.match);
goto done;
}
@@ -1037,7 +1070,7 @@ exceptiongroup_split_recursive(PyObject *exc,
if (rec_result.rest) {
assert(construct_rest);
assert(PyList_CheckExact(rest_list));
- if (PyList_Append(rest_list, rec_result.rest) == -1) {
+ if (PyList_Append(rest_list, rec_result.rest) < 0) {
Py_DECREF(rec_result.rest);
goto done;
}
@@ -1046,13 +1079,13 @@ exceptiongroup_split_recursive(PyObject *exc,
}
/* construct result */
- if (exceptiongroup_subset(eg, match_list, &result->match) == -1) {
+ if (exceptiongroup_subset(eg, match_list, &result->match) < 0) {
goto done;
}
if (construct_rest) {
assert(PyList_CheckExact(rest_list));
- if (exceptiongroup_subset(eg, rest_list, &result->rest) == -1) {
+ if (exceptiongroup_subset(eg, rest_list, &result->rest) < 0) {
Py_CLEAR(result->match);
goto done;
}
@@ -1061,7 +1094,7 @@ exceptiongroup_split_recursive(PyObject *exc,
done:
Py_DECREF(match_list);
Py_XDECREF(rest_list);
- if (retval == -1) {
+ if (retval < 0) {
Py_CLEAR(result->match);
Py_CLEAR(result->rest);
}
@@ -1077,7 +1110,7 @@ BaseExceptionGroup_split(PyObject *self, PyObject *args)
}
_exceptiongroup_split_matcher_type matcher_type;
- if (get_matcher_type(matcher_value, &matcher_type) == -1) {
+ if (get_matcher_type(matcher_value, &matcher_type) < 0) {
return NULL;
}
@@ -1085,7 +1118,7 @@ BaseExceptionGroup_split(PyObject *self, PyObject *args)
bool construct_rest = true;
if (exceptiongroup_split_recursive(
self, matcher_type, matcher_value,
- construct_rest, &split_result) == -1) {
+ construct_rest, &split_result) < 0) {
return NULL;
}
@@ -1108,7 +1141,7 @@ BaseExceptionGroup_subgroup(PyObject *self, PyObject *args)
}
_exceptiongroup_split_matcher_type matcher_type;
- if (get_matcher_type(matcher_value, &matcher_type) == -1) {
+ if (get_matcher_type(matcher_value, &matcher_type) < 0) {
return NULL;
}
@@ -1116,7 +1149,7 @@ BaseExceptionGroup_subgroup(PyObject *self, PyObject *args)
bool construct_rest = false;
if (exceptiongroup_split_recursive(
self, matcher_type, matcher_value,
- construct_rest, &split_result) == -1) {
+ construct_rest, &split_result) < 0) {
return NULL;
}
@@ -1128,6 +1161,85 @@ BaseExceptionGroup_subgroup(PyObject *self, PyObject *args)
return result;
}
+static int
+collect_exception_group_leaves(PyObject *exc, PyObject *leaves)
+{
+ if (Py_IsNone(exc)) {
+ return 0;
+ }
+
+ assert(PyExceptionInstance_Check(exc));
+ assert(PySet_Check(leaves));
+
+ /* Add all leaf exceptions in exc to the leaves set */
+
+ if (!_PyBaseExceptionGroup_Check(exc)) {
+ if (PySet_Add(leaves, exc) < 0) {
+ return -1;
+ }
+ return 0;
+ }
+ PyBaseExceptionGroupObject *eg = _PyBaseExceptionGroupObject_cast(exc);
+ Py_ssize_t num_excs = PyTuple_GET_SIZE(eg->excs);
+ /* recursive calls */
+ for (Py_ssize_t i = 0; i < num_excs; i++) {
+ PyObject *e = PyTuple_GET_ITEM(eg->excs, i);
+ if (Py_EnterRecursiveCall(" in collect_exception_group_leaves")) {
+ return -1;
+ }
+ int res = collect_exception_group_leaves(e, leaves);
+ Py_LeaveRecursiveCall();
+ if (res < 0) {
+ return -1;
+ }
+ }
+ return 0;
+}
+
+/* This function is used by the interpreter to construct reraised
+ * exception groups. It takes an exception group eg and a list
+ * of exception groups keep and returns the sub-exception group
+ * of eg which contains all leaf exceptions that are contained
+ * in any exception group in keep.
+ */
+PyObject *
+_PyExc_ExceptionGroupProjection(PyObject *eg, PyObject *keep)
+{
+ assert(_PyBaseExceptionGroup_Check(eg));
+ assert(PyList_CheckExact(keep));
+
+ PyObject *leaves = PySet_New(NULL);
+ if (!leaves) {
+ return NULL;
+ }
+
+ Py_ssize_t n = PyList_GET_SIZE(keep);
+ for (Py_ssize_t i = 0; i < n; i++) {
+ PyObject *e = PyList_GET_ITEM(keep, i);
+ assert(e != NULL);
+ assert(_PyBaseExceptionGroup_Check(e));
+ if (collect_exception_group_leaves(e, leaves) < 0) {
+ Py_DECREF(leaves);
+ return NULL;
+ }
+ }
+
+ _exceptiongroup_split_result split_result;
+ bool construct_rest = false;
+ int err = exceptiongroup_split_recursive(
+ eg, EXCEPTION_GROUP_MATCH_INSTANCES, leaves,
+ construct_rest, &split_result);
+ Py_DECREF(leaves);
+ if (err < 0) {
+ return NULL;
+ }
+
+ PyObject *result = split_result.match ?
+ split_result.match : Py_NewRef(Py_None);
+ assert(split_result.rest == NULL);
+ return result;
+}
+
static PyMemberDef BaseExceptionGroup_members[] = {
{"message", T_OBJECT, offsetof(PyBaseExceptionGroupObject, msg), READONLY,
PyDoc_STR("exception message")},
diff --git a/Objects/frameobject.c b/Objects/frameobject.c
index 2197e07..82931b6 100644
--- a/Objects/frameobject.c
+++ b/Objects/frameobject.c
@@ -207,6 +207,7 @@ mark_stacks(PyCodeObject *code_obj, int len)
case POP_JUMP_IF_FALSE:
case POP_JUMP_IF_TRUE:
case JUMP_IF_NOT_EXC_MATCH:
+ case JUMP_IF_NOT_EG_MATCH:
{
int64_t target_stack;
int j = get_arg(code, i);
@@ -214,7 +215,9 @@ mark_stacks(PyCodeObject *code_obj, int len)
if (stacks[j] == UNINITIALIZED && j < i) {
todo = 1;
}
- if (opcode == JUMP_IF_NOT_EXC_MATCH) {
+ if (opcode == JUMP_IF_NOT_EXC_MATCH ||
+ opcode == JUMP_IF_NOT_EG_MATCH)
+ {
next_stack = pop_value(pop_value(next_stack));
target_stack = next_stack;
}
diff --git a/Parser/Python.asdl b/Parser/Python.asdl
index 85225fc..4a61bda 100644
--- a/Parser/Python.asdl
+++ b/Parser/Python.asdl
@@ -40,6 +40,7 @@ module Python
| Raise(expr? exc, expr? cause)
| Try(stmt* body, excepthandler* handlers, stmt* orelse, stmt* finalbody)
+ | TryStar(stmt* body, excepthandler* handlers, stmt* orelse, stmt* finalbody)
| Assert(expr test, expr? msg)
| Import(alias* names)
diff --git a/Parser/parser.c b/Parser/parser.c
index b139e55..4d576aa 100644
--- a/Parser/parser.c
+++ b/Parser/parser.c
@@ -11,39 +11,39 @@ static KeywordToken *reserved_keywords[] = {
(KeywordToken[]) {{NULL, -1}},
(KeywordToken[]) {{NULL, -1}},
(KeywordToken[]) {
- {"if", 627},
- {"as", 625},
- {"in", 634},
- {"or", 571},
- {"is", 579},
+ {"if", 634},
+ {"as", 632},
+ {"in", 641},
+ {"or", 574},
+ {"is", 582},
{NULL, -1},
},
(KeywordToken[]) {
- {"del", 600},
- {"def", 635},
- {"for", 633},
- {"try", 612},
- {"and", 572},
- {"not", 578},
+ {"del", 603},
+ {"def", 642},
+ {"for", 640},
+ {"try", 618},
+ {"and", 575},
+ {"not", 581},
{NULL, -1},
},
(KeywordToken[]) {
- {"from", 569},
+ {"from", 572},
{"pass", 504},
- {"with", 609},
- {"elif", 629},
- {"else", 630},
- {"None", 598},
- {"True", 597},
+ {"with", 612},
+ {"elif", 636},
+ {"else", 637},
+ {"None", 601},
+ {"True", 600},
{NULL, -1},
},
(KeywordToken[]) {
{"raise", 522},
- {"yield", 570},
+ {"yield", 573},
{"break", 508},
- {"class", 636},
- {"while", 632},
- {"False", 599},
+ {"class", 643},
+ {"while", 639},
+ {"False", 602},
{NULL, -1},
},
(KeywordToken[]) {
@@ -51,12 +51,12 @@ static KeywordToken *reserved_keywords[] = {
{"import", 531},
{"assert", 526},
{"global", 523},
- {"except", 623},
- {"lambda", 583},
+ {"except", 629},
+ {"lambda", 586},
{NULL, -1},
},
(KeywordToken[]) {
- {"finally", 620},
+ {"finally", 625},
{NULL, -1},
},
(KeywordToken[]) {
@@ -128,381 +128,394 @@ static char *soft_keywords[] = {
#define with_item_type 1054
#define try_stmt_type 1055
#define except_block_type 1056
-#define finally_block_type 1057
-#define match_stmt_type 1058
-#define subject_expr_type 1059
-#define case_block_type 1060
-#define guard_type 1061
-#define patterns_type 1062
-#define pattern_type 1063
-#define as_pattern_type 1064
-#define or_pattern_type 1065
-#define closed_pattern_type 1066
-#define literal_pattern_type 1067
-#define literal_expr_type 1068
-#define complex_number_type 1069
-#define signed_number_type 1070
-#define signed_real_number_type 1071
-#define real_number_type 1072
-#define imaginary_number_type 1073
-#define capture_pattern_type 1074
-#define pattern_capture_target_type 1075
-#define wildcard_pattern_type 1076
-#define value_pattern_type 1077
-#define attr_type 1078 // Left-recursive
-#define name_or_attr_type 1079 // Left-recursive
-#define group_pattern_type 1080
-#define sequence_pattern_type 1081
-#define open_sequence_pattern_type 1082
-#define maybe_sequence_pattern_type 1083
-#define maybe_star_pattern_type 1084
-#define star_pattern_type 1085
-#define mapping_pattern_type 1086
-#define items_pattern_type 1087
-#define key_value_pattern_type 1088
-#define double_star_pattern_type 1089
-#define class_pattern_type 1090
-#define positional_patterns_type 1091
-#define keyword_patterns_type 1092
-#define keyword_pattern_type 1093
-#define expressions_type 1094
-#define expression_type 1095
-#define yield_expr_type 1096
-#define star_expressions_type 1097
-#define star_expression_type 1098
-#define star_named_expressions_type 1099
-#define star_named_expression_type 1100
-#define assignment_expression_type 1101
-#define named_expression_type 1102
-#define disjunction_type 1103
-#define conjunction_type 1104
-#define inversion_type 1105
-#define comparison_type 1106
-#define compare_op_bitwise_or_pair_type 1107
-#define eq_bitwise_or_type 1108
-#define noteq_bitwise_or_type 1109
-#define lte_bitwise_or_type 1110
-#define lt_bitwise_or_type 1111
-#define gte_bitwise_or_type 1112
-#define gt_bitwise_or_type 1113
-#define notin_bitwise_or_type 1114
-#define in_bitwise_or_type 1115
-#define isnot_bitwise_or_type 1116
-#define is_bitwise_or_type 1117
-#define bitwise_or_type 1118 // Left-recursive
-#define bitwise_xor_type 1119 // Left-recursive
-#define bitwise_and_type 1120 // Left-recursive
-#define shift_expr_type 1121 // Left-recursive
-#define sum_type 1122 // Left-recursive
-#define term_type 1123 // Left-recursive
-#define factor_type 1124
-#define power_type 1125
-#define await_primary_type 1126
-#define primary_type 1127 // Left-recursive
-#define slices_type 1128
-#define slice_type 1129
-#define atom_type 1130
-#define group_type 1131
-#define lambdef_type 1132
-#define lambda_params_type 1133
-#define lambda_parameters_type 1134
-#define lambda_slash_no_default_type 1135
-#define lambda_slash_with_default_type 1136
-#define lambda_star_etc_type 1137
-#define lambda_kwds_type 1138
-#define lambda_param_no_default_type 1139
-#define lambda_param_with_default_type 1140
-#define lambda_param_maybe_default_type 1141
-#define lambda_param_type 1142
-#define strings_type 1143
-#define list_type 1144
-#define tuple_type 1145
-#define set_type 1146
-#define dict_type 1147
-#define double_starred_kvpairs_type 1148
-#define double_starred_kvpair_type 1149
-#define kvpair_type 1150
-#define for_if_clauses_type 1151
-#define for_if_clause_type 1152
-#define listcomp_type 1153
-#define setcomp_type 1154
-#define genexp_type 1155
-#define dictcomp_type 1156
-#define arguments_type 1157
-#define args_type 1158
-#define kwargs_type 1159
-#define starred_expression_type 1160
-#define kwarg_or_starred_type 1161
-#define kwarg_or_double_starred_type 1162
-#define star_targets_type 1163
-#define star_targets_list_seq_type 1164
-#define star_targets_tuple_seq_type 1165
-#define star_target_type 1166
-#define target_with_star_atom_type 1167
-#define star_atom_type 1168
-#define single_target_type 1169
-#define single_subscript_attribute_target_type 1170
-#define t_primary_type 1171 // Left-recursive
-#define t_lookahead_type 1172
-#define del_targets_type 1173
-#define del_target_type 1174
-#define del_t_atom_type 1175
-#define type_expressions_type 1176
-#define func_type_comment_type 1177
-#define invalid_arguments_type 1178
-#define invalid_kwarg_type 1179
-#define expression_without_invalid_type 1180
-#define invalid_legacy_expression_type 1181
-#define invalid_expression_type 1182
-#define invalid_named_expression_type 1183
-#define invalid_assignment_type 1184
-#define invalid_ann_assign_target_type 1185
-#define invalid_del_stmt_type 1186
-#define invalid_block_type 1187
-#define invalid_comprehension_type 1188
-#define invalid_dict_comprehension_type 1189
-#define invalid_parameters_type 1190
-#define invalid_parameters_helper_type 1191
-#define invalid_lambda_parameters_type 1192
-#define invalid_lambda_parameters_helper_type 1193
-#define invalid_star_etc_type 1194
-#define invalid_lambda_star_etc_type 1195
-#define invalid_double_type_comments_type 1196
-#define invalid_with_item_type 1197
-#define invalid_for_target_type 1198
-#define invalid_group_type 1199
-#define invalid_import_from_targets_type 1200
-#define invalid_with_stmt_type 1201
-#define invalid_with_stmt_indent_type 1202
-#define invalid_try_stmt_type 1203
-#define invalid_except_stmt_type 1204
-#define invalid_finally_stmt_type 1205
-#define invalid_except_stmt_indent_type 1206
-#define invalid_match_stmt_type 1207
-#define invalid_case_block_type 1208
-#define invalid_as_pattern_type 1209
-#define invalid_class_pattern_type 1210
-#define invalid_class_argument_pattern_type 1211
-#define invalid_if_stmt_type 1212
-#define invalid_elif_stmt_type 1213
-#define invalid_else_stmt_type 1214
-#define invalid_while_stmt_type 1215
-#define invalid_for_stmt_type 1216
-#define invalid_def_raw_type 1217
-#define invalid_class_def_raw_type 1218
-#define invalid_double_starred_kvpairs_type 1219
-#define invalid_kvpair_type 1220
-#define _loop0_1_type 1221
-#define _loop0_2_type 1222
-#define _loop1_3_type 1223
-#define _loop0_5_type 1224
-#define _gather_4_type 1225
-#define _tmp_6_type 1226
-#define _tmp_7_type 1227
-#define _tmp_8_type 1228
-#define _tmp_9_type 1229
-#define _tmp_10_type 1230
-#define _tmp_11_type 1231
-#define _tmp_12_type 1232
-#define _tmp_13_type 1233
-#define _loop1_14_type 1234
-#define _tmp_15_type 1235
-#define _tmp_16_type 1236
-#define _tmp_17_type 1237
-#define _loop0_19_type 1238
-#define _gather_18_type 1239
-#define _loop0_21_type 1240
-#define _gather_20_type 1241
-#define _tmp_22_type 1242
-#define _tmp_23_type 1243
-#define _loop0_24_type 1244
-#define _loop1_25_type 1245
-#define _loop0_27_type 1246
-#define _gather_26_type 1247
-#define _tmp_28_type 1248
-#define _loop0_30_type 1249
-#define _gather_29_type 1250
-#define _tmp_31_type 1251
-#define _loop1_32_type 1252
-#define _tmp_33_type 1253
-#define _tmp_34_type 1254
-#define _tmp_35_type 1255
-#define _loop0_36_type 1256
-#define _loop0_37_type 1257
-#define _loop0_38_type 1258
-#define _loop1_39_type 1259
-#define _loop0_40_type 1260
-#define _loop1_41_type 1261
-#define _loop1_42_type 1262
-#define _loop1_43_type 1263
-#define _loop0_44_type 1264
-#define _loop1_45_type 1265
-#define _loop0_46_type 1266
-#define _loop1_47_type 1267
-#define _loop0_48_type 1268
-#define _loop1_49_type 1269
-#define _loop0_51_type 1270
-#define _gather_50_type 1271
-#define _loop0_53_type 1272
-#define _gather_52_type 1273
-#define _loop0_55_type 1274
-#define _gather_54_type 1275
-#define _loop0_57_type 1276
-#define _gather_56_type 1277
-#define _tmp_58_type 1278
-#define _loop1_59_type 1279
-#define _tmp_60_type 1280
-#define _loop1_61_type 1281
-#define _loop0_63_type 1282
-#define _gather_62_type 1283
-#define _tmp_64_type 1284
-#define _tmp_65_type 1285
-#define _tmp_66_type 1286
-#define _tmp_67_type 1287
-#define _loop0_69_type 1288
-#define _gather_68_type 1289
-#define _loop0_71_type 1290
-#define _gather_70_type 1291
-#define _tmp_72_type 1292
-#define _loop0_74_type 1293
-#define _gather_73_type 1294
-#define _loop0_76_type 1295
-#define _gather_75_type 1296
-#define _loop1_77_type 1297
-#define _loop1_78_type 1298
-#define _loop0_80_type 1299
-#define _gather_79_type 1300
-#define _loop1_81_type 1301
-#define _loop1_82_type 1302
-#define _loop1_83_type 1303
-#define _tmp_84_type 1304
-#define _loop0_86_type 1305
-#define _gather_85_type 1306
-#define _tmp_87_type 1307
-#define _tmp_88_type 1308
-#define _tmp_89_type 1309
-#define _tmp_90_type 1310
-#define _tmp_91_type 1311
-#define _loop0_92_type 1312
-#define _loop0_93_type 1313
-#define _loop0_94_type 1314
-#define _loop1_95_type 1315
-#define _loop0_96_type 1316
-#define _loop1_97_type 1317
-#define _loop1_98_type 1318
-#define _loop1_99_type 1319
-#define _loop0_100_type 1320
-#define _loop1_101_type 1321
-#define _loop0_102_type 1322
-#define _loop1_103_type 1323
-#define _loop0_104_type 1324
-#define _loop1_105_type 1325
-#define _loop1_106_type 1326
-#define _tmp_107_type 1327
-#define _loop0_109_type 1328
-#define _gather_108_type 1329
-#define _loop1_110_type 1330
-#define _loop0_111_type 1331
-#define _loop0_112_type 1332
-#define _tmp_113_type 1333
-#define _loop0_115_type 1334
-#define _gather_114_type 1335
-#define _tmp_116_type 1336
-#define _loop0_118_type 1337
-#define _gather_117_type 1338
-#define _loop0_120_type 1339
-#define _gather_119_type 1340
-#define _loop0_122_type 1341
-#define _gather_121_type 1342
-#define _loop0_124_type 1343
-#define _gather_123_type 1344
-#define _loop0_125_type 1345
-#define _loop0_127_type 1346
-#define _gather_126_type 1347
-#define _loop1_128_type 1348
-#define _tmp_129_type 1349
-#define _loop0_131_type 1350
-#define _gather_130_type 1351
-#define _loop0_133_type 1352
-#define _gather_132_type 1353
-#define _loop0_135_type 1354
-#define _gather_134_type 1355
-#define _loop0_137_type 1356
-#define _gather_136_type 1357
-#define _loop0_139_type 1358
-#define _gather_138_type 1359
-#define _tmp_140_type 1360
-#define _tmp_141_type 1361
-#define _tmp_142_type 1362
-#define _tmp_143_type 1363
-#define _tmp_144_type 1364
-#define _tmp_145_type 1365
-#define _tmp_146_type 1366
-#define _tmp_147_type 1367
-#define _tmp_148_type 1368
-#define _loop0_149_type 1369
-#define _loop0_150_type 1370
-#define _loop0_151_type 1371
-#define _tmp_152_type 1372
-#define _tmp_153_type 1373
-#define _tmp_154_type 1374
-#define _tmp_155_type 1375
-#define _loop0_156_type 1376
-#define _loop0_157_type 1377
-#define _loop1_158_type 1378
-#define _loop1_159_type 1379
-#define _loop0_160_type 1380
-#define _loop0_161_type 1381
-#define _loop0_163_type 1382
-#define _gather_162_type 1383
-#define _loop1_164_type 1384
-#define _tmp_165_type 1385
-#define _tmp_166_type 1386
-#define _tmp_167_type 1387
-#define _loop0_169_type 1388
-#define _gather_168_type 1389
-#define _loop0_171_type 1390
-#define _gather_170_type 1391
-#define _loop0_173_type 1392
-#define _gather_172_type 1393
-#define _loop0_175_type 1394
-#define _gather_174_type 1395
-#define _tmp_176_type 1396
-#define _tmp_177_type 1397
-#define _tmp_178_type 1398
-#define _tmp_179_type 1399
-#define _tmp_180_type 1400
-#define _tmp_181_type 1401
-#define _tmp_182_type 1402
-#define _loop0_184_type 1403
-#define _gather_183_type 1404
-#define _tmp_185_type 1405
-#define _tmp_186_type 1406
-#define _tmp_187_type 1407
-#define _tmp_188_type 1408
-#define _tmp_189_type 1409
-#define _tmp_190_type 1410
-#define _tmp_191_type 1411
-#define _tmp_192_type 1412
-#define _tmp_193_type 1413
-#define _tmp_194_type 1414
-#define _tmp_195_type 1415
-#define _tmp_196_type 1416
-#define _tmp_197_type 1417
-#define _tmp_198_type 1418
-#define _tmp_199_type 1419
-#define _tmp_200_type 1420
-#define _tmp_201_type 1421
-#define _tmp_202_type 1422
-#define _tmp_203_type 1423
-#define _tmp_204_type 1424
-#define _tmp_205_type 1425
-#define _tmp_206_type 1426
-#define _tmp_207_type 1427
-#define _tmp_208_type 1428
-#define _tmp_209_type 1429
-#define _tmp_210_type 1430
-#define _tmp_211_type 1431
+#define except_star_block_type 1057
+#define finally_block_type 1058
+#define match_stmt_type 1059
+#define subject_expr_type 1060
+#define case_block_type 1061
+#define guard_type 1062
+#define patterns_type 1063
+#define pattern_type 1064
+#define as_pattern_type 1065
+#define or_pattern_type 1066
+#define closed_pattern_type 1067
+#define literal_pattern_type 1068
+#define literal_expr_type 1069
+#define complex_number_type 1070
+#define signed_number_type 1071
+#define signed_real_number_type 1072
+#define real_number_type 1073
+#define imaginary_number_type 1074
+#define capture_pattern_type 1075
+#define pattern_capture_target_type 1076
+#define wildcard_pattern_type 1077
+#define value_pattern_type 1078
+#define attr_type 1079 // Left-recursive
+#define name_or_attr_type 1080 // Left-recursive
+#define group_pattern_type 1081
+#define sequence_pattern_type 1082
+#define open_sequence_pattern_type 1083
+#define maybe_sequence_pattern_type 1084
+#define maybe_star_pattern_type 1085
+#define star_pattern_type 1086
+#define mapping_pattern_type 1087
+#define items_pattern_type 1088
+#define key_value_pattern_type 1089
+#define double_star_pattern_type 1090
+#define class_pattern_type 1091
+#define positional_patterns_type 1092
+#define keyword_patterns_type 1093
+#define keyword_pattern_type 1094
+#define expressions_type 1095
+#define expression_type 1096
+#define yield_expr_type 1097
+#define star_expressions_type 1098
+#define star_expression_type 1099
+#define star_named_expressions_type 1100
+#define star_named_expression_type 1101
+#define assignment_expression_type 1102
+#define named_expression_type 1103
+#define disjunction_type 1104
+#define conjunction_type 1105
+#define inversion_type 1106
+#define comparison_type 1107
+#define compare_op_bitwise_or_pair_type 1108
+#define eq_bitwise_or_type 1109
+#define noteq_bitwise_or_type 1110
+#define lte_bitwise_or_type 1111
+#define lt_bitwise_or_type 1112
+#define gte_bitwise_or_type 1113
+#define gt_bitwise_or_type 1114
+#define notin_bitwise_or_type 1115
+#define in_bitwise_or_type 1116
+#define isnot_bitwise_or_type 1117
+#define is_bitwise_or_type 1118
+#define bitwise_or_type 1119 // Left-recursive
+#define bitwise_xor_type 1120 // Left-recursive
+#define bitwise_and_type 1121 // Left-recursive
+#define shift_expr_type 1122 // Left-recursive
+#define sum_type 1123 // Left-recursive
+#define term_type 1124 // Left-recursive
+#define factor_type 1125
+#define power_type 1126
+#define await_primary_type 1127
+#define primary_type 1128 // Left-recursive
+#define slices_type 1129
+#define slice_type 1130
+#define atom_type 1131
+#define group_type 1132
+#define lambdef_type 1133
+#define lambda_params_type 1134
+#define lambda_parameters_type 1135
+#define lambda_slash_no_default_type 1136
+#define lambda_slash_with_default_type 1137
+#define lambda_star_etc_type 1138
+#define lambda_kwds_type 1139
+#define lambda_param_no_default_type 1140
+#define lambda_param_with_default_type 1141
+#define lambda_param_maybe_default_type 1142
+#define lambda_param_type 1143
+#define strings_type 1144
+#define list_type 1145
+#define tuple_type 1146
+#define set_type 1147
+#define dict_type 1148
+#define double_starred_kvpairs_type 1149
+#define double_starred_kvpair_type 1150
+#define kvpair_type 1151
+#define for_if_clauses_type 1152
+#define for_if_clause_type 1153
+#define listcomp_type 1154
+#define setcomp_type 1155
+#define genexp_type 1156
+#define dictcomp_type 1157
+#define arguments_type 1158
+#define args_type 1159
+#define kwargs_type 1160
+#define starred_expression_type 1161
+#define kwarg_or_starred_type 1162
+#define kwarg_or_double_starred_type 1163
+#define star_targets_type 1164
+#define star_targets_list_seq_type 1165
+#define star_targets_tuple_seq_type 1166
+#define star_target_type 1167
+#define target_with_star_atom_type 1168
+#define star_atom_type 1169
+#define single_target_type 1170
+#define single_subscript_attribute_target_type 1171
+#define t_primary_type 1172 // Left-recursive
+#define t_lookahead_type 1173
+#define del_targets_type 1174
+#define del_target_type 1175
+#define del_t_atom_type 1176
+#define type_expressions_type 1177
+#define func_type_comment_type 1178
+#define invalid_arguments_type 1179
+#define invalid_kwarg_type 1180
+#define expression_without_invalid_type 1181
+#define invalid_legacy_expression_type 1182
+#define invalid_expression_type 1183
+#define invalid_named_expression_type 1184
+#define invalid_assignment_type 1185
+#define invalid_ann_assign_target_type 1186
+#define invalid_del_stmt_type 1187
+#define invalid_block_type 1188
+#define invalid_comprehension_type 1189
+#define invalid_dict_comprehension_type 1190
+#define invalid_parameters_type 1191
+#define invalid_parameters_helper_type 1192
+#define invalid_lambda_parameters_type 1193
+#define invalid_lambda_parameters_helper_type 1194
+#define invalid_star_etc_type 1195
+#define invalid_lambda_star_etc_type 1196
+#define invalid_double_type_comments_type 1197
+#define invalid_with_item_type 1198
+#define invalid_for_target_type 1199
+#define invalid_group_type 1200
+#define invalid_import_from_targets_type 1201
+#define invalid_with_stmt_type 1202
+#define invalid_with_stmt_indent_type 1203
+#define invalid_try_stmt_type 1204
+#define invalid_except_stmt_type 1205
+#define invalid_finally_stmt_type 1206
+#define invalid_except_stmt_indent_type 1207
+#define invalid_except_star_stmt_indent_type 1208
+#define invalid_match_stmt_type 1209
+#define invalid_case_block_type 1210
+#define invalid_as_pattern_type 1211
+#define invalid_class_pattern_type 1212
+#define invalid_class_argument_pattern_type 1213
+#define invalid_if_stmt_type 1214
+#define invalid_elif_stmt_type 1215
+#define invalid_else_stmt_type 1216
+#define invalid_while_stmt_type 1217
+#define invalid_for_stmt_type 1218
+#define invalid_def_raw_type 1219
+#define invalid_class_def_raw_type 1220
+#define invalid_double_starred_kvpairs_type 1221
+#define invalid_kvpair_type 1222
+#define _loop0_1_type 1223
+#define _loop0_2_type 1224
+#define _loop1_3_type 1225
+#define _loop0_5_type 1226
+#define _gather_4_type 1227
+#define _tmp_6_type 1228
+#define _tmp_7_type 1229
+#define _tmp_8_type 1230
+#define _tmp_9_type 1231
+#define _tmp_10_type 1232
+#define _tmp_11_type 1233
+#define _tmp_12_type 1234
+#define _tmp_13_type 1235
+#define _loop1_14_type 1236
+#define _tmp_15_type 1237
+#define _tmp_16_type 1238
+#define _tmp_17_type 1239
+#define _loop0_19_type 1240
+#define _gather_18_type 1241
+#define _loop0_21_type 1242
+#define _gather_20_type 1243
+#define _tmp_22_type 1244
+#define _tmp_23_type 1245
+#define _loop0_24_type 1246
+#define _loop1_25_type 1247
+#define _loop0_27_type 1248
+#define _gather_26_type 1249
+#define _tmp_28_type 1250
+#define _loop0_30_type 1251
+#define _gather_29_type 1252
+#define _tmp_31_type 1253
+#define _loop1_32_type 1254
+#define _tmp_33_type 1255
+#define _tmp_34_type 1256
+#define _tmp_35_type 1257
+#define _loop0_36_type 1258
+#define _loop0_37_type 1259
+#define _loop0_38_type 1260
+#define _loop1_39_type 1261
+#define _loop0_40_type 1262
+#define _loop1_41_type 1263
+#define _loop1_42_type 1264
+#define _loop1_43_type 1265
+#define _loop0_44_type 1266
+#define _loop1_45_type 1267
+#define _loop0_46_type 1268
+#define _loop1_47_type 1269
+#define _loop0_48_type 1270
+#define _loop1_49_type 1271
+#define _loop0_51_type 1272
+#define _gather_50_type 1273
+#define _loop0_53_type 1274
+#define _gather_52_type 1275
+#define _loop0_55_type 1276
+#define _gather_54_type 1277
+#define _loop0_57_type 1278
+#define _gather_56_type 1279
+#define _tmp_58_type 1280
+#define _loop1_59_type 1281
+#define _loop1_60_type 1282
+#define _tmp_61_type 1283
+#define _tmp_62_type 1284
+#define _loop1_63_type 1285
+#define _loop0_65_type 1286
+#define _gather_64_type 1287
+#define _tmp_66_type 1288
+#define _tmp_67_type 1289
+#define _tmp_68_type 1290
+#define _tmp_69_type 1291
+#define _loop0_71_type 1292
+#define _gather_70_type 1293
+#define _loop0_73_type 1294
+#define _gather_72_type 1295
+#define _tmp_74_type 1296
+#define _loop0_76_type 1297
+#define _gather_75_type 1298
+#define _loop0_78_type 1299
+#define _gather_77_type 1300
+#define _loop1_79_type 1301
+#define _loop1_80_type 1302
+#define _loop0_82_type 1303
+#define _gather_81_type 1304
+#define _loop1_83_type 1305
+#define _loop1_84_type 1306
+#define _loop1_85_type 1307
+#define _tmp_86_type 1308
+#define _loop0_88_type 1309
+#define _gather_87_type 1310
+#define _tmp_89_type 1311
+#define _tmp_90_type 1312
+#define _tmp_91_type 1313
+#define _tmp_92_type 1314
+#define _tmp_93_type 1315
+#define _loop0_94_type 1316
+#define _loop0_95_type 1317
+#define _loop0_96_type 1318
+#define _loop1_97_type 1319
+#define _loop0_98_type 1320
+#define _loop1_99_type 1321
+#define _loop1_100_type 1322
+#define _loop1_101_type 1323
+#define _loop0_102_type 1324
+#define _loop1_103_type 1325
+#define _loop0_104_type 1326
+#define _loop1_105_type 1327
+#define _loop0_106_type 1328
+#define _loop1_107_type 1329
+#define _loop1_108_type 1330
+#define _tmp_109_type 1331
+#define _loop0_111_type 1332
+#define _gather_110_type 1333
+#define _loop1_112_type 1334
+#define _loop0_113_type 1335
+#define _loop0_114_type 1336
+#define _tmp_115_type 1337
+#define _loop0_117_type 1338
+#define _gather_116_type 1339
+#define _tmp_118_type 1340
+#define _loop0_120_type 1341
+#define _gather_119_type 1342
+#define _loop0_122_type 1343
+#define _gather_121_type 1344
+#define _loop0_124_type 1345
+#define _gather_123_type 1346
+#define _loop0_126_type 1347
+#define _gather_125_type 1348
+#define _loop0_127_type 1349
+#define _loop0_129_type 1350
+#define _gather_128_type 1351
+#define _loop1_130_type 1352
+#define _tmp_131_type 1353
+#define _loop0_133_type 1354
+#define _gather_132_type 1355
+#define _loop0_135_type 1356
+#define _gather_134_type 1357
+#define _loop0_137_type 1358
+#define _gather_136_type 1359
+#define _loop0_139_type 1360
+#define _gather_138_type 1361
+#define _loop0_141_type 1362
+#define _gather_140_type 1363
+#define _tmp_142_type 1364
+#define _tmp_143_type 1365
+#define _tmp_144_type 1366
+#define _tmp_145_type 1367
+#define _tmp_146_type 1368
+#define _tmp_147_type 1369
+#define _tmp_148_type 1370
+#define _tmp_149_type 1371
+#define _tmp_150_type 1372
+#define _loop0_151_type 1373
+#define _loop0_152_type 1374
+#define _loop0_153_type 1375
+#define _tmp_154_type 1376
+#define _tmp_155_type 1377
+#define _tmp_156_type 1378
+#define _tmp_157_type 1379
+#define _loop0_158_type 1380
+#define _loop0_159_type 1381
+#define _loop1_160_type 1382
+#define _loop1_161_type 1383
+#define _loop0_162_type 1384
+#define _loop0_163_type 1385
+#define _loop0_165_type 1386
+#define _gather_164_type 1387
+#define _loop1_166_type 1388
+#define _tmp_167_type 1389
+#define _tmp_168_type 1390
+#define _tmp_169_type 1391
+#define _loop0_171_type 1392
+#define _gather_170_type 1393
+#define _loop0_173_type 1394
+#define _gather_172_type 1395
+#define _loop0_175_type 1396
+#define _gather_174_type 1397
+#define _loop0_177_type 1398
+#define _gather_176_type 1399
+#define _tmp_178_type 1400
+#define _loop0_179_type 1401
+#define _tmp_180_type 1402
+#define _loop0_181_type 1403
+#define _tmp_182_type 1404
+#define _tmp_183_type 1405
+#define _tmp_184_type 1406
+#define _tmp_185_type 1407
+#define _tmp_186_type 1408
+#define _tmp_187_type 1409
+#define _tmp_188_type 1410
+#define _tmp_189_type 1411
+#define _loop0_191_type 1412
+#define _gather_190_type 1413
+#define _tmp_192_type 1414
+#define _tmp_193_type 1415
+#define _tmp_194_type 1416
+#define _tmp_195_type 1417
+#define _tmp_196_type 1418
+#define _tmp_197_type 1419
+#define _tmp_198_type 1420
+#define _tmp_199_type 1421
+#define _tmp_200_type 1422
+#define _tmp_201_type 1423
+#define _tmp_202_type 1424
+#define _tmp_203_type 1425
+#define _tmp_204_type 1426
+#define _tmp_205_type 1427
+#define _tmp_206_type 1428
+#define _tmp_207_type 1429
+#define _tmp_208_type 1430
+#define _tmp_209_type 1431
+#define _tmp_210_type 1432
+#define _tmp_211_type 1433
+#define _tmp_212_type 1434
+#define _tmp_213_type 1435
+#define _tmp_214_type 1436
+#define _tmp_215_type 1437
+#define _tmp_216_type 1438
+#define _tmp_217_type 1439
+#define _tmp_218_type 1440
+#define _tmp_219_type 1441
+#define _tmp_220_type 1442
+#define _loop1_221_type 1443
+#define _loop1_222_type 1444
static mod_ty file_rule(Parser *p);
static mod_ty interactive_rule(Parser *p);
@@ -561,6 +574,7 @@ static stmt_ty with_stmt_rule(Parser *p);
static withitem_ty with_item_rule(Parser *p);
static stmt_ty try_stmt_rule(Parser *p);
static excepthandler_ty except_block_rule(Parser *p);
+static excepthandler_ty except_star_block_rule(Parser *p);
static asdl_stmt_seq* finally_block_rule(Parser *p);
static stmt_ty match_stmt_rule(Parser *p);
static expr_ty subject_expr_rule(Parser *p);
@@ -711,6 +725,7 @@ static void *invalid_try_stmt_rule(Parser *p);
static void *invalid_except_stmt_rule(Parser *p);
static void *invalid_finally_stmt_rule(Parser *p);
static void *invalid_except_stmt_indent_rule(Parser *p);
+static void *invalid_except_star_stmt_indent_rule(Parser *p);
static void *invalid_match_stmt_rule(Parser *p);
static void *invalid_case_block_rule(Parser *p);
static void *invalid_as_pattern_rule(Parser *p);
@@ -784,78 +799,78 @@ static asdl_seq *_loop0_57_rule(Parser *p);
static asdl_seq *_gather_56_rule(Parser *p);
static void *_tmp_58_rule(Parser *p);
static asdl_seq *_loop1_59_rule(Parser *p);
-static void *_tmp_60_rule(Parser *p);
-static asdl_seq *_loop1_61_rule(Parser *p);
-static asdl_seq *_loop0_63_rule(Parser *p);
-static asdl_seq *_gather_62_rule(Parser *p);
-static void *_tmp_64_rule(Parser *p);
-static void *_tmp_65_rule(Parser *p);
+static asdl_seq *_loop1_60_rule(Parser *p);
+static void *_tmp_61_rule(Parser *p);
+static void *_tmp_62_rule(Parser *p);
+static asdl_seq *_loop1_63_rule(Parser *p);
+static asdl_seq *_loop0_65_rule(Parser *p);
+static asdl_seq *_gather_64_rule(Parser *p);
static void *_tmp_66_rule(Parser *p);
static void *_tmp_67_rule(Parser *p);
-static asdl_seq *_loop0_69_rule(Parser *p);
-static asdl_seq *_gather_68_rule(Parser *p);
+static void *_tmp_68_rule(Parser *p);
+static void *_tmp_69_rule(Parser *p);
static asdl_seq *_loop0_71_rule(Parser *p);
static asdl_seq *_gather_70_rule(Parser *p);
-static void *_tmp_72_rule(Parser *p);
-static asdl_seq *_loop0_74_rule(Parser *p);
-static asdl_seq *_gather_73_rule(Parser *p);
+static asdl_seq *_loop0_73_rule(Parser *p);
+static asdl_seq *_gather_72_rule(Parser *p);
+static void *_tmp_74_rule(Parser *p);
static asdl_seq *_loop0_76_rule(Parser *p);
static asdl_seq *_gather_75_rule(Parser *p);
-static asdl_seq *_loop1_77_rule(Parser *p);
-static asdl_seq *_loop1_78_rule(Parser *p);
-static asdl_seq *_loop0_80_rule(Parser *p);
-static asdl_seq *_gather_79_rule(Parser *p);
-static asdl_seq *_loop1_81_rule(Parser *p);
-static asdl_seq *_loop1_82_rule(Parser *p);
+static asdl_seq *_loop0_78_rule(Parser *p);
+static asdl_seq *_gather_77_rule(Parser *p);
+static asdl_seq *_loop1_79_rule(Parser *p);
+static asdl_seq *_loop1_80_rule(Parser *p);
+static asdl_seq *_loop0_82_rule(Parser *p);
+static asdl_seq *_gather_81_rule(Parser *p);
static asdl_seq *_loop1_83_rule(Parser *p);
-static void *_tmp_84_rule(Parser *p);
-static asdl_seq *_loop0_86_rule(Parser *p);
-static asdl_seq *_gather_85_rule(Parser *p);
-static void *_tmp_87_rule(Parser *p);
-static void *_tmp_88_rule(Parser *p);
+static asdl_seq *_loop1_84_rule(Parser *p);
+static asdl_seq *_loop1_85_rule(Parser *p);
+static void *_tmp_86_rule(Parser *p);
+static asdl_seq *_loop0_88_rule(Parser *p);
+static asdl_seq *_gather_87_rule(Parser *p);
static void *_tmp_89_rule(Parser *p);
static void *_tmp_90_rule(Parser *p);
static void *_tmp_91_rule(Parser *p);
-static asdl_seq *_loop0_92_rule(Parser *p);
-static asdl_seq *_loop0_93_rule(Parser *p);
+static void *_tmp_92_rule(Parser *p);
+static void *_tmp_93_rule(Parser *p);
static asdl_seq *_loop0_94_rule(Parser *p);
-static asdl_seq *_loop1_95_rule(Parser *p);
+static asdl_seq *_loop0_95_rule(Parser *p);
static asdl_seq *_loop0_96_rule(Parser *p);
static asdl_seq *_loop1_97_rule(Parser *p);
-static asdl_seq *_loop1_98_rule(Parser *p);
+static asdl_seq *_loop0_98_rule(Parser *p);
static asdl_seq *_loop1_99_rule(Parser *p);
-static asdl_seq *_loop0_100_rule(Parser *p);
+static asdl_seq *_loop1_100_rule(Parser *p);
static asdl_seq *_loop1_101_rule(Parser *p);
static asdl_seq *_loop0_102_rule(Parser *p);
static asdl_seq *_loop1_103_rule(Parser *p);
static asdl_seq *_loop0_104_rule(Parser *p);
static asdl_seq *_loop1_105_rule(Parser *p);
-static asdl_seq *_loop1_106_rule(Parser *p);
-static void *_tmp_107_rule(Parser *p);
-static asdl_seq *_loop0_109_rule(Parser *p);
-static asdl_seq *_gather_108_rule(Parser *p);
-static asdl_seq *_loop1_110_rule(Parser *p);
+static asdl_seq *_loop0_106_rule(Parser *p);
+static asdl_seq *_loop1_107_rule(Parser *p);
+static asdl_seq *_loop1_108_rule(Parser *p);
+static void *_tmp_109_rule(Parser *p);
static asdl_seq *_loop0_111_rule(Parser *p);
-static asdl_seq *_loop0_112_rule(Parser *p);
-static void *_tmp_113_rule(Parser *p);
-static asdl_seq *_loop0_115_rule(Parser *p);
-static asdl_seq *_gather_114_rule(Parser *p);
-static void *_tmp_116_rule(Parser *p);
-static asdl_seq *_loop0_118_rule(Parser *p);
-static asdl_seq *_gather_117_rule(Parser *p);
+static asdl_seq *_gather_110_rule(Parser *p);
+static asdl_seq *_loop1_112_rule(Parser *p);
+static asdl_seq *_loop0_113_rule(Parser *p);
+static asdl_seq *_loop0_114_rule(Parser *p);
+static void *_tmp_115_rule(Parser *p);
+static asdl_seq *_loop0_117_rule(Parser *p);
+static asdl_seq *_gather_116_rule(Parser *p);
+static void *_tmp_118_rule(Parser *p);
static asdl_seq *_loop0_120_rule(Parser *p);
static asdl_seq *_gather_119_rule(Parser *p);
static asdl_seq *_loop0_122_rule(Parser *p);
static asdl_seq *_gather_121_rule(Parser *p);
static asdl_seq *_loop0_124_rule(Parser *p);
static asdl_seq *_gather_123_rule(Parser *p);
-static asdl_seq *_loop0_125_rule(Parser *p);
+static asdl_seq *_loop0_126_rule(Parser *p);
+static asdl_seq *_gather_125_rule(Parser *p);
static asdl_seq *_loop0_127_rule(Parser *p);
-static asdl_seq *_gather_126_rule(Parser *p);
-static asdl_seq *_loop1_128_rule(Parser *p);
-static void *_tmp_129_rule(Parser *p);
-static asdl_seq *_loop0_131_rule(Parser *p);
-static asdl_seq *_gather_130_rule(Parser *p);
+static asdl_seq *_loop0_129_rule(Parser *p);
+static asdl_seq *_gather_128_rule(Parser *p);
+static asdl_seq *_loop1_130_rule(Parser *p);
+static void *_tmp_131_rule(Parser *p);
static asdl_seq *_loop0_133_rule(Parser *p);
static asdl_seq *_gather_132_rule(Parser *p);
static asdl_seq *_loop0_135_rule(Parser *p);
@@ -864,8 +879,8 @@ static asdl_seq *_loop0_137_rule(Parser *p);
static asdl_seq *_gather_136_rule(Parser *p);
static asdl_seq *_loop0_139_rule(Parser *p);
static asdl_seq *_gather_138_rule(Parser *p);
-static void *_tmp_140_rule(Parser *p);
-static void *_tmp_141_rule(Parser *p);
+static asdl_seq *_loop0_141_rule(Parser *p);
+static asdl_seq *_gather_140_rule(Parser *p);
static void *_tmp_142_rule(Parser *p);
static void *_tmp_143_rule(Parser *p);
static void *_tmp_144_rule(Parser *p);
@@ -873,49 +888,49 @@ static void *_tmp_145_rule(Parser *p);
static void *_tmp_146_rule(Parser *p);
static void *_tmp_147_rule(Parser *p);
static void *_tmp_148_rule(Parser *p);
-static asdl_seq *_loop0_149_rule(Parser *p);
-static asdl_seq *_loop0_150_rule(Parser *p);
+static void *_tmp_149_rule(Parser *p);
+static void *_tmp_150_rule(Parser *p);
static asdl_seq *_loop0_151_rule(Parser *p);
-static void *_tmp_152_rule(Parser *p);
-static void *_tmp_153_rule(Parser *p);
+static asdl_seq *_loop0_152_rule(Parser *p);
+static asdl_seq *_loop0_153_rule(Parser *p);
static void *_tmp_154_rule(Parser *p);
static void *_tmp_155_rule(Parser *p);
-static asdl_seq *_loop0_156_rule(Parser *p);
-static asdl_seq *_loop0_157_rule(Parser *p);
-static asdl_seq *_loop1_158_rule(Parser *p);
-static asdl_seq *_loop1_159_rule(Parser *p);
-static asdl_seq *_loop0_160_rule(Parser *p);
-static asdl_seq *_loop0_161_rule(Parser *p);
+static void *_tmp_156_rule(Parser *p);
+static void *_tmp_157_rule(Parser *p);
+static asdl_seq *_loop0_158_rule(Parser *p);
+static asdl_seq *_loop0_159_rule(Parser *p);
+static asdl_seq *_loop1_160_rule(Parser *p);
+static asdl_seq *_loop1_161_rule(Parser *p);
+static asdl_seq *_loop0_162_rule(Parser *p);
static asdl_seq *_loop0_163_rule(Parser *p);
-static asdl_seq *_gather_162_rule(Parser *p);
-static asdl_seq *_loop1_164_rule(Parser *p);
-static void *_tmp_165_rule(Parser *p);
-static void *_tmp_166_rule(Parser *p);
+static asdl_seq *_loop0_165_rule(Parser *p);
+static asdl_seq *_gather_164_rule(Parser *p);
+static asdl_seq *_loop1_166_rule(Parser *p);
static void *_tmp_167_rule(Parser *p);
-static asdl_seq *_loop0_169_rule(Parser *p);
-static asdl_seq *_gather_168_rule(Parser *p);
+static void *_tmp_168_rule(Parser *p);
+static void *_tmp_169_rule(Parser *p);
static asdl_seq *_loop0_171_rule(Parser *p);
static asdl_seq *_gather_170_rule(Parser *p);
static asdl_seq *_loop0_173_rule(Parser *p);
static asdl_seq *_gather_172_rule(Parser *p);
static asdl_seq *_loop0_175_rule(Parser *p);
static asdl_seq *_gather_174_rule(Parser *p);
-static void *_tmp_176_rule(Parser *p);
-static void *_tmp_177_rule(Parser *p);
+static asdl_seq *_loop0_177_rule(Parser *p);
+static asdl_seq *_gather_176_rule(Parser *p);
static void *_tmp_178_rule(Parser *p);
-static void *_tmp_179_rule(Parser *p);
+static asdl_seq *_loop0_179_rule(Parser *p);
static void *_tmp_180_rule(Parser *p);
-static void *_tmp_181_rule(Parser *p);
+static asdl_seq *_loop0_181_rule(Parser *p);
static void *_tmp_182_rule(Parser *p);
-static asdl_seq *_loop0_184_rule(Parser *p);
-static asdl_seq *_gather_183_rule(Parser *p);
+static void *_tmp_183_rule(Parser *p);
+static void *_tmp_184_rule(Parser *p);
static void *_tmp_185_rule(Parser *p);
static void *_tmp_186_rule(Parser *p);
static void *_tmp_187_rule(Parser *p);
static void *_tmp_188_rule(Parser *p);
static void *_tmp_189_rule(Parser *p);
-static void *_tmp_190_rule(Parser *p);
-static void *_tmp_191_rule(Parser *p);
+static asdl_seq *_loop0_191_rule(Parser *p);
+static asdl_seq *_gather_190_rule(Parser *p);
static void *_tmp_192_rule(Parser *p);
static void *_tmp_193_rule(Parser *p);
static void *_tmp_194_rule(Parser *p);
@@ -936,6 +951,17 @@ static void *_tmp_208_rule(Parser *p);
static void *_tmp_209_rule(Parser *p);
static void *_tmp_210_rule(Parser *p);
static void *_tmp_211_rule(Parser *p);
+static void *_tmp_212_rule(Parser *p);
+static void *_tmp_213_rule(Parser *p);
+static void *_tmp_214_rule(Parser *p);
+static void *_tmp_215_rule(Parser *p);
+static void *_tmp_216_rule(Parser *p);
+static void *_tmp_217_rule(Parser *p);
+static void *_tmp_218_rule(Parser *p);
+static void *_tmp_219_rule(Parser *p);
+static void *_tmp_220_rule(Parser *p);
+static asdl_seq *_loop1_221_rule(Parser *p);
+static asdl_seq *_loop1_222_rule(Parser *p);
// file: statements? $
@@ -1670,7 +1696,7 @@ simple_stmt_rule(Parser *p)
D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
stmt_ty del_stmt_var;
if (
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 600) // token='del'
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 603) // token='del'
&&
(del_stmt_var = del_stmt_rule(p)) // del_stmt
)
@@ -1691,7 +1717,7 @@ simple_stmt_rule(Parser *p)
D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
stmt_ty yield_stmt_var;
if (
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 570) // token='yield'
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 573) // token='yield'
&&
(yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
)
@@ -1888,7 +1914,7 @@ compound_stmt_rule(Parser *p)
D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
stmt_ty if_stmt_var;
if (
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 627) // token='if'
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 634) // token='if'
&&
(if_stmt_var = if_stmt_rule(p)) // if_stmt
)
@@ -1972,7 +1998,7 @@ compound_stmt_rule(Parser *p)
D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
stmt_ty try_stmt_var;
if (
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 612) // token='try'
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 618) // token='try'
&&
(try_stmt_var = try_stmt_rule(p)) // try_stmt
)
@@ -1993,7 +2019,7 @@ compound_stmt_rule(Parser *p)
D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
stmt_ty while_stmt_var;
if (
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 632) // token='while'
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 639) // token='while'
&&
(while_stmt_var = while_stmt_rule(p)) // while_stmt
)
@@ -2962,7 +2988,7 @@ del_stmt_rule(Parser *p)
Token * _keyword;
asdl_expr_seq* a;
if (
- (_keyword = _PyPegen_expect_token(p, 600)) // token='del'
+ (_keyword = _PyPegen_expect_token(p, 603)) // token='del'
&&
(a = del_targets_rule(p)) // del_targets
&&
@@ -3291,7 +3317,7 @@ import_from_rule(Parser *p)
expr_ty b;
asdl_alias_seq* c;
if (
- (_keyword = _PyPegen_expect_token(p, 569)) // token='from'
+ (_keyword = _PyPegen_expect_token(p, 572)) // token='from'
&&
(a = _loop0_24_rule(p)) // (('.' | '...'))*
&&
@@ -3335,7 +3361,7 @@ import_from_rule(Parser *p)
asdl_seq * a;
asdl_alias_seq* b;
if (
- (_keyword = _PyPegen_expect_token(p, 569)) // token='from'
+ (_keyword = _PyPegen_expect_token(p, 572)) // token='from'
&&
(a = _loop1_25_rule(p)) // (('.' | '...'))+
&&
@@ -4063,7 +4089,7 @@ class_def_raw_rule(Parser *p)
void *b;
asdl_stmt_seq* c;
if (
- (_keyword = _PyPegen_expect_token(p, 636)) // token='class'
+ (_keyword = _PyPegen_expect_token(p, 643)) // token='class'
&&
(a = _PyPegen_name_token(p)) // NAME
&&
@@ -4223,7 +4249,7 @@ function_def_raw_rule(Parser *p)
void *params;
void *tc;
if (
- (_keyword = _PyPegen_expect_token(p, 635)) // token='def'
+ (_keyword = _PyPegen_expect_token(p, 642)) // token='def'
&&
(n = _PyPegen_name_token(p)) // NAME
&&
@@ -4283,7 +4309,7 @@ function_def_raw_rule(Parser *p)
if (
(async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
&&
- (_keyword = _PyPegen_expect_token(p, 635)) // token='def'
+ (_keyword = _PyPegen_expect_token(p, 642)) // token='def'
&&
(n = _PyPegen_name_token(p)) // NAME
&&
@@ -5331,7 +5357,7 @@ if_stmt_rule(Parser *p)
asdl_stmt_seq* b;
stmt_ty c;
if (
- (_keyword = _PyPegen_expect_token(p, 627)) // token='if'
+ (_keyword = _PyPegen_expect_token(p, 634)) // token='if'
&&
(a = named_expression_rule(p)) // named_expression
&&
@@ -5376,7 +5402,7 @@ if_stmt_rule(Parser *p)
asdl_stmt_seq* b;
void *c;
if (
- (_keyword = _PyPegen_expect_token(p, 627)) // token='if'
+ (_keyword = _PyPegen_expect_token(p, 634)) // token='if'
&&
(a = named_expression_rule(p)) // named_expression
&&
@@ -5469,7 +5495,7 @@ elif_stmt_rule(Parser *p)
asdl_stmt_seq* b;
stmt_ty c;
if (
- (_keyword = _PyPegen_expect_token(p, 629)) // token='elif'
+ (_keyword = _PyPegen_expect_token(p, 636)) // token='elif'
&&
(a = named_expression_rule(p)) // named_expression
&&
@@ -5514,7 +5540,7 @@ elif_stmt_rule(Parser *p)
asdl_stmt_seq* b;
void *c;
if (
- (_keyword = _PyPegen_expect_token(p, 629)) // token='elif'
+ (_keyword = _PyPegen_expect_token(p, 636)) // token='elif'
&&
(a = named_expression_rule(p)) // named_expression
&&
@@ -5593,7 +5619,7 @@ else_block_rule(Parser *p)
Token * _literal;
asdl_stmt_seq* b;
if (
- (_keyword = _PyPegen_expect_token(p, 630)) // token='else'
+ (_keyword = _PyPegen_expect_token(p, 637)) // token='else'
&&
(_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
&&
@@ -5670,7 +5696,7 @@ while_stmt_rule(Parser *p)
asdl_stmt_seq* b;
void *c;
if (
- (_keyword = _PyPegen_expect_token(p, 632)) // token='while'
+ (_keyword = _PyPegen_expect_token(p, 639)) // token='while'
&&
(a = named_expression_rule(p)) // named_expression
&&
@@ -5768,11 +5794,11 @@ for_stmt_rule(Parser *p)
expr_ty t;
void *tc;
if (
- (_keyword = _PyPegen_expect_token(p, 633)) // token='for'
+ (_keyword = _PyPegen_expect_token(p, 640)) // token='for'
&&
(t = star_targets_rule(p)) // star_targets
&&
- (_keyword_1 = _PyPegen_expect_token(p, 634)) // token='in'
+ (_keyword_1 = _PyPegen_expect_token(p, 641)) // token='in'
&&
(_cut_var = 1)
&&
@@ -5832,11 +5858,11 @@ for_stmt_rule(Parser *p)
if (
(async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
&&
- (_keyword = _PyPegen_expect_token(p, 633)) // token='for'
+ (_keyword = _PyPegen_expect_token(p, 640)) // token='for'
&&
(t = star_targets_rule(p)) // star_targets
&&
- (_keyword_1 = _PyPegen_expect_token(p, 634)) // token='in'
+ (_keyword_1 = _PyPegen_expect_token(p, 641)) // token='in'
&&
(_cut_var = 1)
&&
@@ -5962,7 +5988,7 @@ with_stmt_rule(Parser *p)
asdl_withitem_seq* a;
asdl_stmt_seq* b;
if (
- (_keyword = _PyPegen_expect_token(p, 609)) // token='with'
+ (_keyword = _PyPegen_expect_token(p, 612)) // token='with'
&&
(_literal = _PyPegen_expect_token(p, 7)) // token='('
&&
@@ -6011,7 +6037,7 @@ with_stmt_rule(Parser *p)
asdl_stmt_seq* b;
void *tc;
if (
- (_keyword = _PyPegen_expect_token(p, 609)) // token='with'
+ (_keyword = _PyPegen_expect_token(p, 612)) // token='with'
&&
(a = (asdl_withitem_seq*)_gather_52_rule(p)) // ','.with_item+
&&
@@ -6062,7 +6088,7 @@ with_stmt_rule(Parser *p)
if (
(async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
&&
- (_keyword = _PyPegen_expect_token(p, 609)) // token='with'
+ (_keyword = _PyPegen_expect_token(p, 612)) // token='with'
&&
(_literal = _PyPegen_expect_token(p, 7)) // token='('
&&
@@ -6114,7 +6140,7 @@ with_stmt_rule(Parser *p)
if (
(async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
&&
- (_keyword = _PyPegen_expect_token(p, 609)) // token='with'
+ (_keyword = _PyPegen_expect_token(p, 612)) // token='with'
&&
(a = (asdl_withitem_seq*)_gather_56_rule(p)) // ','.with_item+
&&
@@ -6198,7 +6224,7 @@ with_item_rule(Parser *p)
if (
(e = expression_rule(p)) // expression
&&
- (_keyword = _PyPegen_expect_token(p, 625)) // token='as'
+ (_keyword = _PyPegen_expect_token(p, 632)) // token='as'
&&
(t = star_target_rule(p)) // star_target
&&
@@ -6271,6 +6297,7 @@ with_item_rule(Parser *p)
// | invalid_try_stmt
// | 'try' &&':' block finally_block
// | 'try' &&':' block except_block+ else_block? finally_block?
+// | 'try' &&':' block except_star_block+ else_block? finally_block?
static stmt_ty
try_stmt_rule(Parser *p)
{
@@ -6320,7 +6347,7 @@ try_stmt_rule(Parser *p)
asdl_stmt_seq* b;
asdl_stmt_seq* f;
if (
- (_keyword = _PyPegen_expect_token(p, 612)) // token='try'
+ (_keyword = _PyPegen_expect_token(p, 618)) // token='try'
&&
(_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
&&
@@ -6364,7 +6391,7 @@ try_stmt_rule(Parser *p)
asdl_excepthandler_seq* ex;
void *f;
if (
- (_keyword = _PyPegen_expect_token(p, 612)) // token='try'
+ (_keyword = _PyPegen_expect_token(p, 618)) // token='try'
&&
(_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
&&
@@ -6399,6 +6426,54 @@ try_stmt_rule(Parser *p)
D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
}
+ { // 'try' &&':' block except_star_block+ else_block? finally_block?
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' &&':' block except_star_block+ else_block? finally_block?"));
+ Token * _keyword;
+ Token * _literal;
+ asdl_stmt_seq* b;
+ void *el;
+ asdl_excepthandler_seq* ex;
+ void *f;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 618)) // token='try'
+ &&
+ (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
+ &&
+ (b = block_rule(p)) // block
+ &&
+ (ex = (asdl_excepthandler_seq*)_loop1_60_rule(p)) // except_star_block+
+ &&
+ (el = else_block_rule(p), !p->error_indicator) // else_block?
+ &&
+ (f = finally_block_rule(p), !p->error_indicator) // finally_block?
+ )
+ {
+ D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' &&':' block except_star_block+ else_block? finally_block?"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ D(p->level--);
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _PyAST_TryStar ( b , ex , el , f , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ D(p->level--);
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_star_block+ else_block? finally_block?"));
+ }
_res = NULL;
done:
D(p->level--);
@@ -6460,11 +6535,11 @@ except_block_rule(Parser *p)
expr_ty e;
void *t;
if (
- (_keyword = _PyPegen_expect_token(p, 623)) // token='except'
+ (_keyword = _PyPegen_expect_token(p, 629)) // token='except'
&&
(e = expression_rule(p)) // expression
&&
- (t = _tmp_60_rule(p), !p->error_indicator) // ['as' NAME]
+ (t = _tmp_61_rule(p), !p->error_indicator) // ['as' NAME]
&&
(_literal = _PyPegen_expect_token(p, 11)) // token=':'
&&
@@ -6503,7 +6578,7 @@ except_block_rule(Parser *p)
Token * _literal;
asdl_stmt_seq* b;
if (
- (_keyword = _PyPegen_expect_token(p, 623)) // token='except'
+ (_keyword = _PyPegen_expect_token(p, 629)) // token='except'
&&
(_literal = _PyPegen_expect_token(p, 11)) // token=':'
&&
@@ -6557,6 +6632,121 @@ except_block_rule(Parser *p)
return _res;
}
+// except_star_block:
+// | invalid_except_star_stmt_indent
+// | 'except' '*' expression ['as' NAME] ':' block
+// | invalid_except_stmt
+static excepthandler_ty
+except_star_block_rule(Parser *p)
+{
+ D(p->level++);
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ excepthandler_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ D(p->level--);
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ if (p->call_invalid_rules) { // invalid_except_star_stmt_indent
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> except_star_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_star_stmt_indent"));
+ void *invalid_except_star_stmt_indent_var;
+ if (
+ (invalid_except_star_stmt_indent_var = invalid_except_star_stmt_indent_rule(p)) // invalid_except_star_stmt_indent
+ )
+ {
+ D(fprintf(stderr, "%*c+ except_star_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_star_stmt_indent"));
+ _res = invalid_except_star_stmt_indent_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s except_star_block[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_star_stmt_indent"));
+ }
+ { // 'except' '*' expression ['as' NAME] ':' block
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> except_star_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*' expression ['as' NAME] ':' block"));
+ Token * _keyword;
+ Token * _literal;
+ Token * _literal_1;
+ asdl_stmt_seq* b;
+ expr_ty e;
+ void *t;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 629)) // token='except'
+ &&
+ (_literal = _PyPegen_expect_token(p, 16)) // token='*'
+ &&
+ (e = expression_rule(p)) // expression
+ &&
+ (t = _tmp_62_rule(p), !p->error_indicator) // ['as' NAME]
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (b = block_rule(p)) // block
+ )
+ {
+ D(fprintf(stderr, "%*c+ except_star_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*' expression ['as' NAME] ':' block"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ D(p->level--);
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ D(p->level--);
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s except_star_block[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' expression ['as' NAME] ':' block"));
+ }
+ if (p->call_invalid_rules) { // invalid_except_stmt
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> except_star_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
+ void *invalid_except_stmt_var;
+ if (
+ (invalid_except_stmt_var = invalid_except_stmt_rule(p)) // invalid_except_stmt
+ )
+ {
+ D(fprintf(stderr, "%*c+ except_star_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
+ _res = invalid_except_stmt_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s except_star_block[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt"));
+ }
+ _res = NULL;
+ done:
+ D(p->level--);
+ return _res;
+}
+
// finally_block: invalid_finally_stmt | 'finally' &&':' block
static asdl_stmt_seq*
finally_block_rule(Parser *p)
@@ -6597,7 +6787,7 @@ finally_block_rule(Parser *p)
Token * _literal;
asdl_stmt_seq* a;
if (
- (_keyword = _PyPegen_expect_token(p, 620)) // token='finally'
+ (_keyword = _PyPegen_expect_token(p, 625)) // token='finally'
&&
(_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
&&
@@ -6669,7 +6859,7 @@ match_stmt_rule(Parser *p)
&&
(indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
&&
- (cases = (asdl_match_case_seq*)_loop1_61_rule(p)) // case_block+
+ (cases = (asdl_match_case_seq*)_loop1_63_rule(p)) // case_block+
&&
(dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
)
@@ -6897,7 +7087,7 @@ guard_rule(Parser *p)
Token * _keyword;
expr_ty guard;
if (
- (_keyword = _PyPegen_expect_token(p, 627)) // token='if'
+ (_keyword = _PyPegen_expect_token(p, 634)) // token='if'
&&
(guard = named_expression_rule(p)) // named_expression
)
@@ -7086,7 +7276,7 @@ as_pattern_rule(Parser *p)
if (
(pattern = or_pattern_rule(p)) // or_pattern
&&
- (_keyword = _PyPegen_expect_token(p, 625)) // token='as'
+ (_keyword = _PyPegen_expect_token(p, 632)) // token='as'
&&
(target = pattern_capture_target_rule(p)) // pattern_capture_target
)
@@ -7166,7 +7356,7 @@ or_pattern_rule(Parser *p)
D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
asdl_pattern_seq* patterns;
if (
- (patterns = (asdl_pattern_seq*)_gather_62_rule(p)) // '|'.closed_pattern+
+ (patterns = (asdl_pattern_seq*)_gather_64_rule(p)) // '|'.closed_pattern+
)
{
D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
@@ -7410,7 +7600,7 @@ literal_pattern_rule(Parser *p)
if (
(value = signed_number_rule(p)) // signed_number
&&
- _PyPegen_lookahead(0, _tmp_64_rule, p)
+ _PyPegen_lookahead(0, _tmp_66_rule, p)
)
{
D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
@@ -7509,7 +7699,7 @@ literal_pattern_rule(Parser *p)
D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 598)) // token='None'
+ (_keyword = _PyPegen_expect_token(p, 601)) // token='None'
)
{
D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
@@ -7542,7 +7732,7 @@ literal_pattern_rule(Parser *p)
D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 597)) // token='True'
+ (_keyword = _PyPegen_expect_token(p, 600)) // token='True'
)
{
D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
@@ -7575,7 +7765,7 @@ literal_pattern_rule(Parser *p)
D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 599)) // token='False'
+ (_keyword = _PyPegen_expect_token(p, 602)) // token='False'
)
{
D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
@@ -7642,7 +7832,7 @@ literal_expr_rule(Parser *p)
if (
(signed_number_var = signed_number_rule(p)) // signed_number
&&
- _PyPegen_lookahead(0, _tmp_65_rule, p)
+ _PyPegen_lookahead(0, _tmp_67_rule, p)
)
{
D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
@@ -7699,7 +7889,7 @@ literal_expr_rule(Parser *p)
D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 598)) // token='None'
+ (_keyword = _PyPegen_expect_token(p, 601)) // token='None'
)
{
D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
@@ -7732,7 +7922,7 @@ literal_expr_rule(Parser *p)
D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 597)) // token='True'
+ (_keyword = _PyPegen_expect_token(p, 600)) // token='True'
)
{
D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
@@ -7765,7 +7955,7 @@ literal_expr_rule(Parser *p)
D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 599)) // token='False'
+ (_keyword = _PyPegen_expect_token(p, 602)) // token='False'
)
{
D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
@@ -8228,7 +8418,7 @@ pattern_capture_target_rule(Parser *p)
&&
(name = _PyPegen_name_token(p)) // NAME
&&
- _PyPegen_lookahead(0, _tmp_66_rule, p)
+ _PyPegen_lookahead(0, _tmp_68_rule, p)
)
{
D(fprintf(stderr, "%*c+ pattern_capture_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
@@ -8339,7 +8529,7 @@ value_pattern_rule(Parser *p)
if (
(attr = attr_rule(p)) // attr
&&
- _PyPegen_lookahead(0, _tmp_67_rule, p)
+ _PyPegen_lookahead(0, _tmp_69_rule, p)
)
{
D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
@@ -8744,7 +8934,7 @@ maybe_sequence_pattern_rule(Parser *p)
UNUSED(_opt_var); // Silence compiler warnings
asdl_seq * patterns;
if (
- (patterns = _gather_68_rule(p)) // ','.maybe_star_pattern+
+ (patterns = _gather_70_rule(p)) // ','.maybe_star_pattern+
&&
(_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
)
@@ -9139,13 +9329,13 @@ items_pattern_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> items_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+"));
- asdl_seq * _gather_70_var;
+ asdl_seq * _gather_72_var;
if (
- (_gather_70_var = _gather_70_rule(p)) // ','.key_value_pattern+
+ (_gather_72_var = _gather_72_rule(p)) // ','.key_value_pattern+
)
{
D(fprintf(stderr, "%*c+ items_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+"));
- _res = _gather_70_var;
+ _res = _gather_72_var;
goto done;
}
p->mark = _mark;
@@ -9179,7 +9369,7 @@ key_value_pattern_rule(Parser *p)
void *key;
pattern_ty pattern;
if (
- (key = _tmp_72_rule(p)) // literal_expr | attr
+ (key = _tmp_74_rule(p)) // literal_expr | attr
&&
(_literal = _PyPegen_expect_token(p, 11)) // token=':'
&&
@@ -9501,7 +9691,7 @@ positional_patterns_rule(Parser *p)
D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
asdl_pattern_seq* args;
if (
- (args = (asdl_pattern_seq*)_gather_73_rule(p)) // ','.pattern+
+ (args = (asdl_pattern_seq*)_gather_75_rule(p)) // ','.pattern+
)
{
D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
@@ -9540,13 +9730,13 @@ keyword_patterns_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
- asdl_seq * _gather_75_var;
+ asdl_seq * _gather_77_var;
if (
- (_gather_75_var = _gather_75_rule(p)) // ','.keyword_pattern+
+ (_gather_77_var = _gather_77_rule(p)) // ','.keyword_pattern+
)
{
D(fprintf(stderr, "%*c+ keyword_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
- _res = _gather_75_var;
+ _res = _gather_77_var;
goto done;
}
p->mark = _mark;
@@ -9639,7 +9829,7 @@ expressions_rule(Parser *p)
if (
(a = expression_rule(p)) // expression
&&
- (b = _loop1_77_rule(p)) // ((',' expression))+
+ (b = _loop1_79_rule(p)) // ((',' expression))+
&&
(_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
)
@@ -9808,11 +9998,11 @@ expression_rule(Parser *p)
if (
(a = disjunction_rule(p)) // disjunction
&&
- (_keyword = _PyPegen_expect_token(p, 627)) // token='if'
+ (_keyword = _PyPegen_expect_token(p, 634)) // token='if'
&&
(b = disjunction_rule(p)) // disjunction
&&
- (_keyword_1 = _PyPegen_expect_token(p, 630)) // token='else'
+ (_keyword_1 = _PyPegen_expect_token(p, 637)) // token='else'
&&
(c = expression_rule(p)) // expression
)
@@ -9914,9 +10104,9 @@ yield_expr_rule(Parser *p)
Token * _keyword_1;
expr_ty a;
if (
- (_keyword = _PyPegen_expect_token(p, 570)) // token='yield'
+ (_keyword = _PyPegen_expect_token(p, 573)) // token='yield'
&&
- (_keyword_1 = _PyPegen_expect_token(p, 569)) // token='from'
+ (_keyword_1 = _PyPegen_expect_token(p, 572)) // token='from'
&&
(a = expression_rule(p)) // expression
)
@@ -9952,7 +10142,7 @@ yield_expr_rule(Parser *p)
Token * _keyword;
void *a;
if (
- (_keyword = _PyPegen_expect_token(p, 570)) // token='yield'
+ (_keyword = _PyPegen_expect_token(p, 573)) // token='yield'
&&
(a = star_expressions_rule(p), !p->error_indicator) // star_expressions?
)
@@ -10021,7 +10211,7 @@ star_expressions_rule(Parser *p)
if (
(a = star_expression_rule(p)) // star_expression
&&
- (b = _loop1_78_rule(p)) // ((',' star_expression))+
+ (b = _loop1_80_rule(p)) // ((',' star_expression))+
&&
(_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
)
@@ -10216,7 +10406,7 @@ star_named_expressions_rule(Parser *p)
UNUSED(_opt_var); // Silence compiler warnings
asdl_expr_seq* a;
if (
- (a = (asdl_expr_seq*)_gather_79_rule(p)) // ','.star_named_expression+
+ (a = (asdl_expr_seq*)_gather_81_rule(p)) // ','.star_named_expression+
&&
(_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
)
@@ -10504,7 +10694,7 @@ disjunction_rule(Parser *p)
if (
(a = conjunction_rule(p)) // conjunction
&&
- (b = _loop1_81_rule(p)) // (('or' conjunction))+
+ (b = _loop1_83_rule(p)) // (('or' conjunction))+
)
{
D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
@@ -10590,7 +10780,7 @@ conjunction_rule(Parser *p)
if (
(a = inversion_rule(p)) // inversion
&&
- (b = _loop1_82_rule(p)) // (('and' inversion))+
+ (b = _loop1_84_rule(p)) // (('and' inversion))+
)
{
D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
@@ -10674,7 +10864,7 @@ inversion_rule(Parser *p)
Token * _keyword;
expr_ty a;
if (
- (_keyword = _PyPegen_expect_token(p, 578)) // token='not'
+ (_keyword = _PyPegen_expect_token(p, 581)) // token='not'
&&
(a = inversion_rule(p)) // inversion
)
@@ -10758,7 +10948,7 @@ comparison_rule(Parser *p)
if (
(a = bitwise_or_rule(p)) // bitwise_or
&&
- (b = _loop1_83_rule(p)) // compare_op_bitwise_or_pair+
+ (b = _loop1_85_rule(p)) // compare_op_bitwise_or_pair+
)
{
D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
@@ -11086,10 +11276,10 @@ noteq_bitwise_or_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> noteq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
- void *_tmp_84_var;
+ void *_tmp_86_var;
expr_ty a;
if (
- (_tmp_84_var = _tmp_84_rule(p)) // '!='
+ (_tmp_86_var = _tmp_86_rule(p)) // '!='
&&
(a = bitwise_or_rule(p)) // bitwise_or
)
@@ -11310,9 +11500,9 @@ notin_bitwise_or_rule(Parser *p)
Token * _keyword_1;
expr_ty a;
if (
- (_keyword = _PyPegen_expect_token(p, 578)) // token='not'
+ (_keyword = _PyPegen_expect_token(p, 581)) // token='not'
&&
- (_keyword_1 = _PyPegen_expect_token(p, 634)) // token='in'
+ (_keyword_1 = _PyPegen_expect_token(p, 641)) // token='in'
&&
(a = bitwise_or_rule(p)) // bitwise_or
)
@@ -11356,7 +11546,7 @@ in_bitwise_or_rule(Parser *p)
Token * _keyword;
expr_ty a;
if (
- (_keyword = _PyPegen_expect_token(p, 634)) // token='in'
+ (_keyword = _PyPegen_expect_token(p, 641)) // token='in'
&&
(a = bitwise_or_rule(p)) // bitwise_or
)
@@ -11401,9 +11591,9 @@ isnot_bitwise_or_rule(Parser *p)
Token * _keyword_1;
expr_ty a;
if (
- (_keyword = _PyPegen_expect_token(p, 579)) // token='is'
+ (_keyword = _PyPegen_expect_token(p, 582)) // token='is'
&&
- (_keyword_1 = _PyPegen_expect_token(p, 578)) // token='not'
+ (_keyword_1 = _PyPegen_expect_token(p, 581)) // token='not'
&&
(a = bitwise_or_rule(p)) // bitwise_or
)
@@ -11447,7 +11637,7 @@ is_bitwise_or_rule(Parser *p)
Token * _keyword;
expr_ty a;
if (
- (_keyword = _PyPegen_expect_token(p, 579)) // token='is'
+ (_keyword = _PyPegen_expect_token(p, 582)) // token='is'
&&
(a = bitwise_or_rule(p)) // bitwise_or
)
@@ -13046,7 +13236,7 @@ slices_rule(Parser *p)
UNUSED(_opt_var); // Silence compiler warnings
asdl_expr_seq* a;
if (
- (a = (asdl_expr_seq*)_gather_85_rule(p)) // ','.slice+
+ (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.slice+
&&
(_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
)
@@ -13116,7 +13306,7 @@ slice_rule(Parser *p)
&&
(b = expression_rule(p), !p->error_indicator) // expression?
&&
- (c = _tmp_87_rule(p), !p->error_indicator) // [':' expression?]
+ (c = _tmp_89_rule(p), !p->error_indicator) // [':' expression?]
)
{
D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
@@ -13228,7 +13418,7 @@ atom_rule(Parser *p)
D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 597)) // token='True'
+ (_keyword = _PyPegen_expect_token(p, 600)) // token='True'
)
{
D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
@@ -13261,7 +13451,7 @@ atom_rule(Parser *p)
D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 599)) // token='False'
+ (_keyword = _PyPegen_expect_token(p, 602)) // token='False'
)
{
D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
@@ -13294,7 +13484,7 @@ atom_rule(Parser *p)
D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 598)) // token='None'
+ (_keyword = _PyPegen_expect_token(p, 601)) // token='None'
)
{
D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
@@ -13365,15 +13555,15 @@ atom_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
- void *_tmp_88_var;
+ void *_tmp_90_var;
if (
_PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
&&
- (_tmp_88_var = _tmp_88_rule(p)) // tuple | group | genexp
+ (_tmp_90_var = _tmp_90_rule(p)) // tuple | group | genexp
)
{
D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
- _res = _tmp_88_var;
+ _res = _tmp_90_var;
goto done;
}
p->mark = _mark;
@@ -13386,15 +13576,15 @@ atom_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
- void *_tmp_89_var;
+ void *_tmp_91_var;
if (
_PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
&&
- (_tmp_89_var = _tmp_89_rule(p)) // list | listcomp
+ (_tmp_91_var = _tmp_91_rule(p)) // list | listcomp
)
{
D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
- _res = _tmp_89_var;
+ _res = _tmp_91_var;
goto done;
}
p->mark = _mark;
@@ -13407,15 +13597,15 @@ atom_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
- void *_tmp_90_var;
+ void *_tmp_92_var;
if (
_PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
&&
- (_tmp_90_var = _tmp_90_rule(p)) // dict | set | dictcomp | setcomp
+ (_tmp_92_var = _tmp_92_rule(p)) // dict | set | dictcomp | setcomp
)
{
D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
- _res = _tmp_90_var;
+ _res = _tmp_92_var;
goto done;
}
p->mark = _mark;
@@ -13484,7 +13674,7 @@ group_rule(Parser *p)
if (
(_literal = _PyPegen_expect_token(p, 7)) // token='('
&&
- (a = _tmp_91_rule(p)) // yield_expr | named_expression
+ (a = _tmp_93_rule(p)) // yield_expr | named_expression
&&
(_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
)
@@ -13558,7 +13748,7 @@ lambdef_rule(Parser *p)
void *a;
expr_ty b;
if (
- (_keyword = _PyPegen_expect_token(p, 583)) // token='lambda'
+ (_keyword = _PyPegen_expect_token(p, 586)) // token='lambda'
&&
(a = lambda_params_rule(p), !p->error_indicator) // lambda_params?
&&
@@ -13679,9 +13869,9 @@ lambda_parameters_rule(Parser *p)
if (
(a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
&&
- (b = (asdl_arg_seq*)_loop0_92_rule(p)) // lambda_param_no_default*
+ (b = (asdl_arg_seq*)_loop0_94_rule(p)) // lambda_param_no_default*
&&
- (c = _loop0_93_rule(p)) // lambda_param_with_default*
+ (c = _loop0_95_rule(p)) // lambda_param_with_default*
&&
(d = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
)
@@ -13711,7 +13901,7 @@ lambda_parameters_rule(Parser *p)
if (
(a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
&&
- (b = _loop0_94_rule(p)) // lambda_param_with_default*
+ (b = _loop0_96_rule(p)) // lambda_param_with_default*
&&
(c = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
)
@@ -13739,9 +13929,9 @@ lambda_parameters_rule(Parser *p)
asdl_seq * b;
void *c;
if (
- (a = (asdl_arg_seq*)_loop1_95_rule(p)) // lambda_param_no_default+
+ (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
&&
- (b = _loop0_96_rule(p)) // lambda_param_with_default*
+ (b = _loop0_98_rule(p)) // lambda_param_with_default*
&&
(c = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
)
@@ -13768,7 +13958,7 @@ lambda_parameters_rule(Parser *p)
asdl_seq * a;
void *b;
if (
- (a = _loop1_97_rule(p)) // lambda_param_with_default+
+ (a = _loop1_99_rule(p)) // lambda_param_with_default+
&&
(b = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
)
@@ -13839,7 +14029,7 @@ lambda_slash_no_default_rule(Parser *p)
Token * _literal_1;
asdl_arg_seq* a;
if (
- (a = (asdl_arg_seq*)_loop1_98_rule(p)) // lambda_param_no_default+
+ (a = (asdl_arg_seq*)_loop1_100_rule(p)) // lambda_param_no_default+
&&
(_literal = _PyPegen_expect_token(p, 17)) // token='/'
&&
@@ -13868,7 +14058,7 @@ lambda_slash_no_default_rule(Parser *p)
Token * _literal;
asdl_arg_seq* a;
if (
- (a = (asdl_arg_seq*)_loop1_99_rule(p)) // lambda_param_no_default+
+ (a = (asdl_arg_seq*)_loop1_101_rule(p)) // lambda_param_no_default+
&&
(_literal = _PyPegen_expect_token(p, 17)) // token='/'
&&
@@ -13918,9 +14108,9 @@ lambda_slash_with_default_rule(Parser *p)
asdl_seq * a;
asdl_seq * b;
if (
- (a = _loop0_100_rule(p)) // lambda_param_no_default*
+ (a = _loop0_102_rule(p)) // lambda_param_no_default*
&&
- (b = _loop1_101_rule(p)) // lambda_param_with_default+
+ (b = _loop1_103_rule(p)) // lambda_param_with_default+
&&
(_literal = _PyPegen_expect_token(p, 17)) // token='/'
&&
@@ -13950,9 +14140,9 @@ lambda_slash_with_default_rule(Parser *p)
asdl_seq * a;
asdl_seq * b;
if (
- (a = _loop0_102_rule(p)) // lambda_param_no_default*
+ (a = _loop0_104_rule(p)) // lambda_param_no_default*
&&
- (b = _loop1_103_rule(p)) // lambda_param_with_default+
+ (b = _loop1_105_rule(p)) // lambda_param_with_default+
&&
(_literal = _PyPegen_expect_token(p, 17)) // token='/'
&&
@@ -14008,7 +14198,7 @@ lambda_star_etc_rule(Parser *p)
&&
(a = lambda_param_no_default_rule(p)) // lambda_param_no_default
&&
- (b = _loop0_104_rule(p)) // lambda_param_maybe_default*
+ (b = _loop0_106_rule(p)) // lambda_param_maybe_default*
&&
(c = lambda_kwds_rule(p), !p->error_indicator) // lambda_kwds?
)
@@ -14041,7 +14231,7 @@ lambda_star_etc_rule(Parser *p)
&&
(_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
&&
- (b = _loop1_105_rule(p)) // lambda_param_maybe_default+
+ (b = _loop1_107_rule(p)) // lambda_param_maybe_default+
&&
(c = lambda_kwds_rule(p), !p->error_indicator) // lambda_kwds?
)
@@ -14456,7 +14646,7 @@ strings_rule(Parser *p)
D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
asdl_seq * a;
if (
- (a = _loop1_106_rule(p)) // STRING+
+ (a = _loop1_108_rule(p)) // STRING+
)
{
D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
@@ -14576,7 +14766,7 @@ tuple_rule(Parser *p)
if (
(_literal = _PyPegen_expect_token(p, 7)) // token='('
&&
- (a = _tmp_107_rule(p), !p->error_indicator) // [star_named_expression ',' star_named_expressions?]
+ (a = _tmp_109_rule(p), !p->error_indicator) // [star_named_expression ',' star_named_expressions?]
&&
(_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
)
@@ -14785,7 +14975,7 @@ double_starred_kvpairs_rule(Parser *p)
UNUSED(_opt_var); // Silence compiler warnings
asdl_seq * a;
if (
- (a = _gather_108_rule(p)) // ','.double_starred_kvpair+
+ (a = _gather_110_rule(p)) // ','.double_starred_kvpair+
&&
(_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
)
@@ -14938,7 +15128,7 @@ for_if_clauses_rule(Parser *p)
D(fprintf(stderr, "%*c> for_if_clauses[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
asdl_comprehension_seq* a;
if (
- (a = (asdl_comprehension_seq*)_loop1_110_rule(p)) // for_if_clause+
+ (a = (asdl_comprehension_seq*)_loop1_112_rule(p)) // for_if_clause+
)
{
D(fprintf(stderr, "%*c+ for_if_clauses[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
@@ -14990,17 +15180,17 @@ for_if_clause_rule(Parser *p)
if (
(async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
&&
- (_keyword = _PyPegen_expect_token(p, 633)) // token='for'
+ (_keyword = _PyPegen_expect_token(p, 640)) // token='for'
&&
(a = star_targets_rule(p)) // star_targets
&&
- (_keyword_1 = _PyPegen_expect_token(p, 634)) // token='in'
+ (_keyword_1 = _PyPegen_expect_token(p, 641)) // token='in'
&&
(_cut_var = 1)
&&
(b = disjunction_rule(p)) // disjunction
&&
- (c = (asdl_expr_seq*)_loop0_111_rule(p)) // (('if' disjunction))*
+ (c = (asdl_expr_seq*)_loop0_113_rule(p)) // (('if' disjunction))*
)
{
D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
@@ -15033,17 +15223,17 @@ for_if_clause_rule(Parser *p)
expr_ty b;
asdl_expr_seq* c;
if (
- (_keyword = _PyPegen_expect_token(p, 633)) // token='for'
+ (_keyword = _PyPegen_expect_token(p, 640)) // token='for'
&&
(a = star_targets_rule(p)) // star_targets
&&
- (_keyword_1 = _PyPegen_expect_token(p, 634)) // token='in'
+ (_keyword_1 = _PyPegen_expect_token(p, 641)) // token='in'
&&
(_cut_var = 1)
&&
(b = disjunction_rule(p)) // disjunction
&&
- (c = (asdl_expr_seq*)_loop0_112_rule(p)) // (('if' disjunction))*
+ (c = (asdl_expr_seq*)_loop0_114_rule(p)) // (('if' disjunction))*
)
{
D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
@@ -15297,7 +15487,7 @@ genexp_rule(Parser *p)
if (
(_literal = _PyPegen_expect_token(p, 7)) // token='('
&&
- (a = _tmp_113_rule(p)) // assignment_expression | expression !':='
+ (a = _tmp_115_rule(p)) // assignment_expression | expression !':='
&&
(b = for_if_clauses_rule(p)) // for_if_clauses
&&
@@ -15540,9 +15730,9 @@ args_rule(Parser *p)
asdl_expr_seq* a;
void *b;
if (
- (a = (asdl_expr_seq*)_gather_114_rule(p)) // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+
+ (a = (asdl_expr_seq*)_gather_116_rule(p)) // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+
&&
- (b = _tmp_116_rule(p), !p->error_indicator) // [',' kwargs]
+ (b = _tmp_118_rule(p), !p->error_indicator) // [',' kwargs]
)
{
D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]"));
@@ -15630,11 +15820,11 @@ kwargs_rule(Parser *p)
asdl_seq * a;
asdl_seq * b;
if (
- (a = _gather_117_rule(p)) // ','.kwarg_or_starred+
+ (a = _gather_119_rule(p)) // ','.kwarg_or_starred+
&&
(_literal = _PyPegen_expect_token(p, 12)) // token=','
&&
- (b = _gather_119_rule(p)) // ','.kwarg_or_double_starred+
+ (b = _gather_121_rule(p)) // ','.kwarg_or_double_starred+
)
{
D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
@@ -15656,13 +15846,13 @@ kwargs_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
- asdl_seq * _gather_121_var;
+ asdl_seq * _gather_123_var;
if (
- (_gather_121_var = _gather_121_rule(p)) // ','.kwarg_or_starred+
+ (_gather_123_var = _gather_123_rule(p)) // ','.kwarg_or_starred+
)
{
D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
- _res = _gather_121_var;
+ _res = _gather_123_var;
goto done;
}
p->mark = _mark;
@@ -15675,13 +15865,13 @@ kwargs_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
- asdl_seq * _gather_123_var;
+ asdl_seq * _gather_125_var;
if (
- (_gather_123_var = _gather_123_rule(p)) // ','.kwarg_or_double_starred+
+ (_gather_125_var = _gather_125_rule(p)) // ','.kwarg_or_double_starred+
)
{
D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
- _res = _gather_123_var;
+ _res = _gather_125_var;
goto done;
}
p->mark = _mark;
@@ -16043,7 +16233,7 @@ star_targets_rule(Parser *p)
if (
(a = star_target_rule(p)) // star_target
&&
- (b = _loop0_125_rule(p)) // ((',' star_target))*
+ (b = _loop0_127_rule(p)) // ((',' star_target))*
&&
(_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
)
@@ -16097,7 +16287,7 @@ star_targets_list_seq_rule(Parser *p)
UNUSED(_opt_var); // Silence compiler warnings
asdl_expr_seq* a;
if (
- (a = (asdl_expr_seq*)_gather_126_rule(p)) // ','.star_target+
+ (a = (asdl_expr_seq*)_gather_128_rule(p)) // ','.star_target+
&&
(_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
)
@@ -16145,7 +16335,7 @@ star_targets_tuple_seq_rule(Parser *p)
if (
(a = star_target_rule(p)) // star_target
&&
- (b = _loop1_128_rule(p)) // ((',' star_target))+
+ (b = _loop1_130_rule(p)) // ((',' star_target))+
&&
(_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
)
@@ -16231,7 +16421,7 @@ star_target_rule(Parser *p)
if (
(_literal = _PyPegen_expect_token(p, 16)) // token='*'
&&
- (a = _tmp_129_rule(p)) // !'*' star_target
+ (a = _tmp_131_rule(p)) // !'*' star_target
)
{
D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
@@ -17138,7 +17328,7 @@ del_targets_rule(Parser *p)
UNUSED(_opt_var); // Silence compiler warnings
asdl_expr_seq* a;
if (
- (a = (asdl_expr_seq*)_gather_130_rule(p)) // ','.del_target+
+ (a = (asdl_expr_seq*)_gather_132_rule(p)) // ','.del_target+
&&
(_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
)
@@ -17490,7 +17680,7 @@ type_expressions_rule(Parser *p)
expr_ty b;
expr_ty c;
if (
- (a = _gather_132_rule(p)) // ','.expression+
+ (a = _gather_134_rule(p)) // ','.expression+
&&
(_literal = _PyPegen_expect_token(p, 12)) // token=','
&&
@@ -17529,7 +17719,7 @@ type_expressions_rule(Parser *p)
asdl_seq * a;
expr_ty b;
if (
- (a = _gather_134_rule(p)) // ','.expression+
+ (a = _gather_136_rule(p)) // ','.expression+
&&
(_literal = _PyPegen_expect_token(p, 12)) // token=','
&&
@@ -17562,7 +17752,7 @@ type_expressions_rule(Parser *p)
asdl_seq * a;
expr_ty b;
if (
- (a = _gather_136_rule(p)) // ','.expression+
+ (a = _gather_138_rule(p)) // ','.expression+
&&
(_literal = _PyPegen_expect_token(p, 12)) // token=','
&&
@@ -17682,7 +17872,7 @@ type_expressions_rule(Parser *p)
D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
asdl_expr_seq* a;
if (
- (a = (asdl_expr_seq*)_gather_138_rule(p)) // ','.expression+
+ (a = (asdl_expr_seq*)_gather_140_rule(p)) // ','.expression+
)
{
D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
@@ -17731,7 +17921,7 @@ func_type_comment_rule(Parser *p)
&&
(t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
&&
- _PyPegen_lookahead(1, _tmp_140_rule, p)
+ _PyPegen_lookahead(1, _tmp_142_rule, p)
)
{
D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
@@ -17856,7 +18046,7 @@ invalid_arguments_rule(Parser *p)
&&
(_literal = _PyPegen_expect_token(p, 12)) // token=','
&&
- (_opt_var = _tmp_141_rule(p), !p->error_indicator) // [args | expression for_if_clauses]
+ (_opt_var = _tmp_143_rule(p), !p->error_indicator) // [args | expression for_if_clauses]
)
{
D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
@@ -18024,7 +18214,7 @@ invalid_kwarg_rule(Parser *p)
Token* a;
Token * b;
if (
- (a = (Token*)_tmp_142_rule(p)) // 'True' | 'False' | 'None'
+ (a = (Token*)_tmp_144_rule(p)) // 'True' | 'False' | 'None'
&&
(b = _PyPegen_expect_token(p, 22)) // token='='
)
@@ -18084,7 +18274,7 @@ invalid_kwarg_rule(Parser *p)
expr_ty a;
Token * b;
if (
- _PyPegen_lookahead(0, _tmp_143_rule, p)
+ _PyPegen_lookahead(0, _tmp_145_rule, p)
&&
(a = expression_rule(p)) // expression
&&
@@ -18147,11 +18337,11 @@ expression_without_invalid_rule(Parser *p)
if (
(a = disjunction_rule(p)) // disjunction
&&
- (_keyword = _PyPegen_expect_token(p, 627)) // token='if'
+ (_keyword = _PyPegen_expect_token(p, 634)) // token='if'
&&
(b = disjunction_rule(p)) // disjunction
&&
- (_keyword_1 = _PyPegen_expect_token(p, 630)) // token='else'
+ (_keyword_1 = _PyPegen_expect_token(p, 637)) // token='else'
&&
(c = expression_rule(p)) // expression
)
@@ -18290,7 +18480,7 @@ invalid_expression_rule(Parser *p)
expr_ty a;
expr_ty b;
if (
- _PyPegen_lookahead(0, _tmp_144_rule, p)
+ _PyPegen_lookahead(0, _tmp_146_rule, p)
&&
(a = disjunction_rule(p)) // disjunction
&&
@@ -18322,11 +18512,11 @@ invalid_expression_rule(Parser *p)
if (
(a = disjunction_rule(p)) // disjunction
&&
- (_keyword = _PyPegen_expect_token(p, 627)) // token='if'
+ (_keyword = _PyPegen_expect_token(p, 634)) // token='if'
&&
(b = disjunction_rule(p)) // disjunction
&&
- _PyPegen_lookahead(0, _tmp_145_rule, p)
+ _PyPegen_lookahead(0, _tmp_147_rule, p)
)
{
D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')"));
@@ -18408,7 +18598,7 @@ invalid_named_expression_rule(Parser *p)
&&
(b = bitwise_or_rule(p)) // bitwise_or
&&
- _PyPegen_lookahead(0, _tmp_146_rule, p)
+ _PyPegen_lookahead(0, _tmp_148_rule, p)
)
{
D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
@@ -18434,7 +18624,7 @@ invalid_named_expression_rule(Parser *p)
Token * b;
expr_ty bitwise_or_var;
if (
- _PyPegen_lookahead(0, _tmp_147_rule, p)
+ _PyPegen_lookahead(0, _tmp_149_rule, p)
&&
(a = bitwise_or_rule(p)) // bitwise_or
&&
@@ -18442,7 +18632,7 @@ invalid_named_expression_rule(Parser *p)
&&
(bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
&&
- _PyPegen_lookahead(0, _tmp_148_rule, p)
+ _PyPegen_lookahead(0, _tmp_150_rule, p)
)
{
D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')"));
@@ -18519,7 +18709,7 @@ invalid_assignment_rule(Parser *p)
D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Token * _literal;
Token * _literal_1;
- asdl_seq * _loop0_149_var;
+ asdl_seq * _loop0_151_var;
expr_ty a;
expr_ty expression_var;
if (
@@ -18527,7 +18717,7 @@ invalid_assignment_rule(Parser *p)
&&
(_literal = _PyPegen_expect_token(p, 12)) // token=','
&&
- (_loop0_149_var = _loop0_149_rule(p)) // star_named_expressions*
+ (_loop0_151_var = _loop0_151_rule(p)) // star_named_expressions*
&&
(_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
&&
@@ -18584,10 +18774,10 @@ invalid_assignment_rule(Parser *p)
}
D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
Token * _literal;
- asdl_seq * _loop0_150_var;
+ asdl_seq * _loop0_152_var;
expr_ty a;
if (
- (_loop0_150_var = _loop0_150_rule(p)) // ((star_targets '='))*
+ (_loop0_152_var = _loop0_152_rule(p)) // ((star_targets '='))*
&&
(a = star_expressions_rule(p)) // star_expressions
&&
@@ -18614,10 +18804,10 @@ invalid_assignment_rule(Parser *p)
}
D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
Token * _literal;
- asdl_seq * _loop0_151_var;
+ asdl_seq * _loop0_153_var;
expr_ty a;
if (
- (_loop0_151_var = _loop0_151_rule(p)) // ((star_targets '='))*
+ (_loop0_153_var = _loop0_153_rule(p)) // ((star_targets '='))*
&&
(a = yield_expr_rule(p)) // yield_expr
&&
@@ -18643,7 +18833,7 @@ invalid_assignment_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
- void *_tmp_152_var;
+ void *_tmp_154_var;
expr_ty a;
AugOperator* augassign_var;
if (
@@ -18651,7 +18841,7 @@ invalid_assignment_rule(Parser *p)
&&
(augassign_var = augassign_rule(p)) // augassign
&&
- (_tmp_152_var = _tmp_152_rule(p)) // yield_expr | star_expressions
+ (_tmp_154_var = _tmp_154_rule(p)) // yield_expr | star_expressions
)
{
D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
@@ -18778,7 +18968,7 @@ invalid_del_stmt_rule(Parser *p)
Token * _keyword;
expr_ty a;
if (
- (_keyword = _PyPegen_expect_token(p, 600)) // token='del'
+ (_keyword = _PyPegen_expect_token(p, 603)) // token='del'
&&
(a = star_expressions_rule(p)) // star_expressions
)
@@ -18865,11 +19055,11 @@ invalid_comprehension_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
- void *_tmp_153_var;
+ void *_tmp_155_var;
expr_ty a;
asdl_comprehension_seq* for_if_clauses_var;
if (
- (_tmp_153_var = _tmp_153_rule(p)) // '[' | '(' | '{'
+ (_tmp_155_var = _tmp_155_rule(p)) // '[' | '(' | '{'
&&
(a = starred_expression_rule(p)) // starred_expression
&&
@@ -18896,12 +19086,12 @@ invalid_comprehension_rule(Parser *p)
}
D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
Token * _literal;
- void *_tmp_154_var;
+ void *_tmp_156_var;
expr_ty a;
asdl_expr_seq* b;
asdl_comprehension_seq* for_if_clauses_var;
if (
- (_tmp_154_var = _tmp_154_rule(p)) // '[' | '{'
+ (_tmp_156_var = _tmp_156_rule(p)) // '[' | '{'
&&
(a = star_named_expression_rule(p)) // star_named_expression
&&
@@ -18931,12 +19121,12 @@ invalid_comprehension_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
- void *_tmp_155_var;
+ void *_tmp_157_var;
expr_ty a;
Token * b;
asdl_comprehension_seq* for_if_clauses_var;
if (
- (_tmp_155_var = _tmp_155_rule(p)) // '[' | '{'
+ (_tmp_157_var = _tmp_157_rule(p)) // '[' | '{'
&&
(a = star_named_expression_rule(p)) // star_named_expression
&&
@@ -19036,11 +19226,11 @@ invalid_parameters_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
- asdl_seq * _loop0_156_var;
+ asdl_seq * _loop0_158_var;
arg_ty a;
void *invalid_parameters_helper_var;
if (
- (_loop0_156_var = _loop0_156_rule(p)) // param_no_default*
+ (_loop0_158_var = _loop0_158_rule(p)) // param_no_default*
&&
(invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
&&
@@ -19066,18 +19256,18 @@ invalid_parameters_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* '(' param_no_default+ ','? ')'"));
- asdl_seq * _loop0_157_var;
- asdl_seq * _loop1_158_var;
+ asdl_seq * _loop0_159_var;
+ asdl_seq * _loop1_160_var;
void *_opt_var;
UNUSED(_opt_var); // Silence compiler warnings
Token * a;
Token * b;
if (
- (_loop0_157_var = _loop0_157_rule(p)) // param_no_default*
+ (_loop0_159_var = _loop0_159_rule(p)) // param_no_default*
&&
(a = _PyPegen_expect_token(p, 7)) // token='('
&&
- (_loop1_158_var = _loop1_158_rule(p)) // param_no_default+
+ (_loop1_160_var = _loop1_160_rule(p)) // param_no_default+
&&
(_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
&&
@@ -19144,13 +19334,13 @@ invalid_parameters_helper_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
- asdl_seq * _loop1_159_var;
+ asdl_seq * _loop1_161_var;
if (
- (_loop1_159_var = _loop1_159_rule(p)) // param_with_default+
+ (_loop1_161_var = _loop1_161_rule(p)) // param_with_default+
)
{
D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
- _res = _loop1_159_var;
+ _res = _loop1_161_var;
goto done;
}
p->mark = _mark;
@@ -19182,11 +19372,11 @@ invalid_lambda_parameters_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
- asdl_seq * _loop0_160_var;
+ asdl_seq * _loop0_162_var;
arg_ty a;
void *invalid_lambda_parameters_helper_var;
if (
- (_loop0_160_var = _loop0_160_rule(p)) // lambda_param_no_default*
+ (_loop0_162_var = _loop0_162_rule(p)) // lambda_param_no_default*
&&
(invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
&&
@@ -19212,18 +19402,18 @@ invalid_lambda_parameters_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* '(' ','.lambda_param+ ','? ')'"));
- asdl_seq * _gather_162_var;
- asdl_seq * _loop0_161_var;
+ asdl_seq * _gather_164_var;
+ asdl_seq * _loop0_163_var;
void *_opt_var;
UNUSED(_opt_var); // Silence compiler warnings
Token * a;
Token * b;
if (
- (_loop0_161_var = _loop0_161_rule(p)) // lambda_param_no_default*
+ (_loop0_163_var = _loop0_163_rule(p)) // lambda_param_no_default*
&&
(a = _PyPegen_expect_token(p, 7)) // token='('
&&
- (_gather_162_var = _gather_162_rule(p)) // ','.lambda_param+
+ (_gather_164_var = _gather_164_rule(p)) // ','.lambda_param+
&&
(_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
&&
@@ -19292,13 +19482,13 @@ invalid_lambda_parameters_helper_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
- asdl_seq * _loop1_164_var;
+ asdl_seq * _loop1_166_var;
if (
- (_loop1_164_var = _loop1_164_rule(p)) // lambda_param_with_default+
+ (_loop1_166_var = _loop1_166_rule(p)) // lambda_param_with_default+
)
{
D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
- _res = _loop1_164_var;
+ _res = _loop1_166_var;
goto done;
}
p->mark = _mark;
@@ -19328,12 +19518,12 @@ invalid_star_etc_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
- void *_tmp_165_var;
+ void *_tmp_167_var;
Token * a;
if (
(a = _PyPegen_expect_token(p, 16)) // token='*'
&&
- (_tmp_165_var = _tmp_165_rule(p)) // ')' | ',' (')' | '**')
+ (_tmp_167_var = _tmp_167_rule(p)) // ')' | ',' (')' | '**')
)
{
D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
@@ -19403,11 +19593,11 @@ invalid_lambda_star_etc_rule(Parser *p)
}
D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
Token * _literal;
- void *_tmp_166_var;
+ void *_tmp_168_var;
if (
(_literal = _PyPegen_expect_token(p, 16)) // token='*'
&&
- (_tmp_166_var = _tmp_166_rule(p)) // ':' | ',' (':' | '**')
+ (_tmp_168_var = _tmp_168_rule(p)) // ':' | ',' (':' | '**')
)
{
D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
@@ -19505,11 +19695,11 @@ invalid_with_item_rule(Parser *p)
if (
(expression_var = expression_rule(p)) // expression
&&
- (_keyword = _PyPegen_expect_token(p, 625)) // token='as'
+ (_keyword = _PyPegen_expect_token(p, 632)) // token='as'
&&
(a = expression_rule(p)) // expression
&&
- _PyPegen_lookahead(1, _tmp_167_rule, p)
+ _PyPegen_lookahead(1, _tmp_169_rule, p)
)
{
D(fprintf(stderr, "%*c+ invalid_with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
@@ -19555,7 +19745,7 @@ invalid_for_target_rule(Parser *p)
if (
(_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
&&
- (_keyword = _PyPegen_expect_token(p, 633)) // token='for'
+ (_keyword = _PyPegen_expect_token(p, 640)) // token='for'
&&
(a = star_expressions_rule(p)) // star_expressions
)
@@ -19725,7 +19915,7 @@ invalid_with_stmt_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
- asdl_seq * _gather_168_var;
+ asdl_seq * _gather_170_var;
Token * _keyword;
Token * _literal;
void *_opt_var;
@@ -19733,15 +19923,15 @@ invalid_with_stmt_rule(Parser *p)
if (
(_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
&&
- (_keyword = _PyPegen_expect_token(p, 609)) // token='with'
+ (_keyword = _PyPegen_expect_token(p, 612)) // token='with'
&&
- (_gather_168_var = _gather_168_rule(p)) // ','.(expression ['as' star_target])+
+ (_gather_170_var = _gather_170_rule(p)) // ','.(expression ['as' star_target])+
&&
(_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
)
{
D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
- _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_168_var, _literal);
+ _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_170_var, _literal);
goto done;
}
p->mark = _mark;
@@ -19754,7 +19944,7 @@ invalid_with_stmt_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
- asdl_seq * _gather_170_var;
+ asdl_seq * _gather_172_var;
Token * _keyword;
Token * _literal;
Token * _literal_1;
@@ -19766,11 +19956,11 @@ invalid_with_stmt_rule(Parser *p)
if (
(_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
&&
- (_keyword = _PyPegen_expect_token(p, 609)) // token='with'
+ (_keyword = _PyPegen_expect_token(p, 612)) // token='with'
&&
(_literal = _PyPegen_expect_token(p, 7)) // token='('
&&
- (_gather_170_var = _gather_170_rule(p)) // ','.(expressions ['as' star_target])+
+ (_gather_172_var = _gather_172_rule(p)) // ','.(expressions ['as' star_target])+
&&
(_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
&&
@@ -19780,7 +19970,7 @@ invalid_with_stmt_rule(Parser *p)
)
{
D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
- _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_170_var, _opt_var_1, _literal_1, _literal_2);
+ _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_172_var, _opt_var_1, _literal_1, _literal_2);
goto done;
}
p->mark = _mark;
@@ -19812,7 +20002,7 @@ invalid_with_stmt_indent_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
- asdl_seq * _gather_172_var;
+ asdl_seq * _gather_174_var;
Token * _literal;
void *_opt_var;
UNUSED(_opt_var); // Silence compiler warnings
@@ -19821,9 +20011,9 @@ invalid_with_stmt_indent_rule(Parser *p)
if (
(_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
&&
- (a = _PyPegen_expect_token(p, 609)) // token='with'
+ (a = _PyPegen_expect_token(p, 612)) // token='with'
&&
- (_gather_172_var = _gather_172_rule(p)) // ','.(expression ['as' star_target])+
+ (_gather_174_var = _gather_174_rule(p)) // ','.(expression ['as' star_target])+
&&
(_literal = _PyPegen_expect_token(p, 11)) // token=':'
&&
@@ -19851,7 +20041,7 @@ invalid_with_stmt_indent_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
- asdl_seq * _gather_174_var;
+ asdl_seq * _gather_176_var;
Token * _literal;
Token * _literal_1;
Token * _literal_2;
@@ -19864,11 +20054,11 @@ invalid_with_stmt_indent_rule(Parser *p)
if (
(_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
&&
- (a = _PyPegen_expect_token(p, 609)) // token='with'
+ (a = _PyPegen_expect_token(p, 612)) // token='with'
&&
(_literal = _PyPegen_expect_token(p, 7)) // token='('
&&
- (_gather_174_var = _gather_174_rule(p)) // ','.(expressions ['as' star_target])+
+ (_gather_176_var = _gather_176_rule(p)) // ','.(expressions ['as' star_target])+
&&
(_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
&&
@@ -19900,7 +20090,10 @@ invalid_with_stmt_indent_rule(Parser *p)
return _res;
}
-// invalid_try_stmt: 'try' ':' NEWLINE !INDENT | 'try' ':' block !('except' | 'finally')
+// invalid_try_stmt:
+// | 'try' ':' NEWLINE !INDENT
+// | 'try' ':' block !('except' | 'finally')
+// | 'try' ':' block* ((except_block+ except_star_block) | (except_star_block+ except_block)) block*
static void *
invalid_try_stmt_rule(Parser *p)
{
@@ -19921,7 +20114,7 @@ invalid_try_stmt_rule(Parser *p)
Token * a;
Token * newline_var;
if (
- (a = _PyPegen_expect_token(p, 612)) // token='try'
+ (a = _PyPegen_expect_token(p, 618)) // token='try'
&&
(_literal = _PyPegen_expect_token(p, 11)) // token=':'
&&
@@ -19953,13 +20146,13 @@ invalid_try_stmt_rule(Parser *p)
Token * _literal;
asdl_stmt_seq* block_var;
if (
- (_keyword = _PyPegen_expect_token(p, 612)) // token='try'
+ (_keyword = _PyPegen_expect_token(p, 618)) // token='try'
&&
(_literal = _PyPegen_expect_token(p, 11)) // token=':'
&&
(block_var = block_rule(p)) // block
&&
- _PyPegen_lookahead(0, _tmp_176_rule, p)
+ _PyPegen_lookahead(0, _tmp_178_rule, p)
)
{
D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
@@ -19975,6 +20168,42 @@ invalid_try_stmt_rule(Parser *p)
D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
}
+ { // 'try' ':' block* ((except_block+ except_star_block) | (except_star_block+ except_block)) block*
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block* ((except_block+ except_star_block) | (except_star_block+ except_block)) block*"));
+ Token * _keyword;
+ Token * _literal;
+ asdl_seq * _loop0_179_var;
+ asdl_seq * _loop0_181_var;
+ void *_tmp_180_var;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 618)) // token='try'
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (_loop0_179_var = _loop0_179_rule(p)) // block*
+ &&
+ (_tmp_180_var = _tmp_180_rule(p)) // (except_block+ except_star_block) | (except_star_block+ except_block)
+ &&
+ (_loop0_181_var = _loop0_181_rule(p)) // block*
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block* ((except_block+ except_star_block) | (except_star_block+ except_block)) block*"));
+ _res = RAISE_SYNTAX_ERROR ( "cannot have both 'except' and 'except*' on the same 'try'" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ D(p->level--);
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block* ((except_block+ except_star_block) | (except_star_block+ except_block)) block*"));
+ }
_res = NULL;
done:
D(p->level--);
@@ -19982,9 +20211,10 @@ invalid_try_stmt_rule(Parser *p)
}
// invalid_except_stmt:
-// | 'except' expression ',' expressions ['as' NAME] ':'
-// | 'except' expression ['as' NAME] NEWLINE
+// | 'except' '*'? expression ',' expressions ['as' NAME] ':'
+// | 'except' '*'? expression ['as' NAME] NEWLINE
// | 'except' NEWLINE
+// | 'except' '*' (NEWLINE | ':')
static void *
invalid_except_stmt_rule(Parser *p)
{
@@ -19995,21 +20225,25 @@ invalid_except_stmt_rule(Parser *p)
}
void * _res = NULL;
int _mark = p->mark;
- { // 'except' expression ',' expressions ['as' NAME] ':'
+ { // 'except' '*'? expression ',' expressions ['as' NAME] ':'
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
+ D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*'? expression ',' expressions ['as' NAME] ':'"));
Token * _keyword;
Token * _literal;
Token * _literal_1;
void *_opt_var;
UNUSED(_opt_var); // Silence compiler warnings
+ void *_opt_var_1;
+ UNUSED(_opt_var_1); // Silence compiler warnings
expr_ty a;
expr_ty expressions_var;
if (
- (_keyword = _PyPegen_expect_token(p, 623)) // token='except'
+ (_keyword = _PyPegen_expect_token(p, 629)) // token='except'
+ &&
+ (_opt_var = _PyPegen_expect_token(p, 16), !p->error_indicator) // '*'?
&&
(a = expression_rule(p)) // expression
&&
@@ -20017,12 +20251,12 @@ invalid_except_stmt_rule(Parser *p)
&&
(expressions_var = expressions_rule(p)) // expressions
&&
- (_opt_var = _tmp_177_rule(p), !p->error_indicator) // ['as' NAME]
+ (_opt_var_1 = _tmp_182_rule(p), !p->error_indicator) // ['as' NAME]
&&
(_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
)
{
- D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
+ D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*'? expression ',' expressions ['as' NAME] ':'"));
_res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "multiple exception types must be parenthesized" );
if (_res == NULL && PyErr_Occurred()) {
p->error_indicator = 1;
@@ -20033,30 +20267,34 @@ invalid_except_stmt_rule(Parser *p)
}
p->mark = _mark;
D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*'? expression ',' expressions ['as' NAME] ':'"));
}
- { // 'except' expression ['as' NAME] NEWLINE
+ { // 'except' '*'? expression ['as' NAME] NEWLINE
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
+ D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*'? expression ['as' NAME] NEWLINE"));
void *_opt_var;
UNUSED(_opt_var); // Silence compiler warnings
+ void *_opt_var_1;
+ UNUSED(_opt_var_1); // Silence compiler warnings
Token * a;
expr_ty expression_var;
Token * newline_var;
if (
- (a = _PyPegen_expect_token(p, 623)) // token='except'
+ (a = _PyPegen_expect_token(p, 629)) // token='except'
+ &&
+ (_opt_var = _PyPegen_expect_token(p, 16), !p->error_indicator) // '*'?
&&
(expression_var = expression_rule(p)) // expression
&&
- (_opt_var = _tmp_178_rule(p), !p->error_indicator) // ['as' NAME]
+ (_opt_var_1 = _tmp_183_rule(p), !p->error_indicator) // ['as' NAME]
&&
(newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
)
{
- D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
+ D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*'? expression ['as' NAME] NEWLINE"));
_res = RAISE_SYNTAX_ERROR ( "expected ':'" );
if (_res == NULL && PyErr_Occurred()) {
p->error_indicator = 1;
@@ -20067,7 +20305,7 @@ invalid_except_stmt_rule(Parser *p)
}
p->mark = _mark;
D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*'? expression ['as' NAME] NEWLINE"));
}
{ // 'except' NEWLINE
if (p->error_indicator) {
@@ -20078,7 +20316,7 @@ invalid_except_stmt_rule(Parser *p)
Token * a;
Token * newline_var;
if (
- (a = _PyPegen_expect_token(p, 623)) // token='except'
+ (a = _PyPegen_expect_token(p, 629)) // token='except'
&&
(newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
)
@@ -20096,6 +20334,36 @@ invalid_except_stmt_rule(Parser *p)
D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' NEWLINE"));
}
+ { // 'except' '*' (NEWLINE | ':')
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*' (NEWLINE | ':')"));
+ Token * _literal;
+ void *_tmp_184_var;
+ Token * a;
+ if (
+ (a = _PyPegen_expect_token(p, 629)) // token='except'
+ &&
+ (_literal = _PyPegen_expect_token(p, 16)) // token='*'
+ &&
+ (_tmp_184_var = _tmp_184_rule(p)) // NEWLINE | ':'
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*' (NEWLINE | ':')"));
+ _res = RAISE_SYNTAX_ERROR ( "expected one or more exception types" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ D(p->level--);
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' (NEWLINE | ':')"));
+ }
_res = NULL;
done:
D(p->level--);
@@ -20123,7 +20391,7 @@ invalid_finally_stmt_rule(Parser *p)
Token * a;
Token * newline_var;
if (
- (a = _PyPegen_expect_token(p, 620)) // token='finally'
+ (a = _PyPegen_expect_token(p, 625)) // token='finally'
&&
(_literal = _PyPegen_expect_token(p, 11)) // token=':'
&&
@@ -20177,11 +20445,11 @@ invalid_except_stmt_indent_rule(Parser *p)
expr_ty expression_var;
Token * newline_var;
if (
- (a = _PyPegen_expect_token(p, 623)) // token='except'
+ (a = _PyPegen_expect_token(p, 629)) // token='except'
&&
(expression_var = expression_rule(p)) // expression
&&
- (_opt_var = _tmp_179_rule(p), !p->error_indicator) // ['as' NAME]
+ (_opt_var = _tmp_185_rule(p), !p->error_indicator) // ['as' NAME]
&&
(_literal = _PyPegen_expect_token(p, 11)) // token=':'
&&
@@ -20213,7 +20481,7 @@ invalid_except_stmt_indent_rule(Parser *p)
Token * a;
Token * newline_var;
if (
- (a = _PyPegen_expect_token(p, 623)) // token='except'
+ (a = _PyPegen_expect_token(p, 629)) // token='except'
&&
(_literal = _PyPegen_expect_token(p, 11)) // token=':'
&&
@@ -20241,6 +20509,66 @@ invalid_except_stmt_indent_rule(Parser *p)
return _res;
}
+// invalid_except_star_stmt_indent:
+// | 'except' '*' expression ['as' NAME] ':' NEWLINE !INDENT
+static void *
+invalid_except_star_stmt_indent_rule(Parser *p)
+{
+ D(p->level++);
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // 'except' '*' expression ['as' NAME] ':' NEWLINE !INDENT
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_except_star_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*' expression ['as' NAME] ':' NEWLINE !INDENT"));
+ Token * _literal;
+ Token * _literal_1;
+ void *_opt_var;
+ UNUSED(_opt_var); // Silence compiler warnings
+ Token * a;
+ expr_ty expression_var;
+ Token * newline_var;
+ if (
+ (a = _PyPegen_expect_token(p, 629)) // token='except'
+ &&
+ (_literal = _PyPegen_expect_token(p, 16)) // token='*'
+ &&
+ (expression_var = expression_rule(p)) // expression
+ &&
+ (_opt_var = _tmp_186_rule(p), !p->error_indicator) // ['as' NAME]
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
+ &&
+ _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_except_star_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*' expression ['as' NAME] ':' NEWLINE !INDENT"));
+ _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except*' statement on line %d" , a -> lineno );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ D(p->level--);
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_except_star_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' expression ['as' NAME] ':' NEWLINE !INDENT"));
+ }
+ _res = NULL;
+ done:
+ D(p->level--);
+ return _res;
+}
+
// invalid_match_stmt:
// | "match" subject_expr !':'
// | "match" subject_expr ':' NEWLINE !INDENT
@@ -20438,7 +20766,7 @@ invalid_as_pattern_rule(Parser *p)
if (
(or_pattern_var = or_pattern_rule(p)) // or_pattern
&&
- (_keyword = _PyPegen_expect_token(p, 625)) // token='as'
+ (_keyword = _PyPegen_expect_token(p, 632)) // token='as'
&&
(a = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
)
@@ -20468,7 +20796,7 @@ invalid_as_pattern_rule(Parser *p)
if (
(or_pattern_var = or_pattern_rule(p)) // or_pattern
&&
- (_keyword = _PyPegen_expect_token(p, 625)) // token='as'
+ (_keyword = _PyPegen_expect_token(p, 632)) // token='as'
&&
_PyPegen_lookahead_with_name(0, _PyPegen_name_token, p)
&&
@@ -20565,7 +20893,7 @@ invalid_class_argument_pattern_rule(Parser *p)
asdl_pattern_seq* a;
asdl_seq* keyword_patterns_var;
if (
- (_opt_var = _tmp_180_rule(p), !p->error_indicator) // [positional_patterns ',']
+ (_opt_var = _tmp_187_rule(p), !p->error_indicator) // [positional_patterns ',']
&&
(keyword_patterns_var = keyword_patterns_rule(p)) // keyword_patterns
&&
@@ -20616,7 +20944,7 @@ invalid_if_stmt_rule(Parser *p)
expr_ty named_expression_var;
Token * newline_var;
if (
- (_keyword = _PyPegen_expect_token(p, 627)) // token='if'
+ (_keyword = _PyPegen_expect_token(p, 634)) // token='if'
&&
(named_expression_var = named_expression_rule(p)) // named_expression
&&
@@ -20647,7 +20975,7 @@ invalid_if_stmt_rule(Parser *p)
expr_ty a_1;
Token * newline_var;
if (
- (a = _PyPegen_expect_token(p, 627)) // token='if'
+ (a = _PyPegen_expect_token(p, 634)) // token='if'
&&
(a_1 = named_expression_rule(p)) // named_expression
&&
@@ -20700,7 +21028,7 @@ invalid_elif_stmt_rule(Parser *p)
expr_ty named_expression_var;
Token * newline_var;
if (
- (_keyword = _PyPegen_expect_token(p, 629)) // token='elif'
+ (_keyword = _PyPegen_expect_token(p, 636)) // token='elif'
&&
(named_expression_var = named_expression_rule(p)) // named_expression
&&
@@ -20731,7 +21059,7 @@ invalid_elif_stmt_rule(Parser *p)
expr_ty named_expression_var;
Token * newline_var;
if (
- (a = _PyPegen_expect_token(p, 629)) // token='elif'
+ (a = _PyPegen_expect_token(p, 636)) // token='elif'
&&
(named_expression_var = named_expression_rule(p)) // named_expression
&&
@@ -20782,7 +21110,7 @@ invalid_else_stmt_rule(Parser *p)
Token * a;
Token * newline_var;
if (
- (a = _PyPegen_expect_token(p, 630)) // token='else'
+ (a = _PyPegen_expect_token(p, 637)) // token='else'
&&
(_literal = _PyPegen_expect_token(p, 11)) // token=':'
&&
@@ -20833,7 +21161,7 @@ invalid_while_stmt_rule(Parser *p)
expr_ty named_expression_var;
Token * newline_var;
if (
- (_keyword = _PyPegen_expect_token(p, 632)) // token='while'
+ (_keyword = _PyPegen_expect_token(p, 639)) // token='while'
&&
(named_expression_var = named_expression_rule(p)) // named_expression
&&
@@ -20864,7 +21192,7 @@ invalid_while_stmt_rule(Parser *p)
expr_ty named_expression_var;
Token * newline_var;
if (
- (a = _PyPegen_expect_token(p, 632)) // token='while'
+ (a = _PyPegen_expect_token(p, 639)) // token='while'
&&
(named_expression_var = named_expression_rule(p)) // named_expression
&&
@@ -20922,11 +21250,11 @@ invalid_for_stmt_rule(Parser *p)
if (
(_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
&&
- (a = _PyPegen_expect_token(p, 633)) // token='for'
+ (a = _PyPegen_expect_token(p, 640)) // token='for'
&&
(star_targets_var = star_targets_rule(p)) // star_targets
&&
- (_keyword = _PyPegen_expect_token(p, 634)) // token='in'
+ (_keyword = _PyPegen_expect_token(p, 641)) // token='in'
&&
(star_expressions_var = star_expressions_rule(p)) // star_expressions
&&
@@ -20989,7 +21317,7 @@ invalid_def_raw_rule(Parser *p)
if (
(_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
&&
- (a = _PyPegen_expect_token(p, 635)) // token='def'
+ (a = _PyPegen_expect_token(p, 642)) // token='def'
&&
(name_var = _PyPegen_name_token(p)) // NAME
&&
@@ -20999,7 +21327,7 @@ invalid_def_raw_rule(Parser *p)
&&
(_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
&&
- (_opt_var_2 = _tmp_181_rule(p), !p->error_indicator) // ['->' expression]
+ (_opt_var_2 = _tmp_188_rule(p), !p->error_indicator) // ['->' expression]
&&
(_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
&&
@@ -21051,11 +21379,11 @@ invalid_class_def_raw_rule(Parser *p)
expr_ty name_var;
Token * newline_var;
if (
- (a = _PyPegen_expect_token(p, 636)) // token='class'
+ (a = _PyPegen_expect_token(p, 643)) // token='class'
&&
(name_var = _PyPegen_name_token(p)) // NAME
&&
- (_opt_var = _tmp_182_rule(p), !p->error_indicator) // ['(' arguments? ')']
+ (_opt_var = _tmp_189_rule(p), !p->error_indicator) // ['(' arguments? ')']
&&
(_literal = _PyPegen_expect_token(p, 11)) // token=':'
&&
@@ -21103,11 +21431,11 @@ invalid_double_starred_kvpairs_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
- asdl_seq * _gather_183_var;
+ asdl_seq * _gather_190_var;
Token * _literal;
void *invalid_kvpair_var;
if (
- (_gather_183_var = _gather_183_rule(p)) // ','.double_starred_kvpair+
+ (_gather_190_var = _gather_190_rule(p)) // ','.double_starred_kvpair+
&&
(_literal = _PyPegen_expect_token(p, 12)) // token=','
&&
@@ -21115,7 +21443,7 @@ invalid_double_starred_kvpairs_rule(Parser *p)
)
{
D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
- _res = _PyPegen_dummy_name(p, _gather_183_var, _literal, invalid_kvpair_var);
+ _res = _PyPegen_dummy_name(p, _gather_190_var, _literal, invalid_kvpair_var);
goto done;
}
p->mark = _mark;
@@ -21168,7 +21496,7 @@ invalid_double_starred_kvpairs_rule(Parser *p)
&&
(a = _PyPegen_expect_token(p, 11)) // token=':'
&&
- _PyPegen_lookahead(1, _tmp_185_rule, p)
+ _PyPegen_lookahead(1, _tmp_192_rule, p)
)
{
D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
@@ -21648,7 +21976,7 @@ _tmp_6_rule(Parser *p)
D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 569)) // token='from'
+ (_keyword = _PyPegen_expect_token(p, 572)) // token='from'
)
{
D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
@@ -21684,7 +22012,7 @@ _tmp_7_rule(Parser *p)
D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 635)) // token='def'
+ (_keyword = _PyPegen_expect_token(p, 642)) // token='def'
)
{
D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
@@ -21758,7 +22086,7 @@ _tmp_8_rule(Parser *p)
D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 636)) // token='class'
+ (_keyword = _PyPegen_expect_token(p, 643)) // token='class'
)
{
D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
@@ -21813,7 +22141,7 @@ _tmp_9_rule(Parser *p)
D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 609)) // token='with'
+ (_keyword = _PyPegen_expect_token(p, 612)) // token='with'
)
{
D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
@@ -21868,7 +22196,7 @@ _tmp_10_rule(Parser *p)
D(fprintf(stderr, "%*c> _tmp_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 633)) // token='for'
+ (_keyword = _PyPegen_expect_token(p, 640)) // token='for'
)
{
D(fprintf(stderr, "%*c+ _tmp_10[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
@@ -22085,12 +22413,12 @@ _loop1_14_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> _loop1_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
- void *_tmp_186_var;
+ void *_tmp_193_var;
while (
- (_tmp_186_var = _tmp_186_rule(p)) // star_targets '='
+ (_tmp_193_var = _tmp_193_rule(p)) // star_targets '='
)
{
- _res = _tmp_186_var;
+ _res = _tmp_193_var;
if (_n == _children_capacity) {
_children_capacity *= 2;
void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -22259,7 +22587,7 @@ _tmp_17_rule(Parser *p)
Token * _keyword;
expr_ty z;
if (
- (_keyword = _PyPegen_expect_token(p, 569)) // token='from'
+ (_keyword = _PyPegen_expect_token(p, 572)) // token='from'
&&
(z = expression_rule(p)) // expression
)
@@ -22637,12 +22965,12 @@ _loop0_24_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> _loop0_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
- void *_tmp_187_var;
+ void *_tmp_194_var;
while (
- (_tmp_187_var = _tmp_187_rule(p)) // '.' | '...'
+ (_tmp_194_var = _tmp_194_rule(p)) // '.' | '...'
)
{
- _res = _tmp_187_var;
+ _res = _tmp_194_var;
if (_n == _children_capacity) {
_children_capacity *= 2;
void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -22703,12 +23031,12 @@ _loop1_25_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> _loop1_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
- void *_tmp_188_var;
+ void *_tmp_195_var;
while (
- (_tmp_188_var = _tmp_188_rule(p)) // '.' | '...'
+ (_tmp_195_var = _tmp_195_rule(p)) // '.' | '...'
)
{
- _res = _tmp_188_var;
+ _res = _tmp_195_var;
if (_n == _children_capacity) {
_children_capacity *= 2;
void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -22881,7 +23209,7 @@ _tmp_28_rule(Parser *p)
Token * _keyword;
expr_ty z;
if (
- (_keyword = _PyPegen_expect_token(p, 625)) // token='as'
+ (_keyword = _PyPegen_expect_token(p, 632)) // token='as'
&&
(z = _PyPegen_name_token(p)) // NAME
)
@@ -23039,7 +23367,7 @@ _tmp_31_rule(Parser *p)
Token * _keyword;
expr_ty z;
if (
- (_keyword = _PyPegen_expect_token(p, 625)) // token='as'
+ (_keyword = _PyPegen_expect_token(p, 632)) // token='as'
&&
(z = _PyPegen_name_token(p)) // NAME
)
@@ -23090,12 +23418,12 @@ _loop1_32_rule(Parser *p)
return NULL;
}
D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
- void *_tmp_189_var;
+ void *_tmp_196_var;
while (
- (_tmp_189_var = _tmp_189_rule(p)) // '@' named_expression NEWLINE
+ (_tmp_196_var = _tmp_196_rule(p)) // '@' named_expression NEWLINE
)
{
- _res = _tmp_189_var;
+ _res = _tmp_196_var;
if (_n == _children_capacity) {
_children_capacity *= 2;
void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -24829,9 +25157,80 @@ _loop1_59_rule(Parser *p)
return _seq;
}
-// _tmp_60: 'as' NAME
+// _loop1_60: except_star_block
+static asdl_seq *
+_loop1_60_rule(Parser *p)
+{
+ D(p->level++);
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ D(p->level--);
+ return NULL;
+ }
+ Py_ssize_t _children_capacity = 1;
+ Py_ssize_t _n = 0;
+ { // except_star_block
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block"));
+ excepthandler_ty except_star_block_var;
+ while (
+ (except_star_block_var = except_star_block_rule(p)) // except_star_block
+ )
+ {
+ _res = except_star_block_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ D(p->level--);
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_star_block"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ D(p->level--);
+ return NULL;
+ }
+ asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ D(p->level--);
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_60_type, _seq);
+ D(p->level--);
+ return _seq;
+}
+
+// _tmp_61: 'as' NAME
static void *
-_tmp_60_rule(Parser *p)
+_tmp_61_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -24845,16 +25244,16 @@ _tmp_60_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+ D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Token * _keyword;
expr_ty z;
if (
- (_keyword = _PyPegen_expect_token(p, 625)) // token='as'
+ (_keyword = _PyPegen_expect_token(p, 632)) // token='as'
&&
(z = _PyPegen_name_token(p)) // NAME
)
{
- D(fprintf(stderr, "%*c+ _tmp_60[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+ D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
_res = z;
if (_res == NULL && PyErr_Occurred()) {
p->error_indicator = 1;
@@ -24864,7 +25263,7 @@ _tmp_60_rule(Parser *p)
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_60[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
}
_res = NULL;
@@ -24873,9 +25272,53 @@ _tmp_60_rule(Parser *p)
return _res;
}
-// _loop1_61: case_block
+// _tmp_62: 'as' NAME
+static void *
+_tmp_62_rule(Parser *p)
+{
+ D(p->level++);
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // 'as' NAME
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+ Token * _keyword;
+ expr_ty z;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 632)) // token='as'
+ &&
+ (z = _PyPegen_name_token(p)) // NAME
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+ _res = z;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ D(p->level--);
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_62[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
+ }
+ _res = NULL;
+ done:
+ D(p->level--);
+ return _res;
+}
+
+// _loop1_63: case_block
static asdl_seq *
-_loop1_61_rule(Parser *p)
+_loop1_63_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -24899,7 +25342,7 @@ _loop1_61_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop1_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
+ D(fprintf(stderr, "%*c> _loop1_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
match_case_ty case_block_var;
while (
(case_block_var = case_block_rule(p)) // case_block
@@ -24921,7 +25364,7 @@ _loop1_61_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop1_63[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
}
if (_n == 0 || p->error_indicator) {
@@ -24939,14 +25382,14 @@ _loop1_61_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_61_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_63_type, _seq);
D(p->level--);
return _seq;
}
-// _loop0_63: '|' closed_pattern
+// _loop0_65: '|' closed_pattern
static asdl_seq *
-_loop0_63_rule(Parser *p)
+_loop0_65_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -24970,7 +25413,7 @@ _loop0_63_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
+ D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
Token * _literal;
pattern_ty elem;
while (
@@ -25001,7 +25444,7 @@ _loop0_63_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -25014,14 +25457,14 @@ _loop0_63_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_62: closed_pattern _loop0_63
+// _gather_64: closed_pattern _loop0_65
static asdl_seq *
-_gather_62_rule(Parser *p)
+_gather_64_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -25030,27 +25473,27 @@ _gather_62_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // closed_pattern _loop0_63
+ { // closed_pattern _loop0_65
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_63"));
+ D(fprintf(stderr, "%*c> _gather_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_65"));
pattern_ty elem;
asdl_seq * seq;
if (
(elem = closed_pattern_rule(p)) // closed_pattern
&&
- (seq = _loop0_63_rule(p)) // _loop0_63
+ (seq = _loop0_65_rule(p)) // _loop0_65
)
{
- D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_63"));
+ D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_65"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_63"));
+ D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_65"));
}
_res = NULL;
done:
@@ -25058,9 +25501,9 @@ _gather_62_rule(Parser *p)
return _res;
}
-// _tmp_64: '+' | '-'
+// _tmp_66: '+' | '-'
static void *
-_tmp_64_rule(Parser *p)
+_tmp_66_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -25074,18 +25517,18 @@ _tmp_64_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
+ D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 14)) // token='+'
)
{
- D(fprintf(stderr, "%*c+ _tmp_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
+ D(fprintf(stderr, "%*c+ _tmp_66[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_64[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
}
{ // '-'
@@ -25093,18 +25536,18 @@ _tmp_64_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
+ D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 15)) // token='-'
)
{
- D(fprintf(stderr, "%*c+ _tmp_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
+ D(fprintf(stderr, "%*c+ _tmp_66[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_64[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
}
_res = NULL;
@@ -25113,9 +25556,9 @@ _tmp_64_rule(Parser *p)
return _res;
}
-// _tmp_65: '+' | '-'
+// _tmp_67: '+' | '-'
static void *
-_tmp_65_rule(Parser *p)
+_tmp_67_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -25129,18 +25572,18 @@ _tmp_65_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
+ D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 14)) // token='+'
)
{
- D(fprintf(stderr, "%*c+ _tmp_65[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
+ D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_65[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
}
{ // '-'
@@ -25148,18 +25591,18 @@ _tmp_65_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
+ D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 15)) // token='-'
)
{
- D(fprintf(stderr, "%*c+ _tmp_65[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
+ D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_65[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
}
_res = NULL;
@@ -25168,9 +25611,9 @@ _tmp_65_rule(Parser *p)
return _res;
}
-// _tmp_66: '.' | '(' | '='
+// _tmp_68: '.' | '(' | '='
static void *
-_tmp_66_rule(Parser *p)
+_tmp_68_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -25184,18 +25627,18 @@ _tmp_66_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
+ D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 23)) // token='.'
)
{
- D(fprintf(stderr, "%*c+ _tmp_66[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
+ D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
}
{ // '('
@@ -25203,18 +25646,18 @@ _tmp_66_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
+ D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 7)) // token='('
)
{
- D(fprintf(stderr, "%*c+ _tmp_66[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
+ D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
}
{ // '='
@@ -25222,18 +25665,18 @@ _tmp_66_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
+ D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 22)) // token='='
)
{
- D(fprintf(stderr, "%*c+ _tmp_66[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
+ D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
}
_res = NULL;
@@ -25242,9 +25685,9 @@ _tmp_66_rule(Parser *p)
return _res;
}
-// _tmp_67: '.' | '(' | '='
+// _tmp_69: '.' | '(' | '='
static void *
-_tmp_67_rule(Parser *p)
+_tmp_69_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -25258,18 +25701,18 @@ _tmp_67_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
+ D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 23)) // token='.'
)
{
- D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
+ D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
}
{ // '('
@@ -25277,18 +25720,18 @@ _tmp_67_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
+ D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 7)) // token='('
)
{
- D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
+ D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
}
{ // '='
@@ -25296,18 +25739,18 @@ _tmp_67_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
+ D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 22)) // token='='
)
{
- D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
+ D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
}
_res = NULL;
@@ -25316,9 +25759,9 @@ _tmp_67_rule(Parser *p)
return _res;
}
-// _loop0_69: ',' maybe_star_pattern
+// _loop0_71: ',' maybe_star_pattern
static asdl_seq *
-_loop0_69_rule(Parser *p)
+_loop0_71_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -25342,7 +25785,7 @@ _loop0_69_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' maybe_star_pattern"));
+ D(fprintf(stderr, "%*c> _loop0_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' maybe_star_pattern"));
Token * _literal;
pattern_ty elem;
while (
@@ -25373,7 +25816,7 @@ _loop0_69_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_69[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -25386,14 +25829,14 @@ _loop0_69_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_69_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_68: maybe_star_pattern _loop0_69
+// _gather_70: maybe_star_pattern _loop0_71
static asdl_seq *
-_gather_68_rule(Parser *p)
+_gather_70_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -25402,27 +25845,27 @@ _gather_68_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // maybe_star_pattern _loop0_69
+ { // maybe_star_pattern _loop0_71
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_69"));
+ D(fprintf(stderr, "%*c> _gather_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_71"));
pattern_ty elem;
asdl_seq * seq;
if (
(elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
&&
- (seq = _loop0_69_rule(p)) // _loop0_69
+ (seq = _loop0_71_rule(p)) // _loop0_71
)
{
- D(fprintf(stderr, "%*c+ _gather_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_69"));
+ D(fprintf(stderr, "%*c+ _gather_70[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_71"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_68[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_69"));
+ D(fprintf(stderr, "%*c%s _gather_70[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_71"));
}
_res = NULL;
done:
@@ -25430,9 +25873,9 @@ _gather_68_rule(Parser *p)
return _res;
}
-// _loop0_71: ',' key_value_pattern
+// _loop0_73: ',' key_value_pattern
static asdl_seq *
-_loop0_71_rule(Parser *p)
+_loop0_73_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -25456,7 +25899,7 @@ _loop0_71_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
+ D(fprintf(stderr, "%*c> _loop0_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
Token * _literal;
KeyPatternPair* elem;
while (
@@ -25487,7 +25930,7 @@ _loop0_71_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_73[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -25500,14 +25943,14 @@ _loop0_71_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_73_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_70: key_value_pattern _loop0_71
+// _gather_72: key_value_pattern _loop0_73
static asdl_seq *
-_gather_70_rule(Parser *p)
+_gather_72_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -25516,27 +25959,27 @@ _gather_70_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // key_value_pattern _loop0_71
+ { // key_value_pattern _loop0_73
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_71"));
+ D(fprintf(stderr, "%*c> _gather_72[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_73"));
KeyPatternPair* elem;
asdl_seq * seq;
if (
(elem = key_value_pattern_rule(p)) // key_value_pattern
&&
- (seq = _loop0_71_rule(p)) // _loop0_71
+ (seq = _loop0_73_rule(p)) // _loop0_73
)
{
- D(fprintf(stderr, "%*c+ _gather_70[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_71"));
+ D(fprintf(stderr, "%*c+ _gather_72[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_73"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_70[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_71"));
+ D(fprintf(stderr, "%*c%s _gather_72[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_73"));
}
_res = NULL;
done:
@@ -25544,9 +25987,9 @@ _gather_70_rule(Parser *p)
return _res;
}
-// _tmp_72: literal_expr | attr
+// _tmp_74: literal_expr | attr
static void *
-_tmp_72_rule(Parser *p)
+_tmp_74_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -25560,18 +26003,18 @@ _tmp_72_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_72[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_expr"));
+ D(fprintf(stderr, "%*c> _tmp_74[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_expr"));
expr_ty literal_expr_var;
if (
(literal_expr_var = literal_expr_rule(p)) // literal_expr
)
{
- D(fprintf(stderr, "%*c+ _tmp_72[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_expr"));
+ D(fprintf(stderr, "%*c+ _tmp_74[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_expr"));
_res = literal_expr_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_72[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_74[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_expr"));
}
{ // attr
@@ -25579,18 +26022,18 @@ _tmp_72_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_72[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
+ D(fprintf(stderr, "%*c> _tmp_74[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
expr_ty attr_var;
if (
(attr_var = attr_rule(p)) // attr
)
{
- D(fprintf(stderr, "%*c+ _tmp_72[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
+ D(fprintf(stderr, "%*c+ _tmp_74[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
_res = attr_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_72[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_74[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
}
_res = NULL;
@@ -25599,9 +26042,9 @@ _tmp_72_rule(Parser *p)
return _res;
}
-// _loop0_74: ',' pattern
+// _loop0_76: ',' pattern
static asdl_seq *
-_loop0_74_rule(Parser *p)
+_loop0_76_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -25625,7 +26068,7 @@ _loop0_74_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_74[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
+ D(fprintf(stderr, "%*c> _loop0_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
Token * _literal;
pattern_ty elem;
while (
@@ -25656,7 +26099,7 @@ _loop0_74_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_76[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -25669,14 +26112,14 @@ _loop0_74_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_76_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_73: pattern _loop0_74
+// _gather_75: pattern _loop0_76
static asdl_seq *
-_gather_73_rule(Parser *p)
+_gather_75_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -25685,27 +26128,27 @@ _gather_73_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // pattern _loop0_74
+ { // pattern _loop0_76
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern _loop0_74"));
+ D(fprintf(stderr, "%*c> _gather_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern _loop0_76"));
pattern_ty elem;
asdl_seq * seq;
if (
(elem = pattern_rule(p)) // pattern
&&
- (seq = _loop0_74_rule(p)) // _loop0_74
+ (seq = _loop0_76_rule(p)) // _loop0_76
)
{
- D(fprintf(stderr, "%*c+ _gather_73[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_74"));
+ D(fprintf(stderr, "%*c+ _gather_75[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_76"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_73[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_74"));
+ D(fprintf(stderr, "%*c%s _gather_75[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_76"));
}
_res = NULL;
done:
@@ -25713,9 +26156,9 @@ _gather_73_rule(Parser *p)
return _res;
}
-// _loop0_76: ',' keyword_pattern
+// _loop0_78: ',' keyword_pattern
static asdl_seq *
-_loop0_76_rule(Parser *p)
+_loop0_78_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -25739,7 +26182,7 @@ _loop0_76_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
+ D(fprintf(stderr, "%*c> _loop0_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
Token * _literal;
KeyPatternPair* elem;
while (
@@ -25770,7 +26213,7 @@ _loop0_76_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_76[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -25783,14 +26226,14 @@ _loop0_76_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_76_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_75: keyword_pattern _loop0_76
+// _gather_77: keyword_pattern _loop0_78
static asdl_seq *
-_gather_75_rule(Parser *p)
+_gather_77_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -25799,27 +26242,27 @@ _gather_75_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // keyword_pattern _loop0_76
+ { // keyword_pattern _loop0_78
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_76"));
+ D(fprintf(stderr, "%*c> _gather_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_78"));
KeyPatternPair* elem;
asdl_seq * seq;
if (
(elem = keyword_pattern_rule(p)) // keyword_pattern
&&
- (seq = _loop0_76_rule(p)) // _loop0_76
+ (seq = _loop0_78_rule(p)) // _loop0_78
)
{
- D(fprintf(stderr, "%*c+ _gather_75[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_76"));
+ D(fprintf(stderr, "%*c+ _gather_77[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_78"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_75[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_76"));
+ D(fprintf(stderr, "%*c%s _gather_77[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_78"));
}
_res = NULL;
done:
@@ -25827,9 +26270,9 @@ _gather_75_rule(Parser *p)
return _res;
}
-// _loop1_77: (',' expression)
+// _loop1_79: (',' expression)
static asdl_seq *
-_loop1_77_rule(Parser *p)
+_loop1_79_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -25853,13 +26296,13 @@ _loop1_77_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop1_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
- void *_tmp_190_var;
+ D(fprintf(stderr, "%*c> _loop1_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
+ void *_tmp_197_var;
while (
- (_tmp_190_var = _tmp_190_rule(p)) // ',' expression
+ (_tmp_197_var = _tmp_197_rule(p)) // ',' expression
)
{
- _res = _tmp_190_var;
+ _res = _tmp_197_var;
if (_n == _children_capacity) {
_children_capacity *= 2;
void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -25875,7 +26318,7 @@ _loop1_77_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
}
if (_n == 0 || p->error_indicator) {
@@ -25893,14 +26336,14 @@ _loop1_77_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
D(p->level--);
return _seq;
}
-// _loop1_78: (',' star_expression)
+// _loop1_80: (',' star_expression)
static asdl_seq *
-_loop1_78_rule(Parser *p)
+_loop1_80_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -25924,13 +26367,13 @@ _loop1_78_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop1_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
- void *_tmp_191_var;
+ D(fprintf(stderr, "%*c> _loop1_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
+ void *_tmp_198_var;
while (
- (_tmp_191_var = _tmp_191_rule(p)) // ',' star_expression
+ (_tmp_198_var = _tmp_198_rule(p)) // ',' star_expression
)
{
- _res = _tmp_191_var;
+ _res = _tmp_198_var;
if (_n == _children_capacity) {
_children_capacity *= 2;
void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -25946,7 +26389,7 @@ _loop1_78_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_78[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop1_80[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
}
if (_n == 0 || p->error_indicator) {
@@ -25964,14 +26407,14 @@ _loop1_78_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_78_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_80_type, _seq);
D(p->level--);
return _seq;
}
-// _loop0_80: ',' star_named_expression
+// _loop0_82: ',' star_named_expression
static asdl_seq *
-_loop0_80_rule(Parser *p)
+_loop0_82_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -25995,7 +26438,7 @@ _loop0_80_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_named_expression"));
+ D(fprintf(stderr, "%*c> _loop0_82[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_named_expression"));
Token * _literal;
expr_ty elem;
while (
@@ -26026,7 +26469,7 @@ _loop0_80_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -26039,14 +26482,14 @@ _loop0_80_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_79: star_named_expression _loop0_80
+// _gather_81: star_named_expression _loop0_82
static asdl_seq *
-_gather_79_rule(Parser *p)
+_gather_81_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -26055,27 +26498,27 @@ _gather_79_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // star_named_expression _loop0_80
+ { // star_named_expression _loop0_82
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_80"));
+ D(fprintf(stderr, "%*c> _gather_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_82"));
expr_ty elem;
asdl_seq * seq;
if (
(elem = star_named_expression_rule(p)) // star_named_expression
&&
- (seq = _loop0_80_rule(p)) // _loop0_80
+ (seq = _loop0_82_rule(p)) // _loop0_82
)
{
- D(fprintf(stderr, "%*c+ _gather_79[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_80"));
+ D(fprintf(stderr, "%*c+ _gather_81[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_82"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_79[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_80"));
+ D(fprintf(stderr, "%*c%s _gather_81[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_82"));
}
_res = NULL;
done:
@@ -26083,9 +26526,9 @@ _gather_79_rule(Parser *p)
return _res;
}
-// _loop1_81: ('or' conjunction)
+// _loop1_83: ('or' conjunction)
static asdl_seq *
-_loop1_81_rule(Parser *p)
+_loop1_83_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -26109,13 +26552,13 @@ _loop1_81_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
- void *_tmp_192_var;
+ D(fprintf(stderr, "%*c> _loop1_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
+ void *_tmp_199_var;
while (
- (_tmp_192_var = _tmp_192_rule(p)) // 'or' conjunction
+ (_tmp_199_var = _tmp_199_rule(p)) // 'or' conjunction
)
{
- _res = _tmp_192_var;
+ _res = _tmp_199_var;
if (_n == _children_capacity) {
_children_capacity *= 2;
void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -26131,7 +26574,7 @@ _loop1_81_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
}
if (_n == 0 || p->error_indicator) {
@@ -26149,14 +26592,14 @@ _loop1_81_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
D(p->level--);
return _seq;
}
-// _loop1_82: ('and' inversion)
+// _loop1_84: ('and' inversion)
static asdl_seq *
-_loop1_82_rule(Parser *p)
+_loop1_84_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -26180,13 +26623,13 @@ _loop1_82_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop1_82[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
- void *_tmp_193_var;
+ D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
+ void *_tmp_200_var;
while (
- (_tmp_193_var = _tmp_193_rule(p)) // 'and' inversion
+ (_tmp_200_var = _tmp_200_rule(p)) // 'and' inversion
)
{
- _res = _tmp_193_var;
+ _res = _tmp_200_var;
if (_n == _children_capacity) {
_children_capacity *= 2;
void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -26202,7 +26645,7 @@ _loop1_82_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_82[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
}
if (_n == 0 || p->error_indicator) {
@@ -26220,14 +26663,14 @@ _loop1_82_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_82_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
D(p->level--);
return _seq;
}
-// _loop1_83: compare_op_bitwise_or_pair
+// _loop1_85: compare_op_bitwise_or_pair
static asdl_seq *
-_loop1_83_rule(Parser *p)
+_loop1_85_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -26251,7 +26694,7 @@ _loop1_83_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop1_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compare_op_bitwise_or_pair"));
+ D(fprintf(stderr, "%*c> _loop1_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compare_op_bitwise_or_pair"));
CmpopExprPair* compare_op_bitwise_or_pair_var;
while (
(compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
@@ -26273,7 +26716,7 @@ _loop1_83_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop1_85[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
}
if (_n == 0 || p->error_indicator) {
@@ -26291,14 +26734,14 @@ _loop1_83_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_85_type, _seq);
D(p->level--);
return _seq;
}
-// _tmp_84: '!='
+// _tmp_86: '!='
static void *
-_tmp_84_rule(Parser *p)
+_tmp_86_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -26312,13 +26755,13 @@ _tmp_84_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
+ D(fprintf(stderr, "%*c> _tmp_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Token * tok;
if (
(tok = _PyPegen_expect_token(p, 28)) // token='!='
)
{
- D(fprintf(stderr, "%*c+ _tmp_84[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
+ D(fprintf(stderr, "%*c+ _tmp_86[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
_res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
if (_res == NULL && PyErr_Occurred()) {
p->error_indicator = 1;
@@ -26328,7 +26771,7 @@ _tmp_84_rule(Parser *p)
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_84[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_86[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
}
_res = NULL;
@@ -26337,9 +26780,9 @@ _tmp_84_rule(Parser *p)
return _res;
}
-// _loop0_86: ',' slice
+// _loop0_88: ',' slice
static asdl_seq *
-_loop0_86_rule(Parser *p)
+_loop0_88_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -26363,7 +26806,7 @@ _loop0_86_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
+ D(fprintf(stderr, "%*c> _loop0_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Token * _literal;
expr_ty elem;
while (
@@ -26394,7 +26837,7 @@ _loop0_86_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_86[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -26407,14 +26850,14 @@ _loop0_86_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_86_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_85: slice _loop0_86
+// _gather_87: slice _loop0_88
static asdl_seq *
-_gather_85_rule(Parser *p)
+_gather_87_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -26423,27 +26866,27 @@ _gather_85_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // slice _loop0_86
+ { // slice _loop0_88
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice _loop0_86"));
+ D(fprintf(stderr, "%*c> _gather_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice _loop0_88"));
expr_ty elem;
asdl_seq * seq;
if (
(elem = slice_rule(p)) // slice
&&
- (seq = _loop0_86_rule(p)) // _loop0_86
+ (seq = _loop0_88_rule(p)) // _loop0_88
)
{
- D(fprintf(stderr, "%*c+ _gather_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice _loop0_86"));
+ D(fprintf(stderr, "%*c+ _gather_87[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice _loop0_88"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_85[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_86"));
+ D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_88"));
}
_res = NULL;
done:
@@ -26451,9 +26894,9 @@ _gather_85_rule(Parser *p)
return _res;
}
-// _tmp_87: ':' expression?
+// _tmp_89: ':' expression?
static void *
-_tmp_87_rule(Parser *p)
+_tmp_89_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -26467,7 +26910,7 @@ _tmp_87_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
+ D(fprintf(stderr, "%*c> _tmp_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Token * _literal;
void *d;
if (
@@ -26476,7 +26919,7 @@ _tmp_87_rule(Parser *p)
(d = expression_rule(p), !p->error_indicator) // expression?
)
{
- D(fprintf(stderr, "%*c+ _tmp_87[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
+ D(fprintf(stderr, "%*c+ _tmp_89[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
_res = d;
if (_res == NULL && PyErr_Occurred()) {
p->error_indicator = 1;
@@ -26486,7 +26929,7 @@ _tmp_87_rule(Parser *p)
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_87[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_89[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
}
_res = NULL;
@@ -26495,9 +26938,9 @@ _tmp_87_rule(Parser *p)
return _res;
}
-// _tmp_88: tuple | group | genexp
+// _tmp_90: tuple | group | genexp
static void *
-_tmp_88_rule(Parser *p)
+_tmp_90_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -26511,18 +26954,18 @@ _tmp_88_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
+ D(fprintf(stderr, "%*c> _tmp_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
expr_ty tuple_var;
if (
(tuple_var = tuple_rule(p)) // tuple
)
{
- D(fprintf(stderr, "%*c+ _tmp_88[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
+ D(fprintf(stderr, "%*c+ _tmp_90[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
_res = tuple_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_88[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_90[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
}
{ // group
@@ -26530,18 +26973,18 @@ _tmp_88_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
+ D(fprintf(stderr, "%*c> _tmp_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
expr_ty group_var;
if (
(group_var = group_rule(p)) // group
)
{
- D(fprintf(stderr, "%*c+ _tmp_88[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
+ D(fprintf(stderr, "%*c+ _tmp_90[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
_res = group_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_88[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_90[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
}
{ // genexp
@@ -26549,18 +26992,18 @@ _tmp_88_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
+ D(fprintf(stderr, "%*c> _tmp_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
expr_ty genexp_var;
if (
(genexp_var = genexp_rule(p)) // genexp
)
{
- D(fprintf(stderr, "%*c+ _tmp_88[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
+ D(fprintf(stderr, "%*c+ _tmp_90[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
_res = genexp_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_88[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_90[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
}
_res = NULL;
@@ -26569,9 +27012,9 @@ _tmp_88_rule(Parser *p)
return _res;
}
-// _tmp_89: list | listcomp
+// _tmp_91: list | listcomp
static void *
-_tmp_89_rule(Parser *p)
+_tmp_91_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -26585,18 +27028,18 @@ _tmp_89_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
+ D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
expr_ty list_var;
if (
(list_var = list_rule(p)) // list
)
{
- D(fprintf(stderr, "%*c+ _tmp_89[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
+ D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
_res = list_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_89[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
}
{ // listcomp
@@ -26604,18 +27047,18 @@ _tmp_89_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
+ D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
expr_ty listcomp_var;
if (
(listcomp_var = listcomp_rule(p)) // listcomp
)
{
- D(fprintf(stderr, "%*c+ _tmp_89[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
+ D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
_res = listcomp_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_89[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
}
_res = NULL;
@@ -26624,9 +27067,9 @@ _tmp_89_rule(Parser *p)
return _res;
}
-// _tmp_90: dict | set | dictcomp | setcomp
+// _tmp_92: dict | set | dictcomp | setcomp
static void *
-_tmp_90_rule(Parser *p)
+_tmp_92_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -26640,18 +27083,18 @@ _tmp_90_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
+ D(fprintf(stderr, "%*c> _tmp_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
expr_ty dict_var;
if (
(dict_var = dict_rule(p)) // dict
)
{
- D(fprintf(stderr, "%*c+ _tmp_90[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
+ D(fprintf(stderr, "%*c+ _tmp_92[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
_res = dict_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_90[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_92[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
}
{ // set
@@ -26659,18 +27102,18 @@ _tmp_90_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
+ D(fprintf(stderr, "%*c> _tmp_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
expr_ty set_var;
if (
(set_var = set_rule(p)) // set
)
{
- D(fprintf(stderr, "%*c+ _tmp_90[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
+ D(fprintf(stderr, "%*c+ _tmp_92[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
_res = set_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_90[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_92[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
}
{ // dictcomp
@@ -26678,18 +27121,18 @@ _tmp_90_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
+ D(fprintf(stderr, "%*c> _tmp_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
expr_ty dictcomp_var;
if (
(dictcomp_var = dictcomp_rule(p)) // dictcomp
)
{
- D(fprintf(stderr, "%*c+ _tmp_90[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
+ D(fprintf(stderr, "%*c+ _tmp_92[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
_res = dictcomp_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_90[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_92[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
}
{ // setcomp
@@ -26697,18 +27140,18 @@ _tmp_90_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
+ D(fprintf(stderr, "%*c> _tmp_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
expr_ty setcomp_var;
if (
(setcomp_var = setcomp_rule(p)) // setcomp
)
{
- D(fprintf(stderr, "%*c+ _tmp_90[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
+ D(fprintf(stderr, "%*c+ _tmp_92[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
_res = setcomp_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_90[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_92[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
}
_res = NULL;
@@ -26717,9 +27160,9 @@ _tmp_90_rule(Parser *p)
return _res;
}
-// _tmp_91: yield_expr | named_expression
+// _tmp_93: yield_expr | named_expression
static void *
-_tmp_91_rule(Parser *p)
+_tmp_93_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -26733,18 +27176,18 @@ _tmp_91_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
+ D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
expr_ty yield_expr_var;
if (
(yield_expr_var = yield_expr_rule(p)) // yield_expr
)
{
- D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
+ D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
_res = yield_expr_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
}
{ // named_expression
@@ -26752,18 +27195,18 @@ _tmp_91_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
+ D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
expr_ty named_expression_var;
if (
(named_expression_var = named_expression_rule(p)) // named_expression
)
{
- D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
+ D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
_res = named_expression_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
}
_res = NULL;
@@ -26772,9 +27215,9 @@ _tmp_91_rule(Parser *p)
return _res;
}
-// _loop0_92: lambda_param_no_default
+// _loop0_94: lambda_param_no_default
static asdl_seq *
-_loop0_92_rule(Parser *p)
+_loop0_94_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -26798,7 +27241,7 @@ _loop0_92_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
+ D(fprintf(stderr, "%*c> _loop0_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
arg_ty lambda_param_no_default_var;
while (
(lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
@@ -26820,7 +27263,7 @@ _loop0_92_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -26833,14 +27276,14 @@ _loop0_92_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
D(p->level--);
return _seq;
}
-// _loop0_93: lambda_param_with_default
+// _loop0_95: lambda_param_with_default
static asdl_seq *
-_loop0_93_rule(Parser *p)
+_loop0_95_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -26864,7 +27307,7 @@ _loop0_93_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
+ D(fprintf(stderr, "%*c> _loop0_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
NameDefaultPair* lambda_param_with_default_var;
while (
(lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
@@ -26886,7 +27329,7 @@ _loop0_93_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_93[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_95[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -26899,14 +27342,14 @@ _loop0_93_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_93_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_95_type, _seq);
D(p->level--);
return _seq;
}
-// _loop0_94: lambda_param_with_default
+// _loop0_96: lambda_param_with_default
static asdl_seq *
-_loop0_94_rule(Parser *p)
+_loop0_96_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -26930,7 +27373,7 @@ _loop0_94_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
+ D(fprintf(stderr, "%*c> _loop0_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
NameDefaultPair* lambda_param_with_default_var;
while (
(lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
@@ -26952,7 +27395,7 @@ _loop0_94_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_96[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -26965,14 +27408,14 @@ _loop0_94_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_96_type, _seq);
D(p->level--);
return _seq;
}
-// _loop1_95: lambda_param_no_default
+// _loop1_97: lambda_param_no_default
static asdl_seq *
-_loop1_95_rule(Parser *p)
+_loop1_97_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -26996,7 +27439,7 @@ _loop1_95_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop1_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
+ D(fprintf(stderr, "%*c> _loop1_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
arg_ty lambda_param_no_default_var;
while (
(lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
@@ -27018,7 +27461,7 @@ _loop1_95_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
}
if (_n == 0 || p->error_indicator) {
@@ -27036,14 +27479,14 @@ _loop1_95_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
D(p->level--);
return _seq;
}
-// _loop0_96: lambda_param_with_default
+// _loop0_98: lambda_param_with_default
static asdl_seq *
-_loop0_96_rule(Parser *p)
+_loop0_98_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -27067,7 +27510,7 @@ _loop0_96_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
+ D(fprintf(stderr, "%*c> _loop0_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
NameDefaultPair* lambda_param_with_default_var;
while (
(lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
@@ -27089,7 +27532,7 @@ _loop0_96_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_96[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -27102,14 +27545,14 @@ _loop0_96_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_96_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
D(p->level--);
return _seq;
}
-// _loop1_97: lambda_param_with_default
+// _loop1_99: lambda_param_with_default
static asdl_seq *
-_loop1_97_rule(Parser *p)
+_loop1_99_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -27133,7 +27576,7 @@ _loop1_97_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop1_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
+ D(fprintf(stderr, "%*c> _loop1_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
NameDefaultPair* lambda_param_with_default_var;
while (
(lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
@@ -27155,7 +27598,7 @@ _loop1_97_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
}
if (_n == 0 || p->error_indicator) {
@@ -27173,14 +27616,14 @@ _loop1_97_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
D(p->level--);
return _seq;
}
-// _loop1_98: lambda_param_no_default
+// _loop1_100: lambda_param_no_default
static asdl_seq *
-_loop1_98_rule(Parser *p)
+_loop1_100_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -27204,7 +27647,7 @@ _loop1_98_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop1_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
+ D(fprintf(stderr, "%*c> _loop1_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
arg_ty lambda_param_no_default_var;
while (
(lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
@@ -27226,7 +27669,7 @@ _loop1_98_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_98[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop1_100[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
}
if (_n == 0 || p->error_indicator) {
@@ -27244,14 +27687,14 @@ _loop1_98_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_98_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_100_type, _seq);
D(p->level--);
return _seq;
}
-// _loop1_99: lambda_param_no_default
+// _loop1_101: lambda_param_no_default
static asdl_seq *
-_loop1_99_rule(Parser *p)
+_loop1_101_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -27275,7 +27718,7 @@ _loop1_99_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop1_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
+ D(fprintf(stderr, "%*c> _loop1_101[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
arg_ty lambda_param_no_default_var;
while (
(lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
@@ -27297,7 +27740,7 @@ _loop1_99_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
}
if (_n == 0 || p->error_indicator) {
@@ -27315,14 +27758,14 @@ _loop1_99_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
D(p->level--);
return _seq;
}
-// _loop0_100: lambda_param_no_default
+// _loop0_102: lambda_param_no_default
static asdl_seq *
-_loop0_100_rule(Parser *p)
+_loop0_102_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -27346,7 +27789,7 @@ _loop0_100_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
+ D(fprintf(stderr, "%*c> _loop0_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
arg_ty lambda_param_no_default_var;
while (
(lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
@@ -27368,7 +27811,7 @@ _loop0_100_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -27381,14 +27824,14 @@ _loop0_100_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
D(p->level--);
return _seq;
}
-// _loop1_101: lambda_param_with_default
+// _loop1_103: lambda_param_with_default
static asdl_seq *
-_loop1_101_rule(Parser *p)
+_loop1_103_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -27412,7 +27855,7 @@ _loop1_101_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop1_101[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
+ D(fprintf(stderr, "%*c> _loop1_103[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
NameDefaultPair* lambda_param_with_default_var;
while (
(lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
@@ -27434,7 +27877,7 @@ _loop1_101_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
}
if (_n == 0 || p->error_indicator) {
@@ -27452,14 +27895,14 @@ _loop1_101_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
D(p->level--);
return _seq;
}
-// _loop0_102: lambda_param_no_default
+// _loop0_104: lambda_param_no_default
static asdl_seq *
-_loop0_102_rule(Parser *p)
+_loop0_104_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -27483,7 +27926,7 @@ _loop0_102_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
+ D(fprintf(stderr, "%*c> _loop0_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
arg_ty lambda_param_no_default_var;
while (
(lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
@@ -27505,7 +27948,7 @@ _loop0_102_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_104[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -27518,14 +27961,14 @@ _loop0_102_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_104_type, _seq);
D(p->level--);
return _seq;
}
-// _loop1_103: lambda_param_with_default
+// _loop1_105: lambda_param_with_default
static asdl_seq *
-_loop1_103_rule(Parser *p)
+_loop1_105_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -27549,7 +27992,7 @@ _loop1_103_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop1_103[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
+ D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
NameDefaultPair* lambda_param_with_default_var;
while (
(lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
@@ -27571,7 +28014,7 @@ _loop1_103_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
}
if (_n == 0 || p->error_indicator) {
@@ -27589,14 +28032,14 @@ _loop1_103_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
D(p->level--);
return _seq;
}
-// _loop0_104: lambda_param_maybe_default
+// _loop0_106: lambda_param_maybe_default
static asdl_seq *
-_loop0_104_rule(Parser *p)
+_loop0_106_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -27620,7 +28063,7 @@ _loop0_104_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
+ D(fprintf(stderr, "%*c> _loop0_106[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
NameDefaultPair* lambda_param_maybe_default_var;
while (
(lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
@@ -27642,7 +28085,7 @@ _loop0_104_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_104[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_106[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -27655,14 +28098,14 @@ _loop0_104_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_104_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_106_type, _seq);
D(p->level--);
return _seq;
}
-// _loop1_105: lambda_param_maybe_default
+// _loop1_107: lambda_param_maybe_default
static asdl_seq *
-_loop1_105_rule(Parser *p)
+_loop1_107_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -27686,7 +28129,7 @@ _loop1_105_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
+ D(fprintf(stderr, "%*c> _loop1_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
NameDefaultPair* lambda_param_maybe_default_var;
while (
(lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
@@ -27708,7 +28151,7 @@ _loop1_105_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop1_107[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
}
if (_n == 0 || p->error_indicator) {
@@ -27726,14 +28169,14 @@ _loop1_105_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_107_type, _seq);
D(p->level--);
return _seq;
}
-// _loop1_106: STRING
+// _loop1_108: STRING
static asdl_seq *
-_loop1_106_rule(Parser *p)
+_loop1_108_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -27757,7 +28200,7 @@ _loop1_106_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop1_106[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
+ D(fprintf(stderr, "%*c> _loop1_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
expr_ty string_var;
while (
(string_var = _PyPegen_string_token(p)) // STRING
@@ -27779,7 +28222,7 @@ _loop1_106_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop1_108[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
}
if (_n == 0 || p->error_indicator) {
@@ -27797,14 +28240,14 @@ _loop1_106_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_108_type, _seq);
D(p->level--);
return _seq;
}
-// _tmp_107: star_named_expression ',' star_named_expressions?
+// _tmp_109: star_named_expression ',' star_named_expressions?
static void *
-_tmp_107_rule(Parser *p)
+_tmp_109_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -27818,7 +28261,7 @@ _tmp_107_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
+ D(fprintf(stderr, "%*c> _tmp_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Token * _literal;
expr_ty y;
void *z;
@@ -27830,7 +28273,7 @@ _tmp_107_rule(Parser *p)
(z = star_named_expressions_rule(p), !p->error_indicator) // star_named_expressions?
)
{
- D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
+ D(fprintf(stderr, "%*c+ _tmp_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
_res = _PyPegen_seq_insert_in_front ( p , y , z );
if (_res == NULL && PyErr_Occurred()) {
p->error_indicator = 1;
@@ -27840,7 +28283,7 @@ _tmp_107_rule(Parser *p)
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_109[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
}
_res = NULL;
@@ -27849,9 +28292,9 @@ _tmp_107_rule(Parser *p)
return _res;
}
-// _loop0_109: ',' double_starred_kvpair
+// _loop0_111: ',' double_starred_kvpair
static asdl_seq *
-_loop0_109_rule(Parser *p)
+_loop0_111_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -27875,7 +28318,7 @@ _loop0_109_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
+ D(fprintf(stderr, "%*c> _loop0_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Token * _literal;
KeyValuePair* elem;
while (
@@ -27906,7 +28349,7 @@ _loop0_109_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_111[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -27919,14 +28362,14 @@ _loop0_109_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_111_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_108: double_starred_kvpair _loop0_109
+// _gather_110: double_starred_kvpair _loop0_111
static asdl_seq *
-_gather_108_rule(Parser *p)
+_gather_110_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -27935,27 +28378,27 @@ _gather_108_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // double_starred_kvpair _loop0_109
+ { // double_starred_kvpair _loop0_111
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_109"));
+ D(fprintf(stderr, "%*c> _gather_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_111"));
KeyValuePair* elem;
asdl_seq * seq;
if (
(elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
&&
- (seq = _loop0_109_rule(p)) // _loop0_109
+ (seq = _loop0_111_rule(p)) // _loop0_111
)
{
- D(fprintf(stderr, "%*c+ _gather_108[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_109"));
+ D(fprintf(stderr, "%*c+ _gather_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_111"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_109"));
+ D(fprintf(stderr, "%*c%s _gather_110[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_111"));
}
_res = NULL;
done:
@@ -27963,9 +28406,9 @@ _gather_108_rule(Parser *p)
return _res;
}
-// _loop1_110: for_if_clause
+// _loop1_112: for_if_clause
static asdl_seq *
-_loop1_110_rule(Parser *p)
+_loop1_112_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -27989,7 +28432,7 @@ _loop1_110_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop1_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
+ D(fprintf(stderr, "%*c> _loop1_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
comprehension_ty for_if_clause_var;
while (
(for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
@@ -28011,7 +28454,7 @@ _loop1_110_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_110[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop1_112[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
}
if (_n == 0 || p->error_indicator) {
@@ -28029,14 +28472,14 @@ _loop1_110_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_110_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_112_type, _seq);
D(p->level--);
return _seq;
}
-// _loop0_111: ('if' disjunction)
+// _loop0_113: ('if' disjunction)
static asdl_seq *
-_loop0_111_rule(Parser *p)
+_loop0_113_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -28060,13 +28503,13 @@ _loop0_111_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
- void *_tmp_194_var;
+ D(fprintf(stderr, "%*c> _loop0_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
+ void *_tmp_201_var;
while (
- (_tmp_194_var = _tmp_194_rule(p)) // 'if' disjunction
+ (_tmp_201_var = _tmp_201_rule(p)) // 'if' disjunction
)
{
- _res = _tmp_194_var;
+ _res = _tmp_201_var;
if (_n == _children_capacity) {
_children_capacity *= 2;
void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -28082,7 +28525,7 @@ _loop0_111_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_111[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_113[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -28095,14 +28538,14 @@ _loop0_111_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_111_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_113_type, _seq);
D(p->level--);
return _seq;
}
-// _loop0_112: ('if' disjunction)
+// _loop0_114: ('if' disjunction)
static asdl_seq *
-_loop0_112_rule(Parser *p)
+_loop0_114_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -28126,13 +28569,13 @@ _loop0_112_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
- void *_tmp_195_var;
+ D(fprintf(stderr, "%*c> _loop0_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
+ void *_tmp_202_var;
while (
- (_tmp_195_var = _tmp_195_rule(p)) // 'if' disjunction
+ (_tmp_202_var = _tmp_202_rule(p)) // 'if' disjunction
)
{
- _res = _tmp_195_var;
+ _res = _tmp_202_var;
if (_n == _children_capacity) {
_children_capacity *= 2;
void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -28148,7 +28591,7 @@ _loop0_112_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_112[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_114[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -28161,14 +28604,14 @@ _loop0_112_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_112_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_114_type, _seq);
D(p->level--);
return _seq;
}
-// _tmp_113: assignment_expression | expression !':='
+// _tmp_115: assignment_expression | expression !':='
static void *
-_tmp_113_rule(Parser *p)
+_tmp_115_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -28182,18 +28625,18 @@ _tmp_113_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
+ D(fprintf(stderr, "%*c> _tmp_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
expr_ty assignment_expression_var;
if (
(assignment_expression_var = assignment_expression_rule(p)) // assignment_expression
)
{
- D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
+ D(fprintf(stderr, "%*c+ _tmp_115[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
_res = assignment_expression_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression"));
}
{ // expression !':='
@@ -28201,7 +28644,7 @@ _tmp_113_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
+ D(fprintf(stderr, "%*c> _tmp_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
expr_ty expression_var;
if (
(expression_var = expression_rule(p)) // expression
@@ -28209,12 +28652,12 @@ _tmp_113_rule(Parser *p)
_PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
)
{
- D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
+ D(fprintf(stderr, "%*c+ _tmp_115[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
_res = expression_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
}
_res = NULL;
@@ -28223,9 +28666,9 @@ _tmp_113_rule(Parser *p)
return _res;
}
-// _loop0_115: ',' (starred_expression | (assignment_expression | expression !':=') !'=')
+// _loop0_117: ',' (starred_expression | (assignment_expression | expression !':=') !'=')
static asdl_seq *
-_loop0_115_rule(Parser *p)
+_loop0_117_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -28249,13 +28692,13 @@ _loop0_115_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')"));
+ D(fprintf(stderr, "%*c> _loop0_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')"));
Token * _literal;
void *elem;
while (
(_literal = _PyPegen_expect_token(p, 12)) // token=','
&&
- (elem = _tmp_196_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'='
+ (elem = _tmp_203_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'='
)
{
_res = elem;
@@ -28280,7 +28723,7 @@ _loop0_115_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_115[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_117[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -28293,15 +28736,15 @@ _loop0_115_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_115_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_117_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_114:
-// | (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_115
+// _gather_116:
+// | (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_117
static asdl_seq *
-_gather_114_rule(Parser *p)
+_gather_116_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -28310,27 +28753,27 @@ _gather_114_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_115
+ { // (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_117
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_115"));
+ D(fprintf(stderr, "%*c> _gather_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_117"));
void *elem;
asdl_seq * seq;
if (
- (elem = _tmp_196_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'='
+ (elem = _tmp_203_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'='
&&
- (seq = _loop0_115_rule(p)) // _loop0_115
+ (seq = _loop0_117_rule(p)) // _loop0_117
)
{
- D(fprintf(stderr, "%*c+ _gather_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_115"));
+ D(fprintf(stderr, "%*c+ _gather_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_117"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_114[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_115"));
+ D(fprintf(stderr, "%*c%s _gather_116[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_117"));
}
_res = NULL;
done:
@@ -28338,9 +28781,9 @@ _gather_114_rule(Parser *p)
return _res;
}
-// _tmp_116: ',' kwargs
+// _tmp_118: ',' kwargs
static void *
-_tmp_116_rule(Parser *p)
+_tmp_118_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -28354,7 +28797,7 @@ _tmp_116_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
+ D(fprintf(stderr, "%*c> _tmp_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Token * _literal;
asdl_seq* k;
if (
@@ -28363,7 +28806,7 @@ _tmp_116_rule(Parser *p)
(k = kwargs_rule(p)) // kwargs
)
{
- D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
+ D(fprintf(stderr, "%*c+ _tmp_118[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
_res = k;
if (_res == NULL && PyErr_Occurred()) {
p->error_indicator = 1;
@@ -28373,7 +28816,7 @@ _tmp_116_rule(Parser *p)
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_118[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
}
_res = NULL;
@@ -28382,9 +28825,9 @@ _tmp_116_rule(Parser *p)
return _res;
}
-// _loop0_118: ',' kwarg_or_starred
+// _loop0_120: ',' kwarg_or_starred
static asdl_seq *
-_loop0_118_rule(Parser *p)
+_loop0_120_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -28408,7 +28851,7 @@ _loop0_118_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
+ D(fprintf(stderr, "%*c> _loop0_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Token * _literal;
KeywordOrStarred* elem;
while (
@@ -28439,7 +28882,7 @@ _loop0_118_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_120[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -28452,14 +28895,14 @@ _loop0_118_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_118_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_120_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_117: kwarg_or_starred _loop0_118
+// _gather_119: kwarg_or_starred _loop0_120
static asdl_seq *
-_gather_117_rule(Parser *p)
+_gather_119_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -28468,27 +28911,27 @@ _gather_117_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // kwarg_or_starred _loop0_118
+ { // kwarg_or_starred _loop0_120
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_118"));
+ D(fprintf(stderr, "%*c> _gather_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_120"));
KeywordOrStarred* elem;
asdl_seq * seq;
if (
(elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
&&
- (seq = _loop0_118_rule(p)) // _loop0_118
+ (seq = _loop0_120_rule(p)) // _loop0_120
)
{
- D(fprintf(stderr, "%*c+ _gather_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_118"));
+ D(fprintf(stderr, "%*c+ _gather_119[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_120"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_117[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_118"));
+ D(fprintf(stderr, "%*c%s _gather_119[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_120"));
}
_res = NULL;
done:
@@ -28496,9 +28939,9 @@ _gather_117_rule(Parser *p)
return _res;
}
-// _loop0_120: ',' kwarg_or_double_starred
+// _loop0_122: ',' kwarg_or_double_starred
static asdl_seq *
-_loop0_120_rule(Parser *p)
+_loop0_122_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -28522,7 +28965,7 @@ _loop0_120_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
+ D(fprintf(stderr, "%*c> _loop0_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
Token * _literal;
KeywordOrStarred* elem;
while (
@@ -28553,7 +28996,7 @@ _loop0_120_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_120[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_122[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -28566,14 +29009,14 @@ _loop0_120_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_120_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_122_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_119: kwarg_or_double_starred _loop0_120
+// _gather_121: kwarg_or_double_starred _loop0_122
static asdl_seq *
-_gather_119_rule(Parser *p)
+_gather_121_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -28582,27 +29025,27 @@ _gather_119_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // kwarg_or_double_starred _loop0_120
+ { // kwarg_or_double_starred _loop0_122
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_120"));
+ D(fprintf(stderr, "%*c> _gather_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_122"));
KeywordOrStarred* elem;
asdl_seq * seq;
if (
(elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
&&
- (seq = _loop0_120_rule(p)) // _loop0_120
+ (seq = _loop0_122_rule(p)) // _loop0_122
)
{
- D(fprintf(stderr, "%*c+ _gather_119[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_120"));
+ D(fprintf(stderr, "%*c+ _gather_121[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_122"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_119[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_120"));
+ D(fprintf(stderr, "%*c%s _gather_121[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_122"));
}
_res = NULL;
done:
@@ -28610,9 +29053,9 @@ _gather_119_rule(Parser *p)
return _res;
}
-// _loop0_122: ',' kwarg_or_starred
+// _loop0_124: ',' kwarg_or_starred
static asdl_seq *
-_loop0_122_rule(Parser *p)
+_loop0_124_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -28636,7 +29079,7 @@ _loop0_122_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
+ D(fprintf(stderr, "%*c> _loop0_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Token * _literal;
KeywordOrStarred* elem;
while (
@@ -28667,7 +29110,7 @@ _loop0_122_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_122[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_124[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -28680,14 +29123,14 @@ _loop0_122_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_122_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_124_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_121: kwarg_or_starred _loop0_122
+// _gather_123: kwarg_or_starred _loop0_124
static asdl_seq *
-_gather_121_rule(Parser *p)
+_gather_123_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -28696,27 +29139,27 @@ _gather_121_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // kwarg_or_starred _loop0_122
+ { // kwarg_or_starred _loop0_124
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_122"));
+ D(fprintf(stderr, "%*c> _gather_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_124"));
KeywordOrStarred* elem;
asdl_seq * seq;
if (
(elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
&&
- (seq = _loop0_122_rule(p)) // _loop0_122
+ (seq = _loop0_124_rule(p)) // _loop0_124
)
{
- D(fprintf(stderr, "%*c+ _gather_121[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_122"));
+ D(fprintf(stderr, "%*c+ _gather_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_124"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_121[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_122"));
+ D(fprintf(stderr, "%*c%s _gather_123[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_124"));
}
_res = NULL;
done:
@@ -28724,9 +29167,9 @@ _gather_121_rule(Parser *p)
return _res;
}
-// _loop0_124: ',' kwarg_or_double_starred
+// _loop0_126: ',' kwarg_or_double_starred
static asdl_seq *
-_loop0_124_rule(Parser *p)
+_loop0_126_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -28750,7 +29193,7 @@ _loop0_124_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
+ D(fprintf(stderr, "%*c> _loop0_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
Token * _literal;
KeywordOrStarred* elem;
while (
@@ -28781,7 +29224,7 @@ _loop0_124_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_124[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -28794,14 +29237,14 @@ _loop0_124_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_124_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_126_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_123: kwarg_or_double_starred _loop0_124
+// _gather_125: kwarg_or_double_starred _loop0_126
static asdl_seq *
-_gather_123_rule(Parser *p)
+_gather_125_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -28810,27 +29253,27 @@ _gather_123_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // kwarg_or_double_starred _loop0_124
+ { // kwarg_or_double_starred _loop0_126
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_124"));
+ D(fprintf(stderr, "%*c> _gather_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_126"));
KeywordOrStarred* elem;
asdl_seq * seq;
if (
(elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
&&
- (seq = _loop0_124_rule(p)) // _loop0_124
+ (seq = _loop0_126_rule(p)) // _loop0_126
)
{
- D(fprintf(stderr, "%*c+ _gather_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_124"));
+ D(fprintf(stderr, "%*c+ _gather_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_126"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_123[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_124"));
+ D(fprintf(stderr, "%*c%s _gather_125[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_126"));
}
_res = NULL;
done:
@@ -28838,9 +29281,9 @@ _gather_123_rule(Parser *p)
return _res;
}
-// _loop0_125: (',' star_target)
+// _loop0_127: (',' star_target)
static asdl_seq *
-_loop0_125_rule(Parser *p)
+_loop0_127_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -28864,13 +29307,13 @@ _loop0_125_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
- void *_tmp_197_var;
+ D(fprintf(stderr, "%*c> _loop0_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
+ void *_tmp_204_var;
while (
- (_tmp_197_var = _tmp_197_rule(p)) // ',' star_target
+ (_tmp_204_var = _tmp_204_rule(p)) // ',' star_target
)
{
- _res = _tmp_197_var;
+ _res = _tmp_204_var;
if (_n == _children_capacity) {
_children_capacity *= 2;
void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -28886,7 +29329,7 @@ _loop0_125_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_125[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -28899,14 +29342,14 @@ _loop0_125_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_125_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
D(p->level--);
return _seq;
}
-// _loop0_127: ',' star_target
+// _loop0_129: ',' star_target
static asdl_seq *
-_loop0_127_rule(Parser *p)
+_loop0_129_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -28930,7 +29373,7 @@ _loop0_127_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
+ D(fprintf(stderr, "%*c> _loop0_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Token * _literal;
expr_ty elem;
while (
@@ -28961,7 +29404,7 @@ _loop0_127_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -28974,14 +29417,14 @@ _loop0_127_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_126: star_target _loop0_127
+// _gather_128: star_target _loop0_129
static asdl_seq *
-_gather_126_rule(Parser *p)
+_gather_128_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -28990,27 +29433,27 @@ _gather_126_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // star_target _loop0_127
+ { // star_target _loop0_129
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_127"));
+ D(fprintf(stderr, "%*c> _gather_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_129"));
expr_ty elem;
asdl_seq * seq;
if (
(elem = star_target_rule(p)) // star_target
&&
- (seq = _loop0_127_rule(p)) // _loop0_127
+ (seq = _loop0_129_rule(p)) // _loop0_129
)
{
- D(fprintf(stderr, "%*c+ _gather_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_127"));
+ D(fprintf(stderr, "%*c+ _gather_128[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_129"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_126[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_127"));
+ D(fprintf(stderr, "%*c%s _gather_128[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_129"));
}
_res = NULL;
done:
@@ -29018,9 +29461,9 @@ _gather_126_rule(Parser *p)
return _res;
}
-// _loop1_128: (',' star_target)
+// _loop1_130: (',' star_target)
static asdl_seq *
-_loop1_128_rule(Parser *p)
+_loop1_130_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -29044,13 +29487,13 @@ _loop1_128_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop1_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
- void *_tmp_198_var;
+ D(fprintf(stderr, "%*c> _loop1_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
+ void *_tmp_205_var;
while (
- (_tmp_198_var = _tmp_198_rule(p)) // ',' star_target
+ (_tmp_205_var = _tmp_205_rule(p)) // ',' star_target
)
{
- _res = _tmp_198_var;
+ _res = _tmp_205_var;
if (_n == _children_capacity) {
_children_capacity *= 2;
void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -29066,7 +29509,7 @@ _loop1_128_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_128[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop1_130[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
}
if (_n == 0 || p->error_indicator) {
@@ -29084,14 +29527,14 @@ _loop1_128_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_128_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_130_type, _seq);
D(p->level--);
return _seq;
}
-// _tmp_129: !'*' star_target
+// _tmp_131: !'*' star_target
static void *
-_tmp_129_rule(Parser *p)
+_tmp_131_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -29105,7 +29548,7 @@ _tmp_129_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
+ D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
expr_ty star_target_var;
if (
_PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
@@ -29113,12 +29556,12 @@ _tmp_129_rule(Parser *p)
(star_target_var = star_target_rule(p)) // star_target
)
{
- D(fprintf(stderr, "%*c+ _tmp_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
+ D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
_res = star_target_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_129[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
}
_res = NULL;
@@ -29127,9 +29570,9 @@ _tmp_129_rule(Parser *p)
return _res;
}
-// _loop0_131: ',' del_target
+// _loop0_133: ',' del_target
static asdl_seq *
-_loop0_131_rule(Parser *p)
+_loop0_133_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -29153,7 +29596,7 @@ _loop0_131_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
+ D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Token * _literal;
expr_ty elem;
while (
@@ -29184,7 +29627,7 @@ _loop0_131_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_131[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -29197,14 +29640,14 @@ _loop0_131_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_131_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_130: del_target _loop0_131
+// _gather_132: del_target _loop0_133
static asdl_seq *
-_gather_130_rule(Parser *p)
+_gather_132_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -29213,27 +29656,27 @@ _gather_130_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // del_target _loop0_131
+ { // del_target _loop0_133
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_131"));
+ D(fprintf(stderr, "%*c> _gather_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_133"));
expr_ty elem;
asdl_seq * seq;
if (
(elem = del_target_rule(p)) // del_target
&&
- (seq = _loop0_131_rule(p)) // _loop0_131
+ (seq = _loop0_133_rule(p)) // _loop0_133
)
{
- D(fprintf(stderr, "%*c+ _gather_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_131"));
+ D(fprintf(stderr, "%*c+ _gather_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_133"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_130[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_131"));
+ D(fprintf(stderr, "%*c%s _gather_132[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_133"));
}
_res = NULL;
done:
@@ -29241,9 +29684,9 @@ _gather_130_rule(Parser *p)
return _res;
}
-// _loop0_133: ',' expression
+// _loop0_135: ',' expression
static asdl_seq *
-_loop0_133_rule(Parser *p)
+_loop0_135_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -29267,7 +29710,7 @@ _loop0_133_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
+ D(fprintf(stderr, "%*c> _loop0_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Token * _literal;
expr_ty elem;
while (
@@ -29298,7 +29741,7 @@ _loop0_133_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -29311,14 +29754,14 @@ _loop0_133_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_135_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_132: expression _loop0_133
+// _gather_134: expression _loop0_135
static asdl_seq *
-_gather_132_rule(Parser *p)
+_gather_134_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -29327,27 +29770,27 @@ _gather_132_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // expression _loop0_133
+ { // expression _loop0_135
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_133"));
+ D(fprintf(stderr, "%*c> _gather_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_135"));
expr_ty elem;
asdl_seq * seq;
if (
(elem = expression_rule(p)) // expression
&&
- (seq = _loop0_133_rule(p)) // _loop0_133
+ (seq = _loop0_135_rule(p)) // _loop0_135
)
{
- D(fprintf(stderr, "%*c+ _gather_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_133"));
+ D(fprintf(stderr, "%*c+ _gather_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_135"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_132[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_133"));
+ D(fprintf(stderr, "%*c%s _gather_134[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_135"));
}
_res = NULL;
done:
@@ -29355,9 +29798,9 @@ _gather_132_rule(Parser *p)
return _res;
}
-// _loop0_135: ',' expression
+// _loop0_137: ',' expression
static asdl_seq *
-_loop0_135_rule(Parser *p)
+_loop0_137_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -29381,7 +29824,7 @@ _loop0_135_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
+ D(fprintf(stderr, "%*c> _loop0_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Token * _literal;
expr_ty elem;
while (
@@ -29412,7 +29855,7 @@ _loop0_135_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_137[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -29425,14 +29868,14 @@ _loop0_135_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_135_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_137_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_134: expression _loop0_135
+// _gather_136: expression _loop0_137
static asdl_seq *
-_gather_134_rule(Parser *p)
+_gather_136_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -29441,27 +29884,27 @@ _gather_134_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // expression _loop0_135
+ { // expression _loop0_137
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_135"));
+ D(fprintf(stderr, "%*c> _gather_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_137"));
expr_ty elem;
asdl_seq * seq;
if (
(elem = expression_rule(p)) // expression
&&
- (seq = _loop0_135_rule(p)) // _loop0_135
+ (seq = _loop0_137_rule(p)) // _loop0_137
)
{
- D(fprintf(stderr, "%*c+ _gather_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_135"));
+ D(fprintf(stderr, "%*c+ _gather_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_137"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_134[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_135"));
+ D(fprintf(stderr, "%*c%s _gather_136[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_137"));
}
_res = NULL;
done:
@@ -29469,9 +29912,9 @@ _gather_134_rule(Parser *p)
return _res;
}
-// _loop0_137: ',' expression
+// _loop0_139: ',' expression
static asdl_seq *
-_loop0_137_rule(Parser *p)
+_loop0_139_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -29495,7 +29938,7 @@ _loop0_137_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
+ D(fprintf(stderr, "%*c> _loop0_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Token * _literal;
expr_ty elem;
while (
@@ -29526,7 +29969,7 @@ _loop0_137_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_137[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_139[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -29539,14 +29982,14 @@ _loop0_137_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_137_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_139_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_136: expression _loop0_137
+// _gather_138: expression _loop0_139
static asdl_seq *
-_gather_136_rule(Parser *p)
+_gather_138_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -29555,27 +29998,27 @@ _gather_136_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // expression _loop0_137
+ { // expression _loop0_139
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_137"));
+ D(fprintf(stderr, "%*c> _gather_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_139"));
expr_ty elem;
asdl_seq * seq;
if (
(elem = expression_rule(p)) // expression
&&
- (seq = _loop0_137_rule(p)) // _loop0_137
+ (seq = _loop0_139_rule(p)) // _loop0_139
)
{
- D(fprintf(stderr, "%*c+ _gather_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_137"));
+ D(fprintf(stderr, "%*c+ _gather_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_139"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_136[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_137"));
+ D(fprintf(stderr, "%*c%s _gather_138[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_139"));
}
_res = NULL;
done:
@@ -29583,9 +30026,9 @@ _gather_136_rule(Parser *p)
return _res;
}
-// _loop0_139: ',' expression
+// _loop0_141: ',' expression
static asdl_seq *
-_loop0_139_rule(Parser *p)
+_loop0_141_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -29609,7 +30052,7 @@ _loop0_139_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
+ D(fprintf(stderr, "%*c> _loop0_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Token * _literal;
expr_ty elem;
while (
@@ -29640,7 +30083,7 @@ _loop0_139_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_139[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_141[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -29653,14 +30096,14 @@ _loop0_139_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_139_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_141_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_138: expression _loop0_139
+// _gather_140: expression _loop0_141
static asdl_seq *
-_gather_138_rule(Parser *p)
+_gather_140_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -29669,27 +30112,27 @@ _gather_138_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // expression _loop0_139
+ { // expression _loop0_141
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_139"));
+ D(fprintf(stderr, "%*c> _gather_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_141"));
expr_ty elem;
asdl_seq * seq;
if (
(elem = expression_rule(p)) // expression
&&
- (seq = _loop0_139_rule(p)) // _loop0_139
+ (seq = _loop0_141_rule(p)) // _loop0_141
)
{
- D(fprintf(stderr, "%*c+ _gather_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_139"));
+ D(fprintf(stderr, "%*c+ _gather_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_141"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_138[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_139"));
+ D(fprintf(stderr, "%*c%s _gather_140[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_141"));
}
_res = NULL;
done:
@@ -29697,9 +30140,9 @@ _gather_138_rule(Parser *p)
return _res;
}
-// _tmp_140: NEWLINE INDENT
+// _tmp_142: NEWLINE INDENT
static void *
-_tmp_140_rule(Parser *p)
+_tmp_142_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -29713,7 +30156,7 @@ _tmp_140_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
+ D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Token * indent_var;
Token * newline_var;
if (
@@ -29722,12 +30165,12 @@ _tmp_140_rule(Parser *p)
(indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
)
{
- D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
+ D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
_res = _PyPegen_dummy_name(p, newline_var, indent_var);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
}
_res = NULL;
@@ -29736,9 +30179,9 @@ _tmp_140_rule(Parser *p)
return _res;
}
-// _tmp_141: args | expression for_if_clauses
+// _tmp_143: args | expression for_if_clauses
static void *
-_tmp_141_rule(Parser *p)
+_tmp_143_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -29752,18 +30195,18 @@ _tmp_141_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
+ D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
expr_ty args_var;
if (
(args_var = args_rule(p)) // args
)
{
- D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
+ D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
_res = args_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
}
{ // expression for_if_clauses
@@ -29771,7 +30214,7 @@ _tmp_141_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
+ D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
expr_ty expression_var;
asdl_comprehension_seq* for_if_clauses_var;
if (
@@ -29780,12 +30223,12 @@ _tmp_141_rule(Parser *p)
(for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
)
{
- D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
+ D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
_res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
}
_res = NULL;
@@ -29794,9 +30237,9 @@ _tmp_141_rule(Parser *p)
return _res;
}
-// _tmp_142: 'True' | 'False' | 'None'
+// _tmp_144: 'True' | 'False' | 'None'
static void *
-_tmp_142_rule(Parser *p)
+_tmp_144_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -29810,18 +30253,18 @@ _tmp_142_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
+ D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 597)) // token='True'
+ (_keyword = _PyPegen_expect_token(p, 600)) // token='True'
)
{
- D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
+ D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
_res = _keyword;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
}
{ // 'False'
@@ -29829,18 +30272,18 @@ _tmp_142_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
+ D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 599)) // token='False'
+ (_keyword = _PyPegen_expect_token(p, 602)) // token='False'
)
{
- D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
+ D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
_res = _keyword;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
}
{ // 'None'
@@ -29848,18 +30291,18 @@ _tmp_142_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
+ D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 598)) // token='None'
+ (_keyword = _PyPegen_expect_token(p, 601)) // token='None'
)
{
- D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
+ D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
_res = _keyword;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
}
_res = NULL;
@@ -29868,9 +30311,9 @@ _tmp_142_rule(Parser *p)
return _res;
}
-// _tmp_143: NAME '='
+// _tmp_145: NAME '='
static void *
-_tmp_143_rule(Parser *p)
+_tmp_145_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -29884,7 +30327,7 @@ _tmp_143_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='"));
+ D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='"));
Token * _literal;
expr_ty name_var;
if (
@@ -29893,12 +30336,12 @@ _tmp_143_rule(Parser *p)
(_literal = _PyPegen_expect_token(p, 22)) // token='='
)
{
- D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='"));
+ D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='"));
_res = _PyPegen_dummy_name(p, name_var, _literal);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '='"));
}
_res = NULL;
@@ -29907,9 +30350,9 @@ _tmp_143_rule(Parser *p)
return _res;
}
-// _tmp_144: NAME STRING | SOFT_KEYWORD
+// _tmp_146: NAME STRING | SOFT_KEYWORD
static void *
-_tmp_144_rule(Parser *p)
+_tmp_146_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -29923,7 +30366,7 @@ _tmp_144_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
+ D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
expr_ty name_var;
expr_ty string_var;
if (
@@ -29932,12 +30375,12 @@ _tmp_144_rule(Parser *p)
(string_var = _PyPegen_string_token(p)) // STRING
)
{
- D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
+ D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
_res = _PyPegen_dummy_name(p, name_var, string_var);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING"));
}
{ // SOFT_KEYWORD
@@ -29945,18 +30388,18 @@ _tmp_144_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
+ D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
expr_ty soft_keyword_var;
if (
(soft_keyword_var = _PyPegen_soft_keyword_token(p)) // SOFT_KEYWORD
)
{
- D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
+ D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
_res = soft_keyword_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD"));
}
_res = NULL;
@@ -29965,9 +30408,9 @@ _tmp_144_rule(Parser *p)
return _res;
}
-// _tmp_145: 'else' | ':'
+// _tmp_147: 'else' | ':'
static void *
-_tmp_145_rule(Parser *p)
+_tmp_147_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -29981,18 +30424,18 @@ _tmp_145_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'"));
+ D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 630)) // token='else'
+ (_keyword = _PyPegen_expect_token(p, 637)) // token='else'
)
{
- D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'"));
+ D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'"));
_res = _keyword;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else'"));
}
{ // ':'
@@ -30000,18 +30443,18 @@ _tmp_145_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
+ D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 11)) // token=':'
)
{
- D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
+ D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
}
_res = NULL;
@@ -30020,9 +30463,9 @@ _tmp_145_rule(Parser *p)
return _res;
}
-// _tmp_146: '=' | ':='
+// _tmp_148: '=' | ':='
static void *
-_tmp_146_rule(Parser *p)
+_tmp_148_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -30036,18 +30479,18 @@ _tmp_146_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
+ D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 22)) // token='='
)
{
- D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
+ D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
}
{ // ':='
@@ -30055,18 +30498,18 @@ _tmp_146_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
+ D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 53)) // token=':='
)
{
- D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
+ D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
}
_res = NULL;
@@ -30075,9 +30518,9 @@ _tmp_146_rule(Parser *p)
return _res;
}
-// _tmp_147: list | tuple | genexp | 'True' | 'None' | 'False'
+// _tmp_149: list | tuple | genexp | 'True' | 'None' | 'False'
static void *
-_tmp_147_rule(Parser *p)
+_tmp_149_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -30091,18 +30534,18 @@ _tmp_147_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
+ D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
expr_ty list_var;
if (
(list_var = list_rule(p)) // list
)
{
- D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
+ D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
_res = list_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
}
{ // tuple
@@ -30110,18 +30553,18 @@ _tmp_147_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
+ D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
expr_ty tuple_var;
if (
(tuple_var = tuple_rule(p)) // tuple
)
{
- D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
+ D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
_res = tuple_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
}
{ // genexp
@@ -30129,18 +30572,18 @@ _tmp_147_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
+ D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
expr_ty genexp_var;
if (
(genexp_var = genexp_rule(p)) // genexp
)
{
- D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
+ D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
_res = genexp_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
}
{ // 'True'
@@ -30148,18 +30591,18 @@ _tmp_147_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
+ D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 597)) // token='True'
+ (_keyword = _PyPegen_expect_token(p, 600)) // token='True'
)
{
- D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
+ D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
_res = _keyword;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
}
{ // 'None'
@@ -30167,18 +30610,18 @@ _tmp_147_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
+ D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 598)) // token='None'
+ (_keyword = _PyPegen_expect_token(p, 601)) // token='None'
)
{
- D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
+ D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
_res = _keyword;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
}
{ // 'False'
@@ -30186,18 +30629,18 @@ _tmp_147_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
+ D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 599)) // token='False'
+ (_keyword = _PyPegen_expect_token(p, 602)) // token='False'
)
{
- D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
+ D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
_res = _keyword;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
}
_res = NULL;
@@ -30206,9 +30649,9 @@ _tmp_147_rule(Parser *p)
return _res;
}
-// _tmp_148: '=' | ':='
+// _tmp_150: '=' | ':='
static void *
-_tmp_148_rule(Parser *p)
+_tmp_150_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -30222,18 +30665,18 @@ _tmp_148_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
+ D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 22)) // token='='
)
{
- D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
+ D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
}
{ // ':='
@@ -30241,18 +30684,18 @@ _tmp_148_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
+ D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 53)) // token=':='
)
{
- D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
+ D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
}
_res = NULL;
@@ -30261,9 +30704,9 @@ _tmp_148_rule(Parser *p)
return _res;
}
-// _loop0_149: star_named_expressions
+// _loop0_151: star_named_expressions
static asdl_seq *
-_loop0_149_rule(Parser *p)
+_loop0_151_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -30287,7 +30730,7 @@ _loop0_149_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
+ D(fprintf(stderr, "%*c> _loop0_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
asdl_expr_seq* star_named_expressions_var;
while (
(star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
@@ -30309,7 +30752,7 @@ _loop0_149_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_151[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -30322,14 +30765,14 @@ _loop0_149_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_151_type, _seq);
D(p->level--);
return _seq;
}
-// _loop0_150: (star_targets '=')
+// _loop0_152: (star_targets '=')
static asdl_seq *
-_loop0_150_rule(Parser *p)
+_loop0_152_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -30353,13 +30796,13 @@ _loop0_150_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
- void *_tmp_199_var;
+ D(fprintf(stderr, "%*c> _loop0_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
+ void *_tmp_206_var;
while (
- (_tmp_199_var = _tmp_199_rule(p)) // star_targets '='
+ (_tmp_206_var = _tmp_206_rule(p)) // star_targets '='
)
{
- _res = _tmp_199_var;
+ _res = _tmp_206_var;
if (_n == _children_capacity) {
_children_capacity *= 2;
void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -30375,7 +30818,7 @@ _loop0_150_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_150[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_152[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -30388,14 +30831,14 @@ _loop0_150_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_150_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_152_type, _seq);
D(p->level--);
return _seq;
}
-// _loop0_151: (star_targets '=')
+// _loop0_153: (star_targets '=')
static asdl_seq *
-_loop0_151_rule(Parser *p)
+_loop0_153_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -30419,13 +30862,13 @@ _loop0_151_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
- void *_tmp_200_var;
+ D(fprintf(stderr, "%*c> _loop0_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
+ void *_tmp_207_var;
while (
- (_tmp_200_var = _tmp_200_rule(p)) // star_targets '='
+ (_tmp_207_var = _tmp_207_rule(p)) // star_targets '='
)
{
- _res = _tmp_200_var;
+ _res = _tmp_207_var;
if (_n == _children_capacity) {
_children_capacity *= 2;
void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -30441,7 +30884,7 @@ _loop0_151_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_151[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_153[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -30454,14 +30897,14 @@ _loop0_151_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_151_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_153_type, _seq);
D(p->level--);
return _seq;
}
-// _tmp_152: yield_expr | star_expressions
+// _tmp_154: yield_expr | star_expressions
static void *
-_tmp_152_rule(Parser *p)
+_tmp_154_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -30475,18 +30918,18 @@ _tmp_152_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
+ D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
expr_ty yield_expr_var;
if (
(yield_expr_var = yield_expr_rule(p)) // yield_expr
)
{
- D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
+ D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
_res = yield_expr_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
}
{ // star_expressions
@@ -30494,18 +30937,18 @@ _tmp_152_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
+ D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
expr_ty star_expressions_var;
if (
(star_expressions_var = star_expressions_rule(p)) // star_expressions
)
{
- D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
+ D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
_res = star_expressions_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
}
_res = NULL;
@@ -30514,9 +30957,9 @@ _tmp_152_rule(Parser *p)
return _res;
}
-// _tmp_153: '[' | '(' | '{'
+// _tmp_155: '[' | '(' | '{'
static void *
-_tmp_153_rule(Parser *p)
+_tmp_155_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -30530,18 +30973,18 @@ _tmp_153_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
+ D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 9)) // token='['
)
{
- D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
+ D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
}
{ // '('
@@ -30549,18 +30992,18 @@ _tmp_153_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
+ D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 7)) // token='('
)
{
- D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
+ D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
}
{ // '{'
@@ -30568,18 +31011,18 @@ _tmp_153_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
+ D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 25)) // token='{'
)
{
- D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
+ D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
}
_res = NULL;
@@ -30588,9 +31031,9 @@ _tmp_153_rule(Parser *p)
return _res;
}
-// _tmp_154: '[' | '{'
+// _tmp_156: '[' | '{'
static void *
-_tmp_154_rule(Parser *p)
+_tmp_156_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -30604,18 +31047,18 @@ _tmp_154_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
+ D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 9)) // token='['
)
{
- D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
+ D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
}
{ // '{'
@@ -30623,18 +31066,18 @@ _tmp_154_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
+ D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 25)) // token='{'
)
{
- D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
+ D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
}
_res = NULL;
@@ -30643,9 +31086,9 @@ _tmp_154_rule(Parser *p)
return _res;
}
-// _tmp_155: '[' | '{'
+// _tmp_157: '[' | '{'
static void *
-_tmp_155_rule(Parser *p)
+_tmp_157_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -30659,18 +31102,18 @@ _tmp_155_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
+ D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 9)) // token='['
)
{
- D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
+ D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
}
{ // '{'
@@ -30678,18 +31121,18 @@ _tmp_155_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
+ D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 25)) // token='{'
)
{
- D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
+ D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
}
_res = NULL;
@@ -30698,9 +31141,9 @@ _tmp_155_rule(Parser *p)
return _res;
}
-// _loop0_156: param_no_default
+// _loop0_158: param_no_default
static asdl_seq *
-_loop0_156_rule(Parser *p)
+_loop0_158_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -30724,7 +31167,7 @@ _loop0_156_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
+ D(fprintf(stderr, "%*c> _loop0_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
arg_ty param_no_default_var;
while (
(param_no_default_var = param_no_default_rule(p)) // param_no_default
@@ -30746,7 +31189,7 @@ _loop0_156_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_156[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_158[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -30759,14 +31202,14 @@ _loop0_156_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_156_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_158_type, _seq);
D(p->level--);
return _seq;
}
-// _loop0_157: param_no_default
+// _loop0_159: param_no_default
static asdl_seq *
-_loop0_157_rule(Parser *p)
+_loop0_159_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -30790,7 +31233,7 @@ _loop0_157_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
+ D(fprintf(stderr, "%*c> _loop0_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
arg_ty param_no_default_var;
while (
(param_no_default_var = param_no_default_rule(p)) // param_no_default
@@ -30812,7 +31255,7 @@ _loop0_157_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_157[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_159[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -30825,14 +31268,14 @@ _loop0_157_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_157_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_159_type, _seq);
D(p->level--);
return _seq;
}
-// _loop1_158: param_no_default
+// _loop1_160: param_no_default
static asdl_seq *
-_loop1_158_rule(Parser *p)
+_loop1_160_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -30856,7 +31299,7 @@ _loop1_158_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop1_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
+ D(fprintf(stderr, "%*c> _loop1_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
arg_ty param_no_default_var;
while (
(param_no_default_var = param_no_default_rule(p)) // param_no_default
@@ -30878,7 +31321,7 @@ _loop1_158_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_158[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop1_160[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
}
if (_n == 0 || p->error_indicator) {
@@ -30896,14 +31339,14 @@ _loop1_158_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_158_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_160_type, _seq);
D(p->level--);
return _seq;
}
-// _loop1_159: param_with_default
+// _loop1_161: param_with_default
static asdl_seq *
-_loop1_159_rule(Parser *p)
+_loop1_161_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -30927,7 +31370,7 @@ _loop1_159_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop1_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
+ D(fprintf(stderr, "%*c> _loop1_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
NameDefaultPair* param_with_default_var;
while (
(param_with_default_var = param_with_default_rule(p)) // param_with_default
@@ -30949,7 +31392,7 @@ _loop1_159_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_159[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop1_161[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
}
if (_n == 0 || p->error_indicator) {
@@ -30967,14 +31410,14 @@ _loop1_159_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_159_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_161_type, _seq);
D(p->level--);
return _seq;
}
-// _loop0_160: lambda_param_no_default
+// _loop0_162: lambda_param_no_default
static asdl_seq *
-_loop0_160_rule(Parser *p)
+_loop0_162_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -30998,7 +31441,7 @@ _loop0_160_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
+ D(fprintf(stderr, "%*c> _loop0_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
arg_ty lambda_param_no_default_var;
while (
(lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
@@ -31020,7 +31463,7 @@ _loop0_160_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_160[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_162[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -31033,14 +31476,14 @@ _loop0_160_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_160_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_162_type, _seq);
D(p->level--);
return _seq;
}
-// _loop0_161: lambda_param_no_default
+// _loop0_163: lambda_param_no_default
static asdl_seq *
-_loop0_161_rule(Parser *p)
+_loop0_163_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -31064,7 +31507,7 @@ _loop0_161_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
+ D(fprintf(stderr, "%*c> _loop0_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
arg_ty lambda_param_no_default_var;
while (
(lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
@@ -31086,7 +31529,7 @@ _loop0_161_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_161[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_163[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -31099,14 +31542,14 @@ _loop0_161_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_161_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_163_type, _seq);
D(p->level--);
return _seq;
}
-// _loop0_163: ',' lambda_param
+// _loop0_165: ',' lambda_param
static asdl_seq *
-_loop0_163_rule(Parser *p)
+_loop0_165_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -31130,7 +31573,7 @@ _loop0_163_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' lambda_param"));
+ D(fprintf(stderr, "%*c> _loop0_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' lambda_param"));
Token * _literal;
arg_ty elem;
while (
@@ -31161,7 +31604,7 @@ _loop0_163_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_163[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_165[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' lambda_param"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -31174,14 +31617,14 @@ _loop0_163_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_163_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_165_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_162: lambda_param _loop0_163
+// _gather_164: lambda_param _loop0_165
static asdl_seq *
-_gather_162_rule(Parser *p)
+_gather_164_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -31190,27 +31633,27 @@ _gather_162_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // lambda_param _loop0_163
+ { // lambda_param _loop0_165
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_163"));
+ D(fprintf(stderr, "%*c> _gather_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_165"));
arg_ty elem;
asdl_seq * seq;
if (
(elem = lambda_param_rule(p)) // lambda_param
&&
- (seq = _loop0_163_rule(p)) // _loop0_163
+ (seq = _loop0_165_rule(p)) // _loop0_165
)
{
- D(fprintf(stderr, "%*c+ _gather_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_163"));
+ D(fprintf(stderr, "%*c+ _gather_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_165"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_162[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param _loop0_163"));
+ D(fprintf(stderr, "%*c%s _gather_164[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param _loop0_165"));
}
_res = NULL;
done:
@@ -31218,9 +31661,9 @@ _gather_162_rule(Parser *p)
return _res;
}
-// _loop1_164: lambda_param_with_default
+// _loop1_166: lambda_param_with_default
static asdl_seq *
-_loop1_164_rule(Parser *p)
+_loop1_166_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -31244,7 +31687,7 @@ _loop1_164_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop1_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
+ D(fprintf(stderr, "%*c> _loop1_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
NameDefaultPair* lambda_param_with_default_var;
while (
(lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
@@ -31266,7 +31709,7 @@ _loop1_164_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_164[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop1_166[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
}
if (_n == 0 || p->error_indicator) {
@@ -31284,14 +31727,14 @@ _loop1_164_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_164_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_166_type, _seq);
D(p->level--);
return _seq;
}
-// _tmp_165: ')' | ',' (')' | '**')
+// _tmp_167: ')' | ',' (')' | '**')
static void *
-_tmp_165_rule(Parser *p)
+_tmp_167_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -31305,18 +31748,18 @@ _tmp_165_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
+ D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 8)) // token=')'
)
{
- D(fprintf(stderr, "%*c+ _tmp_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
+ D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_165[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
}
{ // ',' (')' | '**')
@@ -31324,21 +31767,21 @@ _tmp_165_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
+ D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Token * _literal;
- void *_tmp_201_var;
+ void *_tmp_208_var;
if (
(_literal = _PyPegen_expect_token(p, 12)) // token=','
&&
- (_tmp_201_var = _tmp_201_rule(p)) // ')' | '**'
+ (_tmp_208_var = _tmp_208_rule(p)) // ')' | '**'
)
{
- D(fprintf(stderr, "%*c+ _tmp_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
- _res = _PyPegen_dummy_name(p, _literal, _tmp_201_var);
+ D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
+ _res = _PyPegen_dummy_name(p, _literal, _tmp_208_var);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_165[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
}
_res = NULL;
@@ -31347,9 +31790,9 @@ _tmp_165_rule(Parser *p)
return _res;
}
-// _tmp_166: ':' | ',' (':' | '**')
+// _tmp_168: ':' | ',' (':' | '**')
static void *
-_tmp_166_rule(Parser *p)
+_tmp_168_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -31363,18 +31806,18 @@ _tmp_166_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
+ D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 11)) // token=':'
)
{
- D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
+ D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
}
{ // ',' (':' | '**')
@@ -31382,21 +31825,21 @@ _tmp_166_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
+ D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Token * _literal;
- void *_tmp_202_var;
+ void *_tmp_209_var;
if (
(_literal = _PyPegen_expect_token(p, 12)) // token=','
&&
- (_tmp_202_var = _tmp_202_rule(p)) // ':' | '**'
+ (_tmp_209_var = _tmp_209_rule(p)) // ':' | '**'
)
{
- D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
- _res = _PyPegen_dummy_name(p, _literal, _tmp_202_var);
+ D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
+ _res = _PyPegen_dummy_name(p, _literal, _tmp_209_var);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
}
_res = NULL;
@@ -31405,9 +31848,9 @@ _tmp_166_rule(Parser *p)
return _res;
}
-// _tmp_167: ',' | ')' | ':'
+// _tmp_169: ',' | ')' | ':'
static void *
-_tmp_167_rule(Parser *p)
+_tmp_169_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -31421,18 +31864,18 @@ _tmp_167_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
+ D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 12)) // token=','
)
{
- D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
+ D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
}
{ // ')'
@@ -31440,18 +31883,18 @@ _tmp_167_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
+ D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 8)) // token=')'
)
{
- D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
+ D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
}
{ // ':'
@@ -31459,18 +31902,18 @@ _tmp_167_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
+ D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 11)) // token=':'
)
{
- D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
+ D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
}
_res = NULL;
@@ -31479,9 +31922,9 @@ _tmp_167_rule(Parser *p)
return _res;
}
-// _loop0_169: ',' (expression ['as' star_target])
+// _loop0_171: ',' (expression ['as' star_target])
static asdl_seq *
-_loop0_169_rule(Parser *p)
+_loop0_171_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -31505,13 +31948,13 @@ _loop0_169_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
+ D(fprintf(stderr, "%*c> _loop0_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
Token * _literal;
void *elem;
while (
(_literal = _PyPegen_expect_token(p, 12)) // token=','
&&
- (elem = _tmp_203_rule(p)) // expression ['as' star_target]
+ (elem = _tmp_210_rule(p)) // expression ['as' star_target]
)
{
_res = elem;
@@ -31536,7 +31979,7 @@ _loop0_169_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_169[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_171[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -31549,14 +31992,14 @@ _loop0_169_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_169_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_171_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_168: (expression ['as' star_target]) _loop0_169
+// _gather_170: (expression ['as' star_target]) _loop0_171
static asdl_seq *
-_gather_168_rule(Parser *p)
+_gather_170_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -31565,27 +32008,27 @@ _gather_168_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // (expression ['as' star_target]) _loop0_169
+ { // (expression ['as' star_target]) _loop0_171
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_169"));
+ D(fprintf(stderr, "%*c> _gather_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_171"));
void *elem;
asdl_seq * seq;
if (
- (elem = _tmp_203_rule(p)) // expression ['as' star_target]
+ (elem = _tmp_210_rule(p)) // expression ['as' star_target]
&&
- (seq = _loop0_169_rule(p)) // _loop0_169
+ (seq = _loop0_171_rule(p)) // _loop0_171
)
{
- D(fprintf(stderr, "%*c+ _gather_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_169"));
+ D(fprintf(stderr, "%*c+ _gather_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_171"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_168[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_169"));
+ D(fprintf(stderr, "%*c%s _gather_170[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_171"));
}
_res = NULL;
done:
@@ -31593,9 +32036,9 @@ _gather_168_rule(Parser *p)
return _res;
}
-// _loop0_171: ',' (expressions ['as' star_target])
+// _loop0_173: ',' (expressions ['as' star_target])
static asdl_seq *
-_loop0_171_rule(Parser *p)
+_loop0_173_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -31619,13 +32062,13 @@ _loop0_171_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
+ D(fprintf(stderr, "%*c> _loop0_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
Token * _literal;
void *elem;
while (
(_literal = _PyPegen_expect_token(p, 12)) // token=','
&&
- (elem = _tmp_204_rule(p)) // expressions ['as' star_target]
+ (elem = _tmp_211_rule(p)) // expressions ['as' star_target]
)
{
_res = elem;
@@ -31650,7 +32093,7 @@ _loop0_171_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_171[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_173[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -31663,14 +32106,14 @@ _loop0_171_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_171_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_173_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_170: (expressions ['as' star_target]) _loop0_171
+// _gather_172: (expressions ['as' star_target]) _loop0_173
static asdl_seq *
-_gather_170_rule(Parser *p)
+_gather_172_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -31679,27 +32122,27 @@ _gather_170_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // (expressions ['as' star_target]) _loop0_171
+ { // (expressions ['as' star_target]) _loop0_173
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_171"));
+ D(fprintf(stderr, "%*c> _gather_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_173"));
void *elem;
asdl_seq * seq;
if (
- (elem = _tmp_204_rule(p)) // expressions ['as' star_target]
+ (elem = _tmp_211_rule(p)) // expressions ['as' star_target]
&&
- (seq = _loop0_171_rule(p)) // _loop0_171
+ (seq = _loop0_173_rule(p)) // _loop0_173
)
{
- D(fprintf(stderr, "%*c+ _gather_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_171"));
+ D(fprintf(stderr, "%*c+ _gather_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_173"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_170[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_171"));
+ D(fprintf(stderr, "%*c%s _gather_172[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_173"));
}
_res = NULL;
done:
@@ -31707,9 +32150,9 @@ _gather_170_rule(Parser *p)
return _res;
}
-// _loop0_173: ',' (expression ['as' star_target])
+// _loop0_175: ',' (expression ['as' star_target])
static asdl_seq *
-_loop0_173_rule(Parser *p)
+_loop0_175_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -31733,13 +32176,13 @@ _loop0_173_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
+ D(fprintf(stderr, "%*c> _loop0_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
Token * _literal;
void *elem;
while (
(_literal = _PyPegen_expect_token(p, 12)) // token=','
&&
- (elem = _tmp_205_rule(p)) // expression ['as' star_target]
+ (elem = _tmp_212_rule(p)) // expression ['as' star_target]
)
{
_res = elem;
@@ -31764,7 +32207,7 @@ _loop0_173_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_173[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_175[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -31777,14 +32220,14 @@ _loop0_173_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_173_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_175_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_172: (expression ['as' star_target]) _loop0_173
+// _gather_174: (expression ['as' star_target]) _loop0_175
static asdl_seq *
-_gather_172_rule(Parser *p)
+_gather_174_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -31793,27 +32236,27 @@ _gather_172_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // (expression ['as' star_target]) _loop0_173
+ { // (expression ['as' star_target]) _loop0_175
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_173"));
+ D(fprintf(stderr, "%*c> _gather_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_175"));
void *elem;
asdl_seq * seq;
if (
- (elem = _tmp_205_rule(p)) // expression ['as' star_target]
+ (elem = _tmp_212_rule(p)) // expression ['as' star_target]
&&
- (seq = _loop0_173_rule(p)) // _loop0_173
+ (seq = _loop0_175_rule(p)) // _loop0_175
)
{
- D(fprintf(stderr, "%*c+ _gather_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_173"));
+ D(fprintf(stderr, "%*c+ _gather_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_175"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_172[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_173"));
+ D(fprintf(stderr, "%*c%s _gather_174[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_175"));
}
_res = NULL;
done:
@@ -31821,9 +32264,9 @@ _gather_172_rule(Parser *p)
return _res;
}
-// _loop0_175: ',' (expressions ['as' star_target])
+// _loop0_177: ',' (expressions ['as' star_target])
static asdl_seq *
-_loop0_175_rule(Parser *p)
+_loop0_177_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -31847,13 +32290,13 @@ _loop0_175_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
+ D(fprintf(stderr, "%*c> _loop0_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
Token * _literal;
void *elem;
while (
(_literal = _PyPegen_expect_token(p, 12)) // token=','
&&
- (elem = _tmp_206_rule(p)) // expressions ['as' star_target]
+ (elem = _tmp_213_rule(p)) // expressions ['as' star_target]
)
{
_res = elem;
@@ -31878,7 +32321,7 @@ _loop0_175_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_175[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_177[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -31891,14 +32334,14 @@ _loop0_175_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_175_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_177_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_174: (expressions ['as' star_target]) _loop0_175
+// _gather_176: (expressions ['as' star_target]) _loop0_177
static asdl_seq *
-_gather_174_rule(Parser *p)
+_gather_176_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -31907,27 +32350,27 @@ _gather_174_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // (expressions ['as' star_target]) _loop0_175
+ { // (expressions ['as' star_target]) _loop0_177
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_175"));
+ D(fprintf(stderr, "%*c> _gather_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_177"));
void *elem;
asdl_seq * seq;
if (
- (elem = _tmp_206_rule(p)) // expressions ['as' star_target]
+ (elem = _tmp_213_rule(p)) // expressions ['as' star_target]
&&
- (seq = _loop0_175_rule(p)) // _loop0_175
+ (seq = _loop0_177_rule(p)) // _loop0_177
)
{
- D(fprintf(stderr, "%*c+ _gather_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_175"));
+ D(fprintf(stderr, "%*c+ _gather_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_177"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_174[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_175"));
+ D(fprintf(stderr, "%*c%s _gather_176[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_177"));
}
_res = NULL;
done:
@@ -31935,9 +32378,9 @@ _gather_174_rule(Parser *p)
return _res;
}
-// _tmp_176: 'except' | 'finally'
+// _tmp_178: 'except' | 'finally'
static void *
-_tmp_176_rule(Parser *p)
+_tmp_178_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -31951,18 +32394,18 @@ _tmp_176_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'"));
+ D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 623)) // token='except'
+ (_keyword = _PyPegen_expect_token(p, 629)) // token='except'
)
{
- D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'"));
+ D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'"));
_res = _keyword;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'"));
}
{ // 'finally'
@@ -31970,18 +32413,18 @@ _tmp_176_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'"));
+ D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'"));
Token * _keyword;
if (
- (_keyword = _PyPegen_expect_token(p, 620)) // token='finally'
+ (_keyword = _PyPegen_expect_token(p, 625)) // token='finally'
)
{
- D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'"));
+ D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'"));
_res = _keyword;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'"));
}
_res = NULL;
@@ -31990,9 +32433,196 @@ _tmp_176_rule(Parser *p)
return _res;
}
-// _tmp_177: 'as' NAME
+// _loop0_179: block
+static asdl_seq *
+_loop0_179_rule(Parser *p)
+{
+ D(p->level++);
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ D(p->level--);
+ return NULL;
+ }
+ Py_ssize_t _children_capacity = 1;
+ Py_ssize_t _n = 0;
+ { // block
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "block"));
+ asdl_stmt_seq* block_var;
+ while (
+ (block_var = block_rule(p)) // block
+ )
+ {
+ _res = block_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ D(p->level--);
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_179[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "block"));
+ }
+ asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ D(p->level--);
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_179_type, _seq);
+ D(p->level--);
+ return _seq;
+}
+
+// _tmp_180: (except_block+ except_star_block) | (except_star_block+ except_block)
+static void *
+_tmp_180_rule(Parser *p)
+{
+ D(p->level++);
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // (except_block+ except_star_block)
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(except_block+ except_star_block)"));
+ void *_tmp_214_var;
+ if (
+ (_tmp_214_var = _tmp_214_rule(p)) // except_block+ except_star_block
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(except_block+ except_star_block)"));
+ _res = _tmp_214_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(except_block+ except_star_block)"));
+ }
+ { // (except_star_block+ except_block)
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(except_star_block+ except_block)"));
+ void *_tmp_215_var;
+ if (
+ (_tmp_215_var = _tmp_215_rule(p)) // except_star_block+ except_block
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(except_star_block+ except_block)"));
+ _res = _tmp_215_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(except_star_block+ except_block)"));
+ }
+ _res = NULL;
+ done:
+ D(p->level--);
+ return _res;
+}
+
+// _loop0_181: block
+static asdl_seq *
+_loop0_181_rule(Parser *p)
+{
+ D(p->level++);
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ D(p->level--);
+ return NULL;
+ }
+ Py_ssize_t _children_capacity = 1;
+ Py_ssize_t _n = 0;
+ { // block
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "block"));
+ asdl_stmt_seq* block_var;
+ while (
+ (block_var = block_rule(p)) // block
+ )
+ {
+ _res = block_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ D(p->level--);
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_181[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "block"));
+ }
+ asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ D(p->level--);
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_181_type, _seq);
+ D(p->level--);
+ return _seq;
+}
+
+// _tmp_182: 'as' NAME
static void *
-_tmp_177_rule(Parser *p)
+_tmp_182_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32006,21 +32636,21 @@ _tmp_177_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+ D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Token * _keyword;
expr_ty name_var;
if (
- (_keyword = _PyPegen_expect_token(p, 625)) // token='as'
+ (_keyword = _PyPegen_expect_token(p, 632)) // token='as'
&&
(name_var = _PyPegen_name_token(p)) // NAME
)
{
- D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+ D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
_res = _PyPegen_dummy_name(p, _keyword, name_var);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
}
_res = NULL;
@@ -32029,9 +32659,9 @@ _tmp_177_rule(Parser *p)
return _res;
}
-// _tmp_178: 'as' NAME
+// _tmp_183: 'as' NAME
static void *
-_tmp_178_rule(Parser *p)
+_tmp_183_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32045,21 +32675,21 @@ _tmp_178_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+ D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Token * _keyword;
expr_ty name_var;
if (
- (_keyword = _PyPegen_expect_token(p, 625)) // token='as'
+ (_keyword = _PyPegen_expect_token(p, 632)) // token='as'
&&
(name_var = _PyPegen_name_token(p)) // NAME
)
{
- D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+ D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
_res = _PyPegen_dummy_name(p, _keyword, name_var);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
}
_res = NULL;
@@ -32068,9 +32698,64 @@ _tmp_178_rule(Parser *p)
return _res;
}
-// _tmp_179: 'as' NAME
+// _tmp_184: NEWLINE | ':'
static void *
-_tmp_179_rule(Parser *p)
+_tmp_184_rule(Parser *p)
+{
+ D(p->level++);
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // NEWLINE
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
+ Token * newline_var;
+ if (
+ (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
+ _res = newline_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
+ }
+ { // ':'
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
+ }
+ _res = NULL;
+ done:
+ D(p->level--);
+ return _res;
+}
+
+// _tmp_185: 'as' NAME
+static void *
+_tmp_185_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32084,21 +32769,21 @@ _tmp_179_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+ D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Token * _keyword;
expr_ty name_var;
if (
- (_keyword = _PyPegen_expect_token(p, 625)) // token='as'
+ (_keyword = _PyPegen_expect_token(p, 632)) // token='as'
&&
(name_var = _PyPegen_name_token(p)) // NAME
)
{
- D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+ D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
_res = _PyPegen_dummy_name(p, _keyword, name_var);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
}
_res = NULL;
@@ -32107,9 +32792,48 @@ _tmp_179_rule(Parser *p)
return _res;
}
-// _tmp_180: positional_patterns ','
+// _tmp_186: 'as' NAME
static void *
-_tmp_180_rule(Parser *p)
+_tmp_186_rule(Parser *p)
+{
+ D(p->level++);
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // 'as' NAME
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+ Token * _keyword;
+ expr_ty name_var;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 632)) // token='as'
+ &&
+ (name_var = _PyPegen_name_token(p)) // NAME
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+ _res = _PyPegen_dummy_name(p, _keyword, name_var);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
+ }
+ _res = NULL;
+ done:
+ D(p->level--);
+ return _res;
+}
+
+// _tmp_187: positional_patterns ','
+static void *
+_tmp_187_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32123,7 +32847,7 @@ _tmp_180_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
+ D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
Token * _literal;
asdl_pattern_seq* positional_patterns_var;
if (
@@ -32132,12 +32856,12 @@ _tmp_180_rule(Parser *p)
(_literal = _PyPegen_expect_token(p, 12)) // token=','
)
{
- D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
+ D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
_res = _PyPegen_dummy_name(p, positional_patterns_var, _literal);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "positional_patterns ','"));
}
_res = NULL;
@@ -32146,9 +32870,9 @@ _tmp_180_rule(Parser *p)
return _res;
}
-// _tmp_181: '->' expression
+// _tmp_188: '->' expression
static void *
-_tmp_181_rule(Parser *p)
+_tmp_188_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32162,7 +32886,7 @@ _tmp_181_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
+ D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Token * _literal;
expr_ty expression_var;
if (
@@ -32171,12 +32895,12 @@ _tmp_181_rule(Parser *p)
(expression_var = expression_rule(p)) // expression
)
{
- D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
+ D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
_res = _PyPegen_dummy_name(p, _literal, expression_var);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
}
_res = NULL;
@@ -32185,9 +32909,9 @@ _tmp_181_rule(Parser *p)
return _res;
}
-// _tmp_182: '(' arguments? ')'
+// _tmp_189: '(' arguments? ')'
static void *
-_tmp_182_rule(Parser *p)
+_tmp_189_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32201,7 +32925,7 @@ _tmp_182_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
+ D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Token * _literal;
Token * _literal_1;
void *_opt_var;
@@ -32214,12 +32938,12 @@ _tmp_182_rule(Parser *p)
(_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
)
{
- D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
+ D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
_res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
}
_res = NULL;
@@ -32228,9 +32952,9 @@ _tmp_182_rule(Parser *p)
return _res;
}
-// _loop0_184: ',' double_starred_kvpair
+// _loop0_191: ',' double_starred_kvpair
static asdl_seq *
-_loop0_184_rule(Parser *p)
+_loop0_191_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32254,7 +32978,7 @@ _loop0_184_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _loop0_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
+ D(fprintf(stderr, "%*c> _loop0_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Token * _literal;
KeyValuePair* elem;
while (
@@ -32285,7 +33009,7 @@ _loop0_184_rule(Parser *p)
_mark = p->mark;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_184[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _loop0_191[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
}
asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -32298,14 +33022,14 @@ _loop0_184_rule(Parser *p)
}
for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_184_type, _seq);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_191_type, _seq);
D(p->level--);
return _seq;
}
-// _gather_183: double_starred_kvpair _loop0_184
+// _gather_190: double_starred_kvpair _loop0_191
static asdl_seq *
-_gather_183_rule(Parser *p)
+_gather_190_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32314,27 +33038,27 @@ _gather_183_rule(Parser *p)
}
asdl_seq * _res = NULL;
int _mark = p->mark;
- { // double_starred_kvpair _loop0_184
+ { // double_starred_kvpair _loop0_191
if (p->error_indicator) {
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _gather_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_184"));
+ D(fprintf(stderr, "%*c> _gather_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_191"));
KeyValuePair* elem;
asdl_seq * seq;
if (
(elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
&&
- (seq = _loop0_184_rule(p)) // _loop0_184
+ (seq = _loop0_191_rule(p)) // _loop0_191
)
{
- D(fprintf(stderr, "%*c+ _gather_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_184"));
+ D(fprintf(stderr, "%*c+ _gather_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_191"));
_res = _PyPegen_seq_insert_in_front(p, elem, seq);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_183[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_184"));
+ D(fprintf(stderr, "%*c%s _gather_190[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_191"));
}
_res = NULL;
done:
@@ -32342,9 +33066,9 @@ _gather_183_rule(Parser *p)
return _res;
}
-// _tmp_185: '}' | ','
+// _tmp_192: '}' | ','
static void *
-_tmp_185_rule(Parser *p)
+_tmp_192_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32358,18 +33082,18 @@ _tmp_185_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
+ D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 26)) // token='}'
)
{
- D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
+ D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
}
{ // ','
@@ -32377,18 +33101,18 @@ _tmp_185_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
+ D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 12)) // token=','
)
{
- D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
+ D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
}
_res = NULL;
@@ -32397,9 +33121,9 @@ _tmp_185_rule(Parser *p)
return _res;
}
-// _tmp_186: star_targets '='
+// _tmp_193: star_targets '='
static void *
-_tmp_186_rule(Parser *p)
+_tmp_193_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32413,7 +33137,7 @@ _tmp_186_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
+ D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Token * _literal;
expr_ty z;
if (
@@ -32422,7 +33146,7 @@ _tmp_186_rule(Parser *p)
(_literal = _PyPegen_expect_token(p, 22)) // token='='
)
{
- D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
+ D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
_res = z;
if (_res == NULL && PyErr_Occurred()) {
p->error_indicator = 1;
@@ -32432,7 +33156,7 @@ _tmp_186_rule(Parser *p)
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
}
_res = NULL;
@@ -32441,9 +33165,9 @@ _tmp_186_rule(Parser *p)
return _res;
}
-// _tmp_187: '.' | '...'
+// _tmp_194: '.' | '...'
static void *
-_tmp_187_rule(Parser *p)
+_tmp_194_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32457,18 +33181,18 @@ _tmp_187_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
+ D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 23)) // token='.'
)
{
- D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
+ D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
}
{ // '...'
@@ -32476,18 +33200,18 @@ _tmp_187_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
+ D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 52)) // token='...'
)
{
- D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
+ D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
}
_res = NULL;
@@ -32496,9 +33220,9 @@ _tmp_187_rule(Parser *p)
return _res;
}
-// _tmp_188: '.' | '...'
+// _tmp_195: '.' | '...'
static void *
-_tmp_188_rule(Parser *p)
+_tmp_195_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32512,18 +33236,18 @@ _tmp_188_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
+ D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 23)) // token='.'
)
{
- D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
+ D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
}
{ // '...'
@@ -32531,18 +33255,18 @@ _tmp_188_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
+ D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 52)) // token='...'
)
{
- D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
+ D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
}
_res = NULL;
@@ -32551,9 +33275,9 @@ _tmp_188_rule(Parser *p)
return _res;
}
-// _tmp_189: '@' named_expression NEWLINE
+// _tmp_196: '@' named_expression NEWLINE
static void *
-_tmp_189_rule(Parser *p)
+_tmp_196_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32567,7 +33291,7 @@ _tmp_189_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
+ D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Token * _literal;
expr_ty f;
Token * newline_var;
@@ -32579,7 +33303,7 @@ _tmp_189_rule(Parser *p)
(newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
)
{
- D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
+ D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
_res = f;
if (_res == NULL && PyErr_Occurred()) {
p->error_indicator = 1;
@@ -32589,7 +33313,7 @@ _tmp_189_rule(Parser *p)
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
}
_res = NULL;
@@ -32598,9 +33322,9 @@ _tmp_189_rule(Parser *p)
return _res;
}
-// _tmp_190: ',' expression
+// _tmp_197: ',' expression
static void *
-_tmp_190_rule(Parser *p)
+_tmp_197_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32614,7 +33338,7 @@ _tmp_190_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
+ D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Token * _literal;
expr_ty c;
if (
@@ -32623,7 +33347,7 @@ _tmp_190_rule(Parser *p)
(c = expression_rule(p)) // expression
)
{
- D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
+ D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
_res = c;
if (_res == NULL && PyErr_Occurred()) {
p->error_indicator = 1;
@@ -32633,7 +33357,7 @@ _tmp_190_rule(Parser *p)
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
}
_res = NULL;
@@ -32642,9 +33366,9 @@ _tmp_190_rule(Parser *p)
return _res;
}
-// _tmp_191: ',' star_expression
+// _tmp_198: ',' star_expression
static void *
-_tmp_191_rule(Parser *p)
+_tmp_198_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32658,7 +33382,7 @@ _tmp_191_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
+ D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Token * _literal;
expr_ty c;
if (
@@ -32667,7 +33391,7 @@ _tmp_191_rule(Parser *p)
(c = star_expression_rule(p)) // star_expression
)
{
- D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
+ D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
_res = c;
if (_res == NULL && PyErr_Occurred()) {
p->error_indicator = 1;
@@ -32677,7 +33401,7 @@ _tmp_191_rule(Parser *p)
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
}
_res = NULL;
@@ -32686,9 +33410,9 @@ _tmp_191_rule(Parser *p)
return _res;
}
-// _tmp_192: 'or' conjunction
+// _tmp_199: 'or' conjunction
static void *
-_tmp_192_rule(Parser *p)
+_tmp_199_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32702,16 +33426,16 @@ _tmp_192_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
+ D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Token * _keyword;
expr_ty c;
if (
- (_keyword = _PyPegen_expect_token(p, 571)) // token='or'
+ (_keyword = _PyPegen_expect_token(p, 574)) // token='or'
&&
(c = conjunction_rule(p)) // conjunction
)
{
- D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
+ D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
_res = c;
if (_res == NULL && PyErr_Occurred()) {
p->error_indicator = 1;
@@ -32721,7 +33445,7 @@ _tmp_192_rule(Parser *p)
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
}
_res = NULL;
@@ -32730,9 +33454,9 @@ _tmp_192_rule(Parser *p)
return _res;
}
-// _tmp_193: 'and' inversion
+// _tmp_200: 'and' inversion
static void *
-_tmp_193_rule(Parser *p)
+_tmp_200_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32746,16 +33470,16 @@ _tmp_193_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
+ D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Token * _keyword;
expr_ty c;
if (
- (_keyword = _PyPegen_expect_token(p, 572)) // token='and'
+ (_keyword = _PyPegen_expect_token(p, 575)) // token='and'
&&
(c = inversion_rule(p)) // inversion
)
{
- D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
+ D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
_res = c;
if (_res == NULL && PyErr_Occurred()) {
p->error_indicator = 1;
@@ -32765,7 +33489,7 @@ _tmp_193_rule(Parser *p)
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
}
_res = NULL;
@@ -32774,9 +33498,9 @@ _tmp_193_rule(Parser *p)
return _res;
}
-// _tmp_194: 'if' disjunction
+// _tmp_201: 'if' disjunction
static void *
-_tmp_194_rule(Parser *p)
+_tmp_201_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32790,16 +33514,16 @@ _tmp_194_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
+ D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Token * _keyword;
expr_ty z;
if (
- (_keyword = _PyPegen_expect_token(p, 627)) // token='if'
+ (_keyword = _PyPegen_expect_token(p, 634)) // token='if'
&&
(z = disjunction_rule(p)) // disjunction
)
{
- D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
+ D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
_res = z;
if (_res == NULL && PyErr_Occurred()) {
p->error_indicator = 1;
@@ -32809,7 +33533,7 @@ _tmp_194_rule(Parser *p)
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
}
_res = NULL;
@@ -32818,9 +33542,9 @@ _tmp_194_rule(Parser *p)
return _res;
}
-// _tmp_195: 'if' disjunction
+// _tmp_202: 'if' disjunction
static void *
-_tmp_195_rule(Parser *p)
+_tmp_202_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32834,16 +33558,16 @@ _tmp_195_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
+ D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Token * _keyword;
expr_ty z;
if (
- (_keyword = _PyPegen_expect_token(p, 627)) // token='if'
+ (_keyword = _PyPegen_expect_token(p, 634)) // token='if'
&&
(z = disjunction_rule(p)) // disjunction
)
{
- D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
+ D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
_res = z;
if (_res == NULL && PyErr_Occurred()) {
p->error_indicator = 1;
@@ -32853,7 +33577,7 @@ _tmp_195_rule(Parser *p)
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
}
_res = NULL;
@@ -32862,9 +33586,9 @@ _tmp_195_rule(Parser *p)
return _res;
}
-// _tmp_196: starred_expression | (assignment_expression | expression !':=') !'='
+// _tmp_203: starred_expression | (assignment_expression | expression !':=') !'='
static void *
-_tmp_196_rule(Parser *p)
+_tmp_203_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32878,18 +33602,18 @@ _tmp_196_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
+ D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
expr_ty starred_expression_var;
if (
(starred_expression_var = starred_expression_rule(p)) // starred_expression
)
{
- D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
+ D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
_res = starred_expression_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
}
{ // (assignment_expression | expression !':=') !'='
@@ -32897,20 +33621,20 @@ _tmp_196_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
- void *_tmp_207_var;
+ D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
+ void *_tmp_216_var;
if (
- (_tmp_207_var = _tmp_207_rule(p)) // assignment_expression | expression !':='
+ (_tmp_216_var = _tmp_216_rule(p)) // assignment_expression | expression !':='
&&
_PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
)
{
- D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
- _res = _tmp_207_var;
+ D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
+ _res = _tmp_216_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
}
_res = NULL;
@@ -32919,9 +33643,9 @@ _tmp_196_rule(Parser *p)
return _res;
}
-// _tmp_197: ',' star_target
+// _tmp_204: ',' star_target
static void *
-_tmp_197_rule(Parser *p)
+_tmp_204_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32935,7 +33659,7 @@ _tmp_197_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
+ D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Token * _literal;
expr_ty c;
if (
@@ -32944,7 +33668,7 @@ _tmp_197_rule(Parser *p)
(c = star_target_rule(p)) // star_target
)
{
- D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
+ D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
_res = c;
if (_res == NULL && PyErr_Occurred()) {
p->error_indicator = 1;
@@ -32954,7 +33678,7 @@ _tmp_197_rule(Parser *p)
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
}
_res = NULL;
@@ -32963,9 +33687,9 @@ _tmp_197_rule(Parser *p)
return _res;
}
-// _tmp_198: ',' star_target
+// _tmp_205: ',' star_target
static void *
-_tmp_198_rule(Parser *p)
+_tmp_205_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -32979,7 +33703,7 @@ _tmp_198_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
+ D(fprintf(stderr, "%*c> _tmp_205[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Token * _literal;
expr_ty c;
if (
@@ -32988,7 +33712,7 @@ _tmp_198_rule(Parser *p)
(c = star_target_rule(p)) // star_target
)
{
- D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
+ D(fprintf(stderr, "%*c+ _tmp_205[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
_res = c;
if (_res == NULL && PyErr_Occurred()) {
p->error_indicator = 1;
@@ -32998,7 +33722,7 @@ _tmp_198_rule(Parser *p)
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_205[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
}
_res = NULL;
@@ -33007,9 +33731,9 @@ _tmp_198_rule(Parser *p)
return _res;
}
-// _tmp_199: star_targets '='
+// _tmp_206: star_targets '='
static void *
-_tmp_199_rule(Parser *p)
+_tmp_206_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -33023,7 +33747,7 @@ _tmp_199_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
+ D(fprintf(stderr, "%*c> _tmp_206[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Token * _literal;
expr_ty star_targets_var;
if (
@@ -33032,12 +33756,12 @@ _tmp_199_rule(Parser *p)
(_literal = _PyPegen_expect_token(p, 22)) // token='='
)
{
- D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
+ D(fprintf(stderr, "%*c+ _tmp_206[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
_res = _PyPegen_dummy_name(p, star_targets_var, _literal);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_206[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
}
_res = NULL;
@@ -33046,9 +33770,9 @@ _tmp_199_rule(Parser *p)
return _res;
}
-// _tmp_200: star_targets '='
+// _tmp_207: star_targets '='
static void *
-_tmp_200_rule(Parser *p)
+_tmp_207_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -33062,7 +33786,7 @@ _tmp_200_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
+ D(fprintf(stderr, "%*c> _tmp_207[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Token * _literal;
expr_ty star_targets_var;
if (
@@ -33071,12 +33795,12 @@ _tmp_200_rule(Parser *p)
(_literal = _PyPegen_expect_token(p, 22)) // token='='
)
{
- D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
+ D(fprintf(stderr, "%*c+ _tmp_207[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
_res = _PyPegen_dummy_name(p, star_targets_var, _literal);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_207[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
}
_res = NULL;
@@ -33085,9 +33809,9 @@ _tmp_200_rule(Parser *p)
return _res;
}
-// _tmp_201: ')' | '**'
+// _tmp_208: ')' | '**'
static void *
-_tmp_201_rule(Parser *p)
+_tmp_208_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -33101,18 +33825,18 @@ _tmp_201_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
+ D(fprintf(stderr, "%*c> _tmp_208[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 8)) // token=')'
)
{
- D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
+ D(fprintf(stderr, "%*c+ _tmp_208[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_208[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
}
{ // '**'
@@ -33120,18 +33844,18 @@ _tmp_201_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
+ D(fprintf(stderr, "%*c> _tmp_208[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 35)) // token='**'
)
{
- D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
+ D(fprintf(stderr, "%*c+ _tmp_208[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_208[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
}
_res = NULL;
@@ -33140,9 +33864,9 @@ _tmp_201_rule(Parser *p)
return _res;
}
-// _tmp_202: ':' | '**'
+// _tmp_209: ':' | '**'
static void *
-_tmp_202_rule(Parser *p)
+_tmp_209_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -33156,18 +33880,18 @@ _tmp_202_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
+ D(fprintf(stderr, "%*c> _tmp_209[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 11)) // token=':'
)
{
- D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
+ D(fprintf(stderr, "%*c+ _tmp_209[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_209[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
}
{ // '**'
@@ -33175,18 +33899,18 @@ _tmp_202_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
+ D(fprintf(stderr, "%*c> _tmp_209[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Token * _literal;
if (
(_literal = _PyPegen_expect_token(p, 35)) // token='**'
)
{
- D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
+ D(fprintf(stderr, "%*c+ _tmp_209[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
_res = _literal;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_209[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
}
_res = NULL;
@@ -33195,9 +33919,9 @@ _tmp_202_rule(Parser *p)
return _res;
}
-// _tmp_203: expression ['as' star_target]
+// _tmp_210: expression ['as' star_target]
static void *
-_tmp_203_rule(Parser *p)
+_tmp_210_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -33211,22 +33935,22 @@ _tmp_203_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
+ D(fprintf(stderr, "%*c> _tmp_210[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
void *_opt_var;
UNUSED(_opt_var); // Silence compiler warnings
expr_ty expression_var;
if (
(expression_var = expression_rule(p)) // expression
&&
- (_opt_var = _tmp_208_rule(p), !p->error_indicator) // ['as' star_target]
+ (_opt_var = _tmp_217_rule(p), !p->error_indicator) // ['as' star_target]
)
{
- D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
+ D(fprintf(stderr, "%*c+ _tmp_210[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
_res = _PyPegen_dummy_name(p, expression_var, _opt_var);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_210[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
}
_res = NULL;
@@ -33235,9 +33959,9 @@ _tmp_203_rule(Parser *p)
return _res;
}
-// _tmp_204: expressions ['as' star_target]
+// _tmp_211: expressions ['as' star_target]
static void *
-_tmp_204_rule(Parser *p)
+_tmp_211_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -33251,22 +33975,22 @@ _tmp_204_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
+ D(fprintf(stderr, "%*c> _tmp_211[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
void *_opt_var;
UNUSED(_opt_var); // Silence compiler warnings
expr_ty expressions_var;
if (
(expressions_var = expressions_rule(p)) // expressions
&&
- (_opt_var = _tmp_209_rule(p), !p->error_indicator) // ['as' star_target]
+ (_opt_var = _tmp_218_rule(p), !p->error_indicator) // ['as' star_target]
)
{
- D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
+ D(fprintf(stderr, "%*c+ _tmp_211[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
_res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_211[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
}
_res = NULL;
@@ -33275,9 +33999,9 @@ _tmp_204_rule(Parser *p)
return _res;
}
-// _tmp_205: expression ['as' star_target]
+// _tmp_212: expression ['as' star_target]
static void *
-_tmp_205_rule(Parser *p)
+_tmp_212_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -33291,22 +34015,22 @@ _tmp_205_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_205[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
+ D(fprintf(stderr, "%*c> _tmp_212[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
void *_opt_var;
UNUSED(_opt_var); // Silence compiler warnings
expr_ty expression_var;
if (
(expression_var = expression_rule(p)) // expression
&&
- (_opt_var = _tmp_210_rule(p), !p->error_indicator) // ['as' star_target]
+ (_opt_var = _tmp_219_rule(p), !p->error_indicator) // ['as' star_target]
)
{
- D(fprintf(stderr, "%*c+ _tmp_205[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
+ D(fprintf(stderr, "%*c+ _tmp_212[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
_res = _PyPegen_dummy_name(p, expression_var, _opt_var);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_205[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_212[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
}
_res = NULL;
@@ -33315,9 +34039,9 @@ _tmp_205_rule(Parser *p)
return _res;
}
-// _tmp_206: expressions ['as' star_target]
+// _tmp_213: expressions ['as' star_target]
static void *
-_tmp_206_rule(Parser *p)
+_tmp_213_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -33331,22 +34055,22 @@ _tmp_206_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_206[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
+ D(fprintf(stderr, "%*c> _tmp_213[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
void *_opt_var;
UNUSED(_opt_var); // Silence compiler warnings
expr_ty expressions_var;
if (
(expressions_var = expressions_rule(p)) // expressions
&&
- (_opt_var = _tmp_211_rule(p), !p->error_indicator) // ['as' star_target]
+ (_opt_var = _tmp_220_rule(p), !p->error_indicator) // ['as' star_target]
)
{
- D(fprintf(stderr, "%*c+ _tmp_206[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
+ D(fprintf(stderr, "%*c+ _tmp_213[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
_res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_206[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_213[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
}
_res = NULL;
@@ -33355,9 +34079,87 @@ _tmp_206_rule(Parser *p)
return _res;
}
-// _tmp_207: assignment_expression | expression !':='
+// _tmp_214: except_block+ except_star_block
static void *
-_tmp_207_rule(Parser *p)
+_tmp_214_rule(Parser *p)
+{
+ D(p->level++);
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // except_block+ except_star_block
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_214[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block+ except_star_block"));
+ asdl_seq * _loop1_221_var;
+ excepthandler_ty except_star_block_var;
+ if (
+ (_loop1_221_var = _loop1_221_rule(p)) // except_block+
+ &&
+ (except_star_block_var = except_star_block_rule(p)) // except_star_block
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_214[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "except_block+ except_star_block"));
+ _res = _PyPegen_dummy_name(p, _loop1_221_var, except_star_block_var);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_214[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block+ except_star_block"));
+ }
+ _res = NULL;
+ done:
+ D(p->level--);
+ return _res;
+}
+
+// _tmp_215: except_star_block+ except_block
+static void *
+_tmp_215_rule(Parser *p)
+{
+ D(p->level++);
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // except_star_block+ except_block
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_215[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block+ except_block"));
+ asdl_seq * _loop1_222_var;
+ excepthandler_ty except_block_var;
+ if (
+ (_loop1_222_var = _loop1_222_rule(p)) // except_star_block+
+ &&
+ (except_block_var = except_block_rule(p)) // except_block
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_215[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "except_star_block+ except_block"));
+ _res = _PyPegen_dummy_name(p, _loop1_222_var, except_block_var);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_215[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_star_block+ except_block"));
+ }
+ _res = NULL;
+ done:
+ D(p->level--);
+ return _res;
+}
+
+// _tmp_216: assignment_expression | expression !':='
+static void *
+_tmp_216_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -33371,18 +34173,18 @@ _tmp_207_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_207[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
+ D(fprintf(stderr, "%*c> _tmp_216[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
expr_ty assignment_expression_var;
if (
(assignment_expression_var = assignment_expression_rule(p)) // assignment_expression
)
{
- D(fprintf(stderr, "%*c+ _tmp_207[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
+ D(fprintf(stderr, "%*c+ _tmp_216[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
_res = assignment_expression_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_207[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_216[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression"));
}
{ // expression !':='
@@ -33390,7 +34192,7 @@ _tmp_207_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_207[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
+ D(fprintf(stderr, "%*c> _tmp_216[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
expr_ty expression_var;
if (
(expression_var = expression_rule(p)) // expression
@@ -33398,12 +34200,12 @@ _tmp_207_rule(Parser *p)
_PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
)
{
- D(fprintf(stderr, "%*c+ _tmp_207[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
+ D(fprintf(stderr, "%*c+ _tmp_216[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
_res = expression_var;
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_207[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_216[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
}
_res = NULL;
@@ -33412,9 +34214,9 @@ _tmp_207_rule(Parser *p)
return _res;
}
-// _tmp_208: 'as' star_target
+// _tmp_217: 'as' star_target
static void *
-_tmp_208_rule(Parser *p)
+_tmp_217_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -33428,21 +34230,21 @@ _tmp_208_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_208[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
+ D(fprintf(stderr, "%*c> _tmp_217[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Token * _keyword;
expr_ty star_target_var;
if (
- (_keyword = _PyPegen_expect_token(p, 625)) // token='as'
+ (_keyword = _PyPegen_expect_token(p, 632)) // token='as'
&&
(star_target_var = star_target_rule(p)) // star_target
)
{
- D(fprintf(stderr, "%*c+ _tmp_208[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
+ D(fprintf(stderr, "%*c+ _tmp_217[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
_res = _PyPegen_dummy_name(p, _keyword, star_target_var);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_208[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_217[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
}
_res = NULL;
@@ -33451,9 +34253,9 @@ _tmp_208_rule(Parser *p)
return _res;
}
-// _tmp_209: 'as' star_target
+// _tmp_218: 'as' star_target
static void *
-_tmp_209_rule(Parser *p)
+_tmp_218_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -33467,21 +34269,21 @@ _tmp_209_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_209[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
+ D(fprintf(stderr, "%*c> _tmp_218[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Token * _keyword;
expr_ty star_target_var;
if (
- (_keyword = _PyPegen_expect_token(p, 625)) // token='as'
+ (_keyword = _PyPegen_expect_token(p, 632)) // token='as'
&&
(star_target_var = star_target_rule(p)) // star_target
)
{
- D(fprintf(stderr, "%*c+ _tmp_209[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
+ D(fprintf(stderr, "%*c+ _tmp_218[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
_res = _PyPegen_dummy_name(p, _keyword, star_target_var);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_209[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_218[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
}
_res = NULL;
@@ -33490,9 +34292,9 @@ _tmp_209_rule(Parser *p)
return _res;
}
-// _tmp_210: 'as' star_target
+// _tmp_219: 'as' star_target
static void *
-_tmp_210_rule(Parser *p)
+_tmp_219_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -33506,21 +34308,21 @@ _tmp_210_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_210[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
+ D(fprintf(stderr, "%*c> _tmp_219[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Token * _keyword;
expr_ty star_target_var;
if (
- (_keyword = _PyPegen_expect_token(p, 625)) // token='as'
+ (_keyword = _PyPegen_expect_token(p, 632)) // token='as'
&&
(star_target_var = star_target_rule(p)) // star_target
)
{
- D(fprintf(stderr, "%*c+ _tmp_210[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
+ D(fprintf(stderr, "%*c+ _tmp_219[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
_res = _PyPegen_dummy_name(p, _keyword, star_target_var);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_210[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_219[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
}
_res = NULL;
@@ -33529,9 +34331,9 @@ _tmp_210_rule(Parser *p)
return _res;
}
-// _tmp_211: 'as' star_target
+// _tmp_220: 'as' star_target
static void *
-_tmp_211_rule(Parser *p)
+_tmp_220_rule(Parser *p)
{
D(p->level++);
if (p->error_indicator) {
@@ -33545,21 +34347,21 @@ _tmp_211_rule(Parser *p)
D(p->level--);
return NULL;
}
- D(fprintf(stderr, "%*c> _tmp_211[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
+ D(fprintf(stderr, "%*c> _tmp_220[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Token * _keyword;
expr_ty star_target_var;
if (
- (_keyword = _PyPegen_expect_token(p, 625)) // token='as'
+ (_keyword = _PyPegen_expect_token(p, 632)) // token='as'
&&
(star_target_var = star_target_rule(p)) // star_target
)
{
- D(fprintf(stderr, "%*c+ _tmp_211[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
+ D(fprintf(stderr, "%*c+ _tmp_220[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
_res = _PyPegen_dummy_name(p, _keyword, star_target_var);
goto done;
}
p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_211[%d-%d]: %s failed!\n", p->level, ' ',
+ D(fprintf(stderr, "%*c%s _tmp_220[%d-%d]: %s failed!\n", p->level, ' ',
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
}
_res = NULL;
@@ -33568,6 +34370,148 @@ _tmp_211_rule(Parser *p)
return _res;
}
+// _loop1_221: except_block
+static asdl_seq *
+_loop1_221_rule(Parser *p)
+{
+ D(p->level++);
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ D(p->level--);
+ return NULL;
+ }
+ Py_ssize_t _children_capacity = 1;
+ Py_ssize_t _n = 0;
+ { // except_block
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_221[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
+ excepthandler_ty except_block_var;
+ while (
+ (except_block_var = except_block_rule(p)) // except_block
+ )
+ {
+ _res = except_block_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ D(p->level--);
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_221[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ D(p->level--);
+ return NULL;
+ }
+ asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ D(p->level--);
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_221_type, _seq);
+ D(p->level--);
+ return _seq;
+}
+
+// _loop1_222: except_star_block
+static asdl_seq *
+_loop1_222_rule(Parser *p)
+{
+ D(p->level++);
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ D(p->level--);
+ return NULL;
+ }
+ Py_ssize_t _children_capacity = 1;
+ Py_ssize_t _n = 0;
+ { // except_star_block
+ if (p->error_indicator) {
+ D(p->level--);
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_222[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block"));
+ excepthandler_ty except_star_block_var;
+ while (
+ (except_star_block_var = except_star_block_rule(p)) // except_star_block
+ )
+ {
+ _res = except_star_block_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ D(p->level--);
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_222[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_star_block"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ D(p->level--);
+ return NULL;
+ }
+ asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ D(p->level--);
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_222_type, _seq);
+ D(p->level--);
+ return _seq;
+}
+
void *
_PyPegen_parse(Parser *p)
{
diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index ce6e6a9..1670184 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -146,6 +146,7 @@ void _PyAST_Fini(PyInterpreterState *interp)
Py_CLEAR(state->Sub_singleton);
Py_CLEAR(state->Sub_type);
Py_CLEAR(state->Subscript_type);
+ Py_CLEAR(state->TryStar_type);
Py_CLEAR(state->Try_type);
Py_CLEAR(state->Tuple_type);
Py_CLEAR(state->TypeIgnore_type);
@@ -486,6 +487,12 @@ static const char * const Try_fields[]={
"orelse",
"finalbody",
};
+static const char * const TryStar_fields[]={
+ "body",
+ "handlers",
+ "orelse",
+ "finalbody",
+};
static const char * const Assert_fields[]={
"test",
"msg",
@@ -1139,6 +1146,7 @@ init_types(struct ast_state *state)
" | Match(expr subject, match_case* cases)\n"
" | Raise(expr? exc, expr? cause)\n"
" | Try(stmt* body, excepthandler* handlers, stmt* orelse, stmt* finalbody)\n"
+ " | TryStar(stmt* body, excepthandler* handlers, stmt* orelse, stmt* finalbody)\n"
" | Assert(expr test, expr? msg)\n"
" | Import(alias* names)\n"
" | ImportFrom(identifier? module, alias* names, int? level)\n"
@@ -1254,6 +1262,10 @@ init_types(struct ast_state *state)
state->Try_type = make_type(state, "Try", state->stmt_type, Try_fields, 4,
"Try(stmt* body, excepthandler* handlers, stmt* orelse, stmt* finalbody)");
if (!state->Try_type) return 0;
+ state->TryStar_type = make_type(state, "TryStar", state->stmt_type,
+ TryStar_fields, 4,
+ "TryStar(stmt* body, excepthandler* handlers, stmt* orelse, stmt* finalbody)");
+ if (!state->TryStar_type) return 0;
state->Assert_type = make_type(state, "Assert", state->stmt_type,
Assert_fields, 2,
"Assert(expr test, expr? msg)");
@@ -2380,6 +2392,28 @@ _PyAST_Try(asdl_stmt_seq * body, asdl_excepthandler_seq * handlers,
}
stmt_ty
+_PyAST_TryStar(asdl_stmt_seq * body, asdl_excepthandler_seq * handlers,
+ asdl_stmt_seq * orelse, asdl_stmt_seq * finalbody, int lineno,
+ int col_offset, int end_lineno, int end_col_offset, PyArena
+ *arena)
+{
+ stmt_ty p;
+ p = (stmt_ty)_PyArena_Malloc(arena, sizeof(*p));
+ if (!p)
+ return NULL;
+ p->kind = TryStar_kind;
+ p->v.TryStar.body = body;
+ p->v.TryStar.handlers = handlers;
+ p->v.TryStar.orelse = orelse;
+ p->v.TryStar.finalbody = finalbody;
+ p->lineno = lineno;
+ p->col_offset = col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
+ return p;
+}
+
+stmt_ty
_PyAST_Assert(expr_ty test, expr_ty msg, int lineno, int col_offset, int
end_lineno, int end_col_offset, PyArena *arena)
{
@@ -4049,6 +4083,34 @@ ast2obj_stmt(struct ast_state *state, void* _o)
goto failed;
Py_DECREF(value);
break;
+ case TryStar_kind:
+ tp = (PyTypeObject *)state->TryStar_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
+ if (!result) goto failed;
+ value = ast2obj_list(state, (asdl_seq*)o->v.TryStar.body, ast2obj_stmt);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->body, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_list(state, (asdl_seq*)o->v.TryStar.handlers,
+ ast2obj_excepthandler);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->handlers, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_list(state, (asdl_seq*)o->v.TryStar.orelse,
+ ast2obj_stmt);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->orelse, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_list(state, (asdl_seq*)o->v.TryStar.finalbody,
+ ast2obj_stmt);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->finalbody, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ break;
case Assert_kind:
tp = (PyTypeObject *)state->Assert_type;
result = PyType_GenericNew(tp, NULL, NULL);
@@ -7477,6 +7539,170 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena*
if (*out == NULL) goto failed;
return 0;
}
+ tp = state->TryStar_type;
+ isinstance = PyObject_IsInstance(obj, tp);
+ if (isinstance == -1) {
+ return 1;
+ }
+ if (isinstance) {
+ asdl_stmt_seq* body;
+ asdl_excepthandler_seq* handlers;
+ asdl_stmt_seq* orelse;
+ asdl_stmt_seq* finalbody;
+
+ if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL) {
+ PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from TryStar");
+ return 1;
+ }
+ else {
+ int res;
+ Py_ssize_t len;
+ Py_ssize_t i;
+ if (!PyList_Check(tmp)) {
+ PyErr_Format(PyExc_TypeError, "TryStar field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ goto failed;
+ }
+ len = PyList_GET_SIZE(tmp);
+ body = _Py_asdl_stmt_seq_new(len, arena);
+ if (body == NULL) goto failed;
+ for (i = 0; i < len; i++) {
+ stmt_ty val;
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'TryStar' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
+ if (res != 0) goto failed;
+ if (len != PyList_GET_SIZE(tmp)) {
+ PyErr_SetString(PyExc_RuntimeError, "TryStar field \"body\" changed size during iteration");
+ goto failed;
+ }
+ asdl_seq_SET(body, i, val);
+ }
+ Py_CLEAR(tmp);
+ }
+ if (_PyObject_LookupAttr(obj, state->handlers, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL) {
+ PyErr_SetString(PyExc_TypeError, "required field \"handlers\" missing from TryStar");
+ return 1;
+ }
+ else {
+ int res;
+ Py_ssize_t len;
+ Py_ssize_t i;
+ if (!PyList_Check(tmp)) {
+ PyErr_Format(PyExc_TypeError, "TryStar field \"handlers\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ goto failed;
+ }
+ len = PyList_GET_SIZE(tmp);
+ handlers = _Py_asdl_excepthandler_seq_new(len, arena);
+ if (handlers == NULL) goto failed;
+ for (i = 0; i < len; i++) {
+ excepthandler_ty val;
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'TryStar' node")) {
+ goto failed;
+ }
+ res = obj2ast_excepthandler(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
+ if (res != 0) goto failed;
+ if (len != PyList_GET_SIZE(tmp)) {
+ PyErr_SetString(PyExc_RuntimeError, "TryStar field \"handlers\" changed size during iteration");
+ goto failed;
+ }
+ asdl_seq_SET(handlers, i, val);
+ }
+ Py_CLEAR(tmp);
+ }
+ if (_PyObject_LookupAttr(obj, state->orelse, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL) {
+ PyErr_SetString(PyExc_TypeError, "required field \"orelse\" missing from TryStar");
+ return 1;
+ }
+ else {
+ int res;
+ Py_ssize_t len;
+ Py_ssize_t i;
+ if (!PyList_Check(tmp)) {
+ PyErr_Format(PyExc_TypeError, "TryStar field \"orelse\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ goto failed;
+ }
+ len = PyList_GET_SIZE(tmp);
+ orelse = _Py_asdl_stmt_seq_new(len, arena);
+ if (orelse == NULL) goto failed;
+ for (i = 0; i < len; i++) {
+ stmt_ty val;
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'TryStar' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
+ if (res != 0) goto failed;
+ if (len != PyList_GET_SIZE(tmp)) {
+ PyErr_SetString(PyExc_RuntimeError, "TryStar field \"orelse\" changed size during iteration");
+ goto failed;
+ }
+ asdl_seq_SET(orelse, i, val);
+ }
+ Py_CLEAR(tmp);
+ }
+ if (_PyObject_LookupAttr(obj, state->finalbody, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL) {
+ PyErr_SetString(PyExc_TypeError, "required field \"finalbody\" missing from TryStar");
+ return 1;
+ }
+ else {
+ int res;
+ Py_ssize_t len;
+ Py_ssize_t i;
+ if (!PyList_Check(tmp)) {
+ PyErr_Format(PyExc_TypeError, "TryStar field \"finalbody\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ goto failed;
+ }
+ len = PyList_GET_SIZE(tmp);
+ finalbody = _Py_asdl_stmt_seq_new(len, arena);
+ if (finalbody == NULL) goto failed;
+ for (i = 0; i < len; i++) {
+ stmt_ty val;
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'TryStar' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
+ if (res != 0) goto failed;
+ if (len != PyList_GET_SIZE(tmp)) {
+ PyErr_SetString(PyExc_RuntimeError, "TryStar field \"finalbody\" changed size during iteration");
+ goto failed;
+ }
+ asdl_seq_SET(finalbody, i, val);
+ }
+ Py_CLEAR(tmp);
+ }
+ *out = _PyAST_TryStar(body, handlers, orelse, finalbody, lineno,
+ col_offset, end_lineno, end_col_offset, arena);
+ if (*out == NULL) goto failed;
+ return 0;
+ }
tp = state->Assert_type;
isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
@@ -11687,6 +11913,9 @@ astmodule_exec(PyObject *m)
if (PyModule_AddObjectRef(m, "Try", state->Try_type) < 0) {
return -1;
}
+ if (PyModule_AddObjectRef(m, "TryStar", state->TryStar_type) < 0) {
+ return -1;
+ }
if (PyModule_AddObjectRef(m, "Assert", state->Assert_type) < 0) {
return -1;
}
diff --git a/Python/ast.c b/Python/ast.c
index 0c3121d..607281e 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -817,6 +817,31 @@ validate_stmt(struct validator *state, stmt_ty stmt)
(!asdl_seq_LEN(stmt->v.Try.orelse) ||
validate_stmts(state, stmt->v.Try.orelse));
break;
+ case TryStar_kind:
+ if (!validate_body(state, stmt->v.TryStar.body, "TryStar"))
+ return 0;
+ if (!asdl_seq_LEN(stmt->v.TryStar.handlers) &&
+ !asdl_seq_LEN(stmt->v.TryStar.finalbody)) {
+ PyErr_SetString(PyExc_ValueError, "TryStar has neither except handlers nor finalbody");
+ return 0;
+ }
+ if (!asdl_seq_LEN(stmt->v.TryStar.handlers) &&
+ asdl_seq_LEN(stmt->v.TryStar.orelse)) {
+ PyErr_SetString(PyExc_ValueError, "TryStar has orelse but no except handlers");
+ return 0;
+ }
+ for (i = 0; i < asdl_seq_LEN(stmt->v.TryStar.handlers); i++) {
+ excepthandler_ty handler = asdl_seq_GET(stmt->v.TryStar.handlers, i);
+ if ((handler->v.ExceptHandler.type &&
+ !validate_expr(state, handler->v.ExceptHandler.type, Load)) ||
+ !validate_body(state, handler->v.ExceptHandler.body, "ExceptHandler"))
+ return 0;
+ }
+ ret = (!asdl_seq_LEN(stmt->v.TryStar.finalbody) ||
+ validate_stmts(state, stmt->v.TryStar.finalbody)) &&
+ (!asdl_seq_LEN(stmt->v.TryStar.orelse) ||
+ validate_stmts(state, stmt->v.TryStar.orelse));
+ break;
case Assert_kind:
ret = validate_expr(state, stmt->v.Assert.test, Load) &&
(!stmt->v.Assert.msg || validate_expr(state, stmt->v.Assert.msg, Load));
diff --git a/Python/ast_opt.c b/Python/ast_opt.c
index 5f219c6..2821e69 100644
--- a/Python/ast_opt.c
+++ b/Python/ast_opt.c
@@ -972,6 +972,12 @@ astfold_stmt(stmt_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
CALL_SEQ(astfold_stmt, stmt, node_->v.Try.orelse);
CALL_SEQ(astfold_stmt, stmt, node_->v.Try.finalbody);
break;
+ case TryStar_kind:
+ CALL_SEQ(astfold_stmt, stmt, node_->v.TryStar.body);
+ CALL_SEQ(astfold_excepthandler, excepthandler, node_->v.TryStar.handlers);
+ CALL_SEQ(astfold_stmt, stmt, node_->v.TryStar.orelse);
+ CALL_SEQ(astfold_stmt, stmt, node_->v.TryStar.finalbody);
+ break;
case Assert_kind:
CALL(astfold_expr, expr_ty, node_->v.Assert.test);
CALL_OPT(astfold_expr, expr_ty, node_->v.Assert.msg);
diff --git a/Python/ceval.c b/Python/ceval.c
index 4f5ccf5..fb19f78 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -37,6 +37,7 @@
#include "structmember.h" // struct PyMemberDef, T_OFFSET_EX
#include <ctype.h>
+#include <stdbool.h>
#ifdef Py_DEBUG
/* For debugging the interpreter: */
@@ -95,6 +96,7 @@ static void format_exc_check_arg(PyThreadState *, PyObject *, const char *, PyOb
static void format_exc_unbound(PyThreadState *tstate, PyCodeObject *co, int oparg);
static int check_args_iterable(PyThreadState *, PyObject *func, PyObject *vararg);
static int check_except_type_valid(PyThreadState *tstate, PyObject* right);
+static int check_except_star_type_valid(PyThreadState *tstate, PyObject* right);
static void format_kwargs_error(PyThreadState *, PyObject *func, PyObject *kwargs);
static void format_awaitable_error(PyThreadState *, PyTypeObject *, int, int);
static int get_exception_handler(PyCodeObject *, int, int*, int*, int*);
@@ -1090,6 +1092,11 @@ fail:
static int do_raise(PyThreadState *tstate, PyObject *exc, PyObject *cause);
+static PyObject *do_reraise_star(PyObject *excs, PyObject *orig);
+static int exception_group_match(
+ PyObject *exc_type, PyObject* exc_value, PyObject *match_type,
+ PyObject **match, PyObject **rest);
+
static int unpack_iterable(PyThreadState *, PyObject *, int, int, PyObject **);
#ifdef Py_DEBUG
@@ -2727,6 +2734,7 @@ check_eval_breaker:
type = exc_info->exc_type;
value = exc_info->exc_value;
traceback = exc_info->exc_traceback;
+
exc_info->exc_type = POP();
exc_info->exc_value = POP();
exc_info->exc_traceback = POP();
@@ -2791,6 +2799,36 @@ check_eval_breaker:
goto exception_unwind;
}
+ TARGET(PREP_RERAISE_STAR) {
+ PyObject *excs = POP();
+ assert(PyList_Check(excs));
+ PyObject *orig = POP();
+
+ PyObject *val = do_reraise_star(excs, orig);
+ Py_DECREF(excs);
+ Py_DECREF(orig);
+
+ if (val == NULL) {
+ goto error;
+ }
+
+ PyObject *lasti_unused = Py_NewRef(_PyLong_GetZero());
+ PUSH(lasti_unused);
+ if (!Py_IsNone(val)) {
+ PyObject *tb = PyException_GetTraceback(val);
+ PUSH(tb ? tb : Py_NewRef(Py_None));
+ PUSH(val);
+ PUSH(Py_NewRef(Py_TYPE(val)));
+ }
+ else {
+ // nothing to reraise
+ PUSH(Py_NewRef(Py_None));
+ PUSH(val);
+ PUSH(Py_NewRef(Py_None));
+ }
+ DISPATCH();
+ }
+
TARGET(END_ASYNC_FOR) {
PyObject *exc = POP();
PyObject *val = POP();
@@ -3922,6 +3960,83 @@ check_eval_breaker:
DISPATCH();
}
+ TARGET(JUMP_IF_NOT_EG_MATCH) {
+ PyObject *match_type = POP();
+ PyObject *exc_type = TOP();
+ PyObject *exc_value = SECOND();
+ if (check_except_star_type_valid(tstate, match_type) < 0) {
+ Py_DECREF(match_type);
+ goto error;
+ }
+
+ PyObject *match = NULL, *rest = NULL;
+ int res = exception_group_match(exc_type, exc_value,
+ match_type, &match, &rest);
+ Py_DECREF(match_type);
+ if (res < 0) {
+ goto error;
+ }
+
+ if (match == NULL || rest == NULL) {
+ assert(match == NULL);
+ assert(rest == NULL);
+ goto error;
+ }
+
+ if (Py_IsNone(match)) {
+ Py_DECREF(match);
+ Py_XDECREF(rest);
+ /* no match - jump to target */
+ JUMPTO(oparg);
+ }
+ else {
+
+ /* Total or partial match - update the stack from
+ * [tb, val, exc]
+ * to
+ * [tb, rest, exc, tb, match, exc]
+ * (rest can be Py_None)
+ */
+
+
+ PyObject *type = TOP();
+ PyObject *val = SECOND();
+ PyObject *tb = THIRD();
+
+ if (!Py_IsNone(rest)) {
+ /* tb remains the same */
+ SET_TOP(Py_NewRef(Py_TYPE(rest)));
+ SET_SECOND(Py_NewRef(rest));
+ SET_THIRD(Py_NewRef(tb));
+ }
+ else {
+ SET_TOP(Py_NewRef(Py_None));
+ SET_SECOND(Py_NewRef(Py_None));
+ SET_THIRD(Py_NewRef(Py_None));
+ }
+ /* Push match */
+
+ PUSH(Py_NewRef(tb));
+ PUSH(Py_NewRef(match));
+ PUSH(Py_NewRef(Py_TYPE(match)));
+
+ // set exc_info to the current match
+ PyErr_SetExcInfo(
+ Py_NewRef(Py_TYPE(match)),
+ Py_NewRef(match),
+ Py_NewRef(tb));
+
+ Py_DECREF(tb);
+ Py_DECREF(val);
+ Py_DECREF(type);
+
+ Py_DECREF(match);
+ Py_DECREF(rest);
+ }
+
+ DISPATCH();
+ }
+
TARGET(JUMP_IF_NOT_EXC_MATCH) {
PyObject *right = POP();
ASSERT_EXC_TYPE_IS_REDUNDANT(TOP(), SECOND());
@@ -3931,17 +4046,12 @@ check_eval_breaker:
Py_DECREF(right);
goto error;
}
+
int res = PyErr_GivenExceptionMatches(left, right);
Py_DECREF(right);
- if (res > 0) {
- /* Exception matches -- Do nothing */;
- }
- else if (res == 0) {
+ if (res == 0) {
JUMPTO(oparg);
}
- else {
- goto error;
- }
DISPATCH();
}
@@ -6127,6 +6237,196 @@ raise_error:
return 0;
}
+/* Logic for matching an exception in an except* clause (too
+ complicated for inlining).
+*/
+
+static int
+exception_group_match(PyObject *exc_type, PyObject* exc_value,
+ PyObject *match_type, PyObject **match, PyObject **rest)
+{
+ if (Py_IsNone(exc_type)) {
+ assert(Py_IsNone(exc_value));
+ *match = Py_NewRef(Py_None);
+ *rest = Py_NewRef(Py_None);
+ return 0;
+ }
+ assert(PyExceptionClass_Check(exc_type));
+ assert(PyExceptionInstance_Check(exc_value));
+
+ if (PyErr_GivenExceptionMatches(exc_type, match_type)) {
+ /* Full match of exc itself */
+ bool is_eg = _PyBaseExceptionGroup_Check(exc_value);
+ if (is_eg) {
+ *match = Py_NewRef(exc_value);
+ }
+ else {
+ /* naked exception - wrap it */
+ PyObject *excs = PyTuple_Pack(1, exc_value);
+ if (excs == NULL) {
+ return -1;
+ }
+ PyObject *wrapped = _PyExc_CreateExceptionGroup("", excs);
+ Py_DECREF(excs);
+ if (wrapped == NULL) {
+ return -1;
+ }
+ *match = wrapped;
+ }
+ *rest = Py_NewRef(Py_None);
+ return 0;
+ }
+
+ /* exc_value does not match match_type.
+ * Check for partial match if it's an exception group.
+ */
+ if (_PyBaseExceptionGroup_Check(exc_value)) {
+ PyObject *pair = PyObject_CallMethod(exc_value, "split", "(O)",
+ match_type);
+ if (pair == NULL) {
+ return -1;
+ }
+ assert(PyTuple_CheckExact(pair));
+ assert(PyTuple_GET_SIZE(pair) == 2);
+ *match = Py_NewRef(PyTuple_GET_ITEM(pair, 0));
+ *rest = Py_NewRef(PyTuple_GET_ITEM(pair, 1));
+ Py_DECREF(pair);
+ return 0;
+ }
+ /* no match */
+ *match = Py_NewRef(Py_None);
+ *rest = Py_NewRef(Py_None);
+ return 0;
+}
+
+/* Logic for the final raise/reraise of a try-except* contruct
+ (too complicated for inlining).
+*/
+
+static bool
+is_same_exception_metadata(PyObject *exc1, PyObject *exc2)
+{
+ assert(PyExceptionInstance_Check(exc1));
+ assert(PyExceptionInstance_Check(exc2));
+
+ PyObject *tb1 = PyException_GetTraceback(exc1);
+ PyObject *ctx1 = PyException_GetContext(exc1);
+ PyObject *cause1 = PyException_GetCause(exc1);
+ PyObject *tb2 = PyException_GetTraceback(exc2);
+ PyObject *ctx2 = PyException_GetContext(exc2);
+ PyObject *cause2 = PyException_GetCause(exc2);
+
+ bool result = (Py_Is(tb1, tb2) &&
+ Py_Is(ctx1, ctx2) &&
+ Py_Is(cause1, cause2));
+
+ Py_XDECREF(tb1);
+ Py_XDECREF(ctx1);
+ Py_XDECREF(cause1);
+ Py_XDECREF(tb2);
+ Py_XDECREF(ctx2);
+ Py_XDECREF(cause2);
+ return result;
+}
+
+/*
+ excs: a list of exceptions to raise/reraise
+ orig: the original except that was caught
+
+ Calculates an exception group to raise. It contains
+ all exceptions in excs, where those that were reraised
+ have same nesting structure as in orig, and those that
+ were raised (if any) are added as siblings in a new EG.
+
+ Returns NULL and sets an exception on failure.
+*/
+static PyObject *
+do_reraise_star(PyObject *excs, PyObject *orig)
+{
+ assert(PyList_Check(excs));
+ assert(PyExceptionInstance_Check(orig));
+
+ Py_ssize_t numexcs = PyList_GET_SIZE(excs);
+
+ if (numexcs == 0) {
+ return Py_NewRef(Py_None);
+ }
+
+ if (!_PyBaseExceptionGroup_Check(orig)) {
+ /* a naked exception was caught and wrapped. Only one except* clause
+ * could have executed,so there is at most one exception to raise.
+ */
+
+ assert(numexcs == 1 || (numexcs == 2 && PyList_GET_ITEM(excs, 1) == Py_None));
+
+ PyObject *e = PyList_GET_ITEM(excs, 0);
+ assert(e != NULL);
+ return Py_NewRef(e);
+ }
+
+
+ PyObject *raised_list = PyList_New(0);
+ if (raised_list == NULL) {
+ return NULL;
+ }
+ PyObject* reraised_list = PyList_New(0);
+ if (reraised_list == NULL) {
+ Py_DECREF(raised_list);
+ return NULL;
+ }
+
+ /* Now we are holding refs to raised_list and reraised_list */
+
+ PyObject *result = NULL;
+
+ /* Split excs into raised and reraised by comparing metadata with orig */
+ for (Py_ssize_t i = 0; i < numexcs; i++) {
+ PyObject *e = PyList_GET_ITEM(excs, i);
+ assert(e != NULL);
+ if (Py_IsNone(e)) {
+ continue;
+ }
+ bool is_reraise = is_same_exception_metadata(e, orig);
+ PyObject *append_list = is_reraise ? reraised_list : raised_list;
+ if (PyList_Append(append_list, e) < 0) {
+ goto done;
+ }
+ }
+
+ PyObject *reraised_eg = _PyExc_ExceptionGroupProjection(orig, reraised_list);
+ if (reraised_eg == NULL) {
+ goto done;
+ }
+
+ if (!Py_IsNone(reraised_eg)) {
+ assert(is_same_exception_metadata(reraised_eg, orig));
+ }
+
+ Py_ssize_t num_raised = PyList_GET_SIZE(raised_list);
+ if (num_raised == 0) {
+ result = reraised_eg;
+ }
+ else if (num_raised > 0) {
+ int res = 0;
+ if (!Py_IsNone(reraised_eg)) {
+ res = PyList_Append(raised_list, reraised_eg);
+ }
+ Py_DECREF(reraised_eg);
+ if (res < 0) {
+ goto done;
+ }
+ result = _PyExc_CreateExceptionGroup("", raised_list);
+ if (result == NULL) {
+ goto done;
+ }
+ }
+
+done:
+ Py_XDECREF(raised_list);
+ Py_XDECREF(reraised_list);
+ return result;
+}
+
/* Iterate v argcnt times and store the results on the stack (via decreasing
sp). Return 1 for success, 0 if error.
@@ -7020,10 +7320,12 @@ import_all_from(PyThreadState *tstate, PyObject *locals, PyObject *v)
return err;
}
-
#define CANNOT_CATCH_MSG "catching classes that do not inherit from "\
"BaseException is not allowed"
+#define CANNOT_EXCEPT_STAR_EG "catching ExceptionGroup with except* "\
+ "is not allowed. Use except instead."
+
static int
check_except_type_valid(PyThreadState *tstate, PyObject* right)
{
@@ -7050,6 +7352,43 @@ check_except_type_valid(PyThreadState *tstate, PyObject* right)
}
static int
+check_except_star_type_valid(PyThreadState *tstate, PyObject* right)
+{
+ if (check_except_type_valid(tstate, right) < 0) {
+ return -1;
+ }
+
+ /* reject except *ExceptionGroup */
+
+ int is_subclass = 0;
+ if (PyTuple_Check(right)) {
+ Py_ssize_t length = PyTuple_GET_SIZE(right);
+ for (Py_ssize_t i = 0; i < length; i++) {
+ PyObject *exc = PyTuple_GET_ITEM(right, i);
+ is_subclass = PyObject_IsSubclass(exc, PyExc_BaseExceptionGroup);
+ if (is_subclass < 0) {
+ return -1;
+ }
+ if (is_subclass) {
+ break;
+ }
+ }
+ }
+ else {
+ is_subclass = PyObject_IsSubclass(right, PyExc_BaseExceptionGroup);
+ if (is_subclass < 0) {
+ return -1;
+ }
+ }
+ if (is_subclass) {
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ CANNOT_EXCEPT_STAR_EG);
+ return -1;
+ }
+ return 0;
+}
+
+static int
check_args_iterable(PyThreadState *tstate, PyObject *func, PyObject *args)
{
if (Py_TYPE(args)->tp_iter == NULL && !PySequence_Check(args)) {
diff --git a/Python/compile.c b/Python/compile.c
index bbdb011..00e1e01 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -175,7 +175,7 @@ compiler IR.
enum fblocktype { WHILE_LOOP, FOR_LOOP, TRY_EXCEPT, FINALLY_TRY, FINALLY_END,
WITH, ASYNC_WITH, HANDLER_CLEANUP, POP_VALUE, EXCEPTION_HANDLER,
- ASYNC_COMPREHENSION_GENERATOR };
+ EXCEPTION_GROUP_HANDLER, ASYNC_COMPREHENSION_GENERATOR };
struct fblockinfo {
enum fblocktype fb_type;
@@ -323,6 +323,7 @@ static int compiler_call_helper(struct compiler *c, int n,
asdl_expr_seq *args,
asdl_keyword_seq *keywords);
static int compiler_try_except(struct compiler *, stmt_ty);
+static int compiler_try_star_except(struct compiler *, stmt_ty);
static int compiler_set_qualname(struct compiler *);
static int compiler_sync_comprehension_generator(
@@ -1094,6 +1095,8 @@ stack_effect(int opcode, int oparg, int jump)
return -1;
case JUMP_IF_NOT_EXC_MATCH:
return -1;
+ case JUMP_IF_NOT_EG_MATCH:
+ return jump > 0 ? -1 : 2;
case IMPORT_NAME:
return -1;
case IMPORT_FROM:
@@ -1131,6 +1134,8 @@ stack_effect(int opcode, int oparg, int jump)
* if an exception be raised. */
return jump ? -1 + 4 : 0;
+ case PREP_RERAISE_STAR:
+ return 2;
case RERAISE:
return -3;
case PUSH_EXC_INFO:
@@ -1755,6 +1760,18 @@ find_ann(asdl_stmt_seq *stmts)
find_ann(st->v.Try.finalbody) ||
find_ann(st->v.Try.orelse);
break;
+ case TryStar_kind:
+ for (j = 0; j < asdl_seq_LEN(st->v.TryStar.handlers); j++) {
+ excepthandler_ty handler = (excepthandler_ty)asdl_seq_GET(
+ st->v.TryStar.handlers, j);
+ if (find_ann(handler->v.ExceptHandler.body)) {
+ return 1;
+ }
+ }
+ res = find_ann(st->v.TryStar.body) ||
+ find_ann(st->v.TryStar.finalbody) ||
+ find_ann(st->v.TryStar.orelse);
+ break;
default:
res = 0;
}
@@ -1816,6 +1833,7 @@ compiler_unwind_fblock(struct compiler *c, struct fblockinfo *info,
switch (info->fb_type) {
case WHILE_LOOP:
case EXCEPTION_HANDLER:
+ case EXCEPTION_GROUP_HANDLER:
case ASYNC_COMPREHENSION_GENERATOR:
return 1;
@@ -1919,6 +1937,10 @@ compiler_unwind_fblock_stack(struct compiler *c, int preserve_tos, struct fblock
return 1;
}
struct fblockinfo *top = &c->u->u_fblock[c->u->u_nfblocks-1];
+ if (top->fb_type == EXCEPTION_GROUP_HANDLER) {
+ return compiler_error(
+ c, "'break', 'continue' and 'return' cannot appear in an except* block");
+ }
if (loop != NULL && (top->fb_type == WHILE_LOOP || top->fb_type == FOR_LOOP)) {
*loop = top;
return 1;
@@ -3202,6 +3224,62 @@ compiler_try_finally(struct compiler *c, stmt_ty s)
return 1;
}
+static int
+compiler_try_star_finally(struct compiler *c, stmt_ty s)
+{
+ basicblock *body = compiler_new_block(c);
+ if (body == NULL) {
+ return 0;
+ }
+ basicblock *end = compiler_new_block(c);
+ if (!end) {
+ return 0;
+ }
+ basicblock *exit = compiler_new_block(c);
+ if (!exit) {
+ return 0;
+ }
+ basicblock *cleanup = compiler_new_block(c);
+ if (!cleanup) {
+ return 0;
+ }
+ /* `try` block */
+ ADDOP_JUMP(c, SETUP_FINALLY, end);
+ compiler_use_next_block(c, body);
+ if (!compiler_push_fblock(c, FINALLY_TRY, body, end, s->v.TryStar.finalbody)) {
+ return 0;
+ }
+ if (s->v.TryStar.handlers && asdl_seq_LEN(s->v.TryStar.handlers)) {
+ if (!compiler_try_star_except(c, s)) {
+ return 0;
+ }
+ }
+ else {
+ VISIT_SEQ(c, stmt, s->v.TryStar.body);
+ }
+ ADDOP_NOLINE(c, POP_BLOCK);
+ compiler_pop_fblock(c, FINALLY_TRY, body);
+ VISIT_SEQ(c, stmt, s->v.TryStar.finalbody);
+ ADDOP_JUMP_NOLINE(c, JUMP_FORWARD, exit);
+ /* `finally` block */
+ compiler_use_next_block(c, end);
+
+ UNSET_LOC(c);
+ ADDOP_JUMP(c, SETUP_CLEANUP, cleanup);
+ ADDOP(c, PUSH_EXC_INFO);
+ if (!compiler_push_fblock(c, FINALLY_END, end, NULL, NULL)) {
+ return 0;
+ }
+ VISIT_SEQ(c, stmt, s->v.TryStar.finalbody);
+ compiler_pop_fblock(c, FINALLY_END, end);
+ ADDOP_I(c, RERAISE, 0);
+ compiler_use_next_block(c, cleanup);
+ ADDOP(c, POP_EXCEPT_AND_RERAISE);
+ compiler_use_next_block(c, exit);
+ return 1;
+}
+
+
/*
Code generated for "try: S except E1 as V1: S1 except E2 as V2: S2 ...":
(The contents of the value stack is shown in [], with the top
@@ -3360,6 +3438,253 @@ compiler_try_except(struct compiler *c, stmt_ty s)
ADDOP(c, POP_EXCEPT_AND_RERAISE);
compiler_use_next_block(c, orelse);
VISIT_SEQ(c, stmt, s->v.Try.orelse);
+ ADDOP_JUMP(c, JUMP_FORWARD, end);
+ compiler_use_next_block(c, end);
+ return 1;
+}
+
+/*
+ Code generated for "try: S except* E1 as V1: S1 except* E2 as V2: S2 ...":
+ (The contents of the value stack is shown in [], with the top
+ at the right; 'tb' is trace-back info, 'val' the exception instance,
+ and 'typ' the exception's type.)
+
+ Value stack Label Instruction Argument
+ [] SETUP_FINALLY L1
+ [] <code for S>
+ [] POP_BLOCK
+ [] JUMP_FORWARD L0
+
+ [tb, val, typ] L1: DUP_TOP_TWO ) save a copy of the
+ [tb, val, typ, orig, typ] POP_TOP ) original raised exception
+ [tb, val, typ, orig] ROT_FOUR )
+ [orig, tb, val, typ] BUILD_LIST ) list for raised/reraised
+ [orig, tb, val, typ, res] ROT_FOUR ) exceptions ("result")
+
+ [orig, res, tb, val, typ] <evaluate E1> )
+ [orig, res, tb, val, typ, E1] JUMP_IF_NOT_EXC_MATCH L2 ) only if E1
+
+ [orig, res, tb, rest, typ, tb, match, typ] POP
+ [orig, res, tb, rest, typ, tb, match] <assign to V1> (or POP if no V1)
+ [orig, res, tb, rest, typ, tb] POP
+
+ [orig, res, tb, rest, typ] SETUP_FINALLY R1
+ [orig, res, tb, rest, typ] <code for S1>
+ [orig, res, tb, rest, typ] JUMP_FORWARD L2
+
+ [orig, res, tb, rest, typ, i, tb, v, t] R1: POP ) exception raised in except* body
+ [orig, res, tb, rest, typ, i, tb, v] LIST_APPEND 6 ) add it to res
+ [orig, res, tb, rest, typ, i, tb] POP
+ [orig, res, tb, rest, typ, i] POP
+
+ [orig, res, tb, rest, typ] L2: <evaluate E2>
+ .............................etc.......................
+
+ [orig, res, tb, rest, typ] Ln+1: POP ) add unhandled exception
+ [orig, res, tb, rest] LIST_APPEND 2 ) to res (could be None)
+ [orig, res, tb] POP
+
+ [orig, res] PREP_RERAISE_STAR
+ [i, tb, val, typ] POP_JUMP_IF_TRUE RER
+ [i, tb, val, typ] POP
+ [i, tb, val] POP
+ [i, tb] POP
+ [i] POP
+ [] JUMP_FORWARD L0
+
+ [i, tb, val, typ] RER: POP_EXCEPT_AND_RERAISE
+
+ [] L0: <next statement>
+*/
+static int
+compiler_try_star_except(struct compiler *c, stmt_ty s)
+{
+ basicblock *body = compiler_new_block(c);
+ if (body == NULL) {
+ return 0;
+ }
+ basicblock *except = compiler_new_block(c);
+ if (except == NULL) {
+ return 0;
+ }
+ basicblock *orelse = compiler_new_block(c);
+ if (orelse == NULL) {
+ return 0;
+ }
+ basicblock *end = compiler_new_block(c);
+ if (end == NULL) {
+ return 0;
+ }
+ basicblock *cleanup = compiler_new_block(c);
+ if (cleanup == NULL) {
+ return 0;
+ }
+ basicblock *reraise_star = compiler_new_block(c);
+ if (reraise_star == NULL) {
+ return 0;
+ }
+
+ ADDOP_JUMP(c, SETUP_FINALLY, except);
+ compiler_use_next_block(c, body);
+ if (!compiler_push_fblock(c, TRY_EXCEPT, body, NULL, NULL)) {
+ return 0;
+ }
+ VISIT_SEQ(c, stmt, s->v.TryStar.body);
+ compiler_pop_fblock(c, TRY_EXCEPT, body);
+ ADDOP_NOLINE(c, POP_BLOCK);
+ ADDOP_JUMP_NOLINE(c, JUMP_FORWARD, orelse);
+ Py_ssize_t n = asdl_seq_LEN(s->v.TryStar.handlers);
+ compiler_use_next_block(c, except);
+
+ UNSET_LOC(c);
+ ADDOP_JUMP(c, SETUP_CLEANUP, cleanup);
+ ADDOP(c, PUSH_EXC_INFO);
+ /* Runtime will push a block here, so we need to account for that */
+ if (!compiler_push_fblock(c, EXCEPTION_GROUP_HANDLER,
+ NULL, NULL, "except handler")) {
+ return 0;
+ }
+ for (Py_ssize_t i = 0; i < n; i++) {
+ excepthandler_ty handler = (excepthandler_ty)asdl_seq_GET(
+ s->v.TryStar.handlers, i);
+ SET_LOC(c, handler);
+ except = compiler_new_block(c);
+ if (except == NULL) {
+ return 0;
+ }
+ if (i == 0) {
+ /* Push the original EG into the stack */
+ /*
+ [tb, val, exc] DUP_TOP_TWO
+ [tb, val, exc, val, exc] POP_TOP
+ [tb, val, exc, val] ROT_FOUR
+ [val, tb, val, exc]
+ */
+ ADDOP(c, DUP_TOP_TWO);
+ ADDOP(c, POP_TOP);
+ ADDOP(c, ROT_FOUR);
+
+ /* create empty list for exceptions raised/reraise in the except* blocks */
+ /*
+ [val, tb, val, exc] BUILD_LIST
+ [val, tb, val, exc, []] ROT_FOUR
+ [val, [], tb, val, exc]
+ */
+ ADDOP_I(c, BUILD_LIST, 0);
+ ADDOP(c, ROT_FOUR);
+ }
+ if (handler->v.ExceptHandler.type) {
+ VISIT(c, expr, handler->v.ExceptHandler.type);
+ ADDOP_JUMP(c, JUMP_IF_NOT_EG_MATCH, except);
+ NEXT_BLOCK(c);
+ }
+ ADDOP(c, POP_TOP); // exc_type
+
+ basicblock *cleanup_end = compiler_new_block(c);
+ if (cleanup_end == NULL) {
+ return 0;
+ }
+ basicblock *cleanup_body = compiler_new_block(c);
+ if (cleanup_body == NULL) {
+ return 0;
+ }
+
+ if (handler->v.ExceptHandler.name) {
+ compiler_nameop(c, handler->v.ExceptHandler.name, Store);
+ }
+ else {
+ ADDOP(c, POP_TOP); // val
+ }
+ ADDOP(c, POP_TOP); // tb
+
+ /*
+ try:
+ # body
+ except type as name:
+ try:
+ # body
+ finally:
+ name = None # in case body contains "del name"
+ del name
+ */
+ /* second try: */
+ ADDOP_JUMP(c, SETUP_CLEANUP, cleanup_end);
+ compiler_use_next_block(c, cleanup_body);
+ if (!compiler_push_fblock(c, HANDLER_CLEANUP, cleanup_body, NULL, handler->v.ExceptHandler.name))
+ return 0;
+
+ /* second # body */
+ VISIT_SEQ(c, stmt, handler->v.ExceptHandler.body);
+ compiler_pop_fblock(c, HANDLER_CLEANUP, cleanup_body);
+ /* name = None; del name; # Mark as artificial */
+ UNSET_LOC(c);
+ ADDOP(c, POP_BLOCK);
+ if (handler->v.ExceptHandler.name) {
+ ADDOP_LOAD_CONST(c, Py_None);
+ compiler_nameop(c, handler->v.ExceptHandler.name, Store);
+ compiler_nameop(c, handler->v.ExceptHandler.name, Del);
+ }
+ ADDOP_JUMP(c, JUMP_FORWARD, except);
+
+ /* except: */
+ compiler_use_next_block(c, cleanup_end);
+
+ /* name = None; del name; # Mark as artificial */
+ UNSET_LOC(c);
+
+ if (handler->v.ExceptHandler.name) {
+ ADDOP_LOAD_CONST(c, Py_None);
+ compiler_nameop(c, handler->v.ExceptHandler.name, Store);
+ compiler_nameop(c, handler->v.ExceptHandler.name, Del);
+ }
+
+ /* add exception raised to the res list */
+ ADDOP(c, POP_TOP); // type
+ ADDOP_I(c, LIST_APPEND, 6); // exc
+ ADDOP(c, POP_TOP); // tb
+ ADDOP(c, POP_TOP); // lasti
+
+ ADDOP_JUMP(c, JUMP_ABSOLUTE, except);
+ compiler_use_next_block(c, except);
+
+ if (i == n - 1) {
+ /* Add exc to the list (if not None it's the unhandled part of the EG) */
+ ADDOP(c, POP_TOP);
+ ADDOP_I(c, LIST_APPEND, 2);
+ ADDOP(c, POP_TOP);
+ ADDOP_JUMP(c, JUMP_FORWARD, reraise_star);
+ }
+ }
+ /* Mark as artificial */
+ UNSET_LOC(c);
+ compiler_pop_fblock(c, EXCEPTION_GROUP_HANDLER, NULL);
+ basicblock *reraise = compiler_new_block(c);
+ if (!reraise) {
+ return 0;
+ }
+
+ compiler_use_next_block(c, reraise_star);
+ ADDOP(c, PREP_RERAISE_STAR);
+ ADDOP(c, DUP_TOP);
+ ADDOP_JUMP(c, POP_JUMP_IF_TRUE, reraise);
+ NEXT_BLOCK(c);
+
+ /* Nothing to reraise - pop it */
+ ADDOP(c, POP_TOP);
+ ADDOP(c, POP_TOP);
+ ADDOP(c, POP_TOP);
+ ADDOP(c, POP_TOP);
+ ADDOP(c, POP_BLOCK);
+ ADDOP(c, POP_EXCEPT);
+ ADDOP_JUMP(c, JUMP_FORWARD, end);
+ compiler_use_next_block(c, reraise);
+ ADDOP(c, POP_BLOCK);
+ ADDOP(c, POP_EXCEPT_AND_RERAISE);
+ compiler_use_next_block(c, cleanup);
+ ADDOP(c, POP_EXCEPT_AND_RERAISE);
+ compiler_use_next_block(c, orelse);
+ VISIT_SEQ(c, stmt, s->v.TryStar.orelse);
+ ADDOP_JUMP(c, JUMP_FORWARD, end);
compiler_use_next_block(c, end);
return 1;
}
@@ -3372,6 +3697,16 @@ compiler_try(struct compiler *c, stmt_ty s) {
return compiler_try_except(c, s);
}
+static int
+compiler_try_star(struct compiler *c, stmt_ty s)
+{
+ if (s->v.TryStar.finalbody && asdl_seq_LEN(s->v.TryStar.finalbody)) {
+ return compiler_try_star_finally(c, s);
+ }
+ else {
+ return compiler_try_star_except(c, s);
+ }
+}
static int
compiler_import_as(struct compiler *c, identifier name, identifier asname)
@@ -3634,6 +3969,8 @@ compiler_visit_stmt(struct compiler *c, stmt_ty s)
break;
case Try_kind:
return compiler_try(c, s);
+ case TryStar_kind:
+ return compiler_try_star(c, s);
case Assert_kind:
return compiler_assert(c, s);
case Import_kind:
diff --git a/Python/opcode_targets.h b/Python/opcode_targets.h
index 872a688..aeb9830 100644
--- a/Python/opcode_targets.h
+++ b/Python/opcode_targets.h
@@ -87,7 +87,7 @@ static void *opcode_targets[256] = {
&&TARGET_SETUP_ANNOTATIONS,
&&TARGET_YIELD_VALUE,
&&TARGET_LOAD_CONST__LOAD_FAST,
- &&TARGET_STORE_FAST__STORE_FAST,
+ &&TARGET_PREP_RERAISE_STAR,
&&TARGET_POP_EXCEPT,
&&TARGET_STORE_NAME,
&&TARGET_DELETE_NAME,
@@ -122,11 +122,11 @@ static void *opcode_targets[256] = {
&&TARGET_COPY,
&&TARGET_JUMP_IF_NOT_EXC_MATCH,
&&TARGET_BINARY_OP,
- &&_unknown_opcode,
+ &&TARGET_STORE_FAST__STORE_FAST,
&&TARGET_LOAD_FAST,
&&TARGET_STORE_FAST,
&&TARGET_DELETE_FAST,
- &&_unknown_opcode,
+ &&TARGET_JUMP_IF_NOT_EG_MATCH,
&&_unknown_opcode,
&&TARGET_GEN_START,
&&TARGET_RAISE_VARARGS,
diff --git a/Python/symtable.c b/Python/symtable.c
index 7a1f060..01c6ec1 100644
--- a/Python/symtable.c
+++ b/Python/symtable.c
@@ -1345,6 +1345,12 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s)
VISIT_SEQ(st, excepthandler, s->v.Try.handlers);
VISIT_SEQ(st, stmt, s->v.Try.finalbody);
break;
+ case TryStar_kind:
+ VISIT_SEQ(st, stmt, s->v.TryStar.body);
+ VISIT_SEQ(st, stmt, s->v.TryStar.orelse);
+ VISIT_SEQ(st, excepthandler, s->v.TryStar.handlers);
+ VISIT_SEQ(st, stmt, s->v.TryStar.finalbody);
+ break;
case Assert_kind:
VISIT(st, expr, s->v.Assert.test);
if (s->v.Assert.msg)