[Python-checkins] bpo-40939: Remove the old parser (Part 2) (GH-21005)

Lysandros Nikolaou webhook-mailer at python.org
Sat Jun 20 14:07:30 EDT 2020


https://github.com/python/cpython/commit/314858e2763e76e77029ea0b691d749c32939087
commit: 314858e2763e76e77029ea0b691d749c32939087
branch: master
author: Lysandros Nikolaou <lisandrosnik at gmail.com>
committer: GitHub <noreply at github.com>
date: 2020-06-20T19:07:25+01:00
summary:

bpo-40939: Remove the old parser (Part 2) (GH-21005)

Remove some remaining files and Makefile targets for the old parser

files:
A Misc/NEWS.d/next/Core and Builtins/2020-06-20-16-59-02.bpo-40939.6810Ak.rst
D Include/bitset.h
D Include/graminit.h
D Include/grammar.h
D Include/node.h
D Include/parsetok.h
D Lib/symbol.py
D Lib/test/test_symbol.py
D Parser/node.c
D Python/graminit.c
D Tools/scripts/generate_symbol_py.py
M .gitattributes
M Include/ast.h
M Include/compile.h
M Makefile.pre.in
M PCbuild/pythoncore.vcxproj
M PCbuild/pythoncore.vcxproj.filters
M PCbuild/regen.vcxproj
M Python/ast.c
M Python/future.c
M Python/peephole.c
M Python/pythonrun.c
M configure
M configure.ac

diff --git a/.gitattributes b/.gitattributes
index bec16a08152eb..598d8f0f159ae 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -41,8 +41,6 @@ PC/readme.txt text eol=crlf
 
 # Generated files
 # https://github.com/github/linguist#generated-code
-Include/graminit.h          linguist-generated=true
-Python/graminit.h           linguist-generated=true
 Modules/clinic/*.h          linguist-generated=true
 Objects/clinic/*.h          linguist-generated=true
 PC/clinic/*.h               linguist-generated=true
diff --git a/Include/ast.h b/Include/ast.h
index a8c52af786b14..de42a3b5e6f91 100644
--- a/Include/ast.h
+++ b/Include/ast.h
@@ -6,19 +6,8 @@ extern "C" {
 #endif
 
 #include "Python-ast.h"   /* mod_ty */
-#include "node.h"         /* node */
 
 PyAPI_FUNC(int) PyAST_Validate(mod_ty);
-PyAPI_FUNC(mod_ty) PyAST_FromNode(
-    const node *n,
-    PyCompilerFlags *flags,
-    const char *filename,       /* decoded from the filesystem encoding */
-    PyArena *arena);
-PyAPI_FUNC(mod_ty) PyAST_FromNodeObject(
-    const node *n,
-    PyCompilerFlags *flags,
-    PyObject *filename,
-    PyArena *arena);
 
 /* _PyAST_ExprAsUnicode is defined in ast_unparse.c */
 PyAPI_FUNC(PyObject *) _PyAST_ExprAsUnicode(expr_ty);
diff --git a/Include/bitset.h b/Include/bitset.h
deleted file mode 100644
index 6a2ac9787eaba..0000000000000
--- a/Include/bitset.h
+++ /dev/null
@@ -1,23 +0,0 @@
-
-#ifndef Py_BITSET_H
-#define Py_BITSET_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Bitset interface */
-
-#define BYTE            char
-typedef BYTE *bitset;
-
-#define testbit(ss, ibit) (((ss)[BIT2BYTE(ibit)] & BIT2MASK(ibit)) != 0)
-
-#define BITSPERBYTE     (8*sizeof(BYTE))
-#define BIT2BYTE(ibit)  ((ibit) / BITSPERBYTE)
-#define BIT2SHIFT(ibit) ((ibit) % BITSPERBYTE)
-#define BIT2MASK(ibit)  (1 << BIT2SHIFT(ibit))
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_BITSET_H */
diff --git a/Include/compile.h b/Include/compile.h
index 12417ce805464..4dd5435ce71a9 100644
--- a/Include/compile.h
+++ b/Include/compile.h
@@ -8,10 +8,6 @@ extern "C" {
 #endif
 
 /* Public interface */
-struct _node; /* Declare the existence of this type */
-PyAPI_FUNC(PyCodeObject *) PyNode_Compile(struct _node *, const char *);
-/* XXX (ncoghlan): Unprefixed type name in a public API! */
-
 #define PyCF_MASK (CO_FUTURE_DIVISION | CO_FUTURE_ABSOLUTE_IMPORT | \
                    CO_FUTURE_WITH_STATEMENT | CO_FUTURE_PRINT_FUNCTION | \
                    CO_FUTURE_UNICODE_LITERALS | CO_FUTURE_BARRY_AS_BDFL | \
diff --git a/Include/graminit.h b/Include/graminit.h
deleted file mode 100644
index d1027b7a743f2..0000000000000
--- a/Include/graminit.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/* Generated by Parser/pgen */
-
-#define single_input 256
-#define file_input 257
-#define eval_input 258
-#define decorator 259
-#define decorators 260
-#define decorated 261
-#define async_funcdef 262
-#define funcdef 263
-#define parameters 264
-#define typedargslist 265
-#define tfpdef 266
-#define varargslist 267
-#define vfpdef 268
-#define stmt 269
-#define simple_stmt 270
-#define small_stmt 271
-#define expr_stmt 272
-#define annassign 273
-#define testlist_star_expr 274
-#define augassign 275
-#define del_stmt 276
-#define pass_stmt 277
-#define flow_stmt 278
-#define break_stmt 279
-#define continue_stmt 280
-#define return_stmt 281
-#define yield_stmt 282
-#define raise_stmt 283
-#define import_stmt 284
-#define import_name 285
-#define import_from 286
-#define import_as_name 287
-#define dotted_as_name 288
-#define import_as_names 289
-#define dotted_as_names 290
-#define dotted_name 291
-#define global_stmt 292
-#define nonlocal_stmt 293
-#define assert_stmt 294
-#define compound_stmt 295
-#define async_stmt 296
-#define if_stmt 297
-#define while_stmt 298
-#define for_stmt 299
-#define try_stmt 300
-#define with_stmt 301
-#define with_item 302
-#define except_clause 303
-#define suite 304
-#define namedexpr_test 305
-#define test 306
-#define test_nocond 307
-#define lambdef 308
-#define lambdef_nocond 309
-#define or_test 310
-#define and_test 311
-#define not_test 312
-#define comparison 313
-#define comp_op 314
-#define star_expr 315
-#define expr 316
-#define xor_expr 317
-#define and_expr 318
-#define shift_expr 319
-#define arith_expr 320
-#define term 321
-#define factor 322
-#define power 323
-#define atom_expr 324
-#define atom 325
-#define testlist_comp 326
-#define trailer 327
-#define subscriptlist 328
-#define subscript 329
-#define sliceop 330
-#define exprlist 331
-#define testlist 332
-#define dictorsetmaker 333
-#define classdef 334
-#define arglist 335
-#define argument 336
-#define comp_iter 337
-#define sync_comp_for 338
-#define comp_for 339
-#define comp_if 340
-#define encoding_decl 341
-#define yield_expr 342
-#define yield_arg 343
-#define func_body_suite 344
-#define func_type_input 345
-#define func_type 346
-#define typelist 347
diff --git a/Include/grammar.h b/Include/grammar.h
deleted file mode 100644
index 4b66b1e9b9745..0000000000000
--- a/Include/grammar.h
+++ /dev/null
@@ -1,77 +0,0 @@
-
-/* Grammar interface */
-
-#ifndef Py_GRAMMAR_H
-#define Py_GRAMMAR_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "bitset.h" /* Sigh... */
-
-/* A label of an arc */
-
-typedef struct {
-    int          lb_type;
-    const char  *lb_str;
-} label;
-
-#define EMPTY 0         /* Label number 0 is by definition the empty label */
-
-/* A list of labels */
-
-typedef struct {
-    int          ll_nlabels;
-    const label *ll_label;
-} labellist;
-
-/* An arc from one state to another */
-
-typedef struct {
-    short       a_lbl;          /* Label of this arc */
-    short       a_arrow;        /* State where this arc goes to */
-} arc;
-
-/* A state in a DFA */
-
-typedef struct {
-    int          s_narcs;
-    const arc   *s_arc;         /* Array of arcs */
-
-    /* Optional accelerators */
-    int          s_lower;       /* Lowest label index */
-    int          s_upper;       /* Highest label index */
-    int         *s_accel;       /* Accelerator */
-    int          s_accept;      /* Nonzero for accepting state */
-} state;
-
-/* A DFA */
-
-typedef struct {
-    int          d_type;        /* Non-terminal this represents */
-    char        *d_name;        /* For printing */
-    int          d_nstates;
-    state       *d_state;       /* Array of states */
-    bitset       d_first;
-} dfa;
-
-/* A grammar */
-
-typedef struct {
-    int          g_ndfas;
-    const dfa   *g_dfa;         /* Array of DFAs */
-    const labellist g_ll;
-    int          g_start;       /* Start symbol of the grammar */
-    int          g_accel;       /* Set if accelerators present */
-} grammar;
-
-/* FUNCTIONS */
-const dfa *PyGrammar_FindDFA(grammar *g, int type);
-const char *PyGrammar_LabelRepr(label *lb);
-void PyGrammar_AddAccelerators(grammar *g);
-void PyGrammar_RemoveAccelerators(grammar *);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_GRAMMAR_H */
diff --git a/Include/node.h b/Include/node.h
deleted file mode 100644
index ca24f28908592..0000000000000
--- a/Include/node.h
+++ /dev/null
@@ -1,47 +0,0 @@
-
-/* Parse tree node interface */
-
-#ifndef Py_NODE_H
-#define Py_NODE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct _node {
-    short               n_type;
-    char                *n_str;
-    int                 n_lineno;
-    int                 n_col_offset;
-    int                 n_nchildren;
-    struct _node        *n_child;
-    int                 n_end_lineno;
-    int                 n_end_col_offset;
-} node;
-
-PyAPI_FUNC(node *) PyNode_New(int type);
-PyAPI_FUNC(int) PyNode_AddChild(node *n, int type,
-                                char *str, int lineno, int col_offset,
-                                int end_lineno, int end_col_offset);
-PyAPI_FUNC(void) PyNode_Free(node *n);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(Py_ssize_t) _PyNode_SizeOf(node *n);
-#endif
-
-/* Node access functions */
-#define NCH(n)          ((n)->n_nchildren)
-
-#define CHILD(n, i)     (&(n)->n_child[i])
-#define TYPE(n)         ((n)->n_type)
-#define STR(n)          ((n)->n_str)
-#define LINENO(n)       ((n)->n_lineno)
-
-/* Assert that the type of a node is what we expect */
-#define REQ(n, type) assert(TYPE(n) == (type))
-
-PyAPI_FUNC(void) PyNode_ListTree(node *);
-void _PyNode_FinalizeEndPos(node *n);  // helper also used in parsetok.c
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_NODE_H */
diff --git a/Include/parsetok.h b/Include/parsetok.h
deleted file mode 100644
index 935d733e90a5a..0000000000000
--- a/Include/parsetok.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* Parser-tokenizer link interface */
-
-#ifndef Py_LIMITED_API
-#ifndef Py_PARSETOK_H
-#define Py_PARSETOK_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "grammar.h"      /* grammar */
-#include "node.h"         /* node */
-
-typedef struct {
-    int error;
-    PyObject *filename;
-    int lineno;
-    int offset;
-    char *text;                 /* UTF-8-encoded string */
-    int token;
-    int expected;
-} perrdetail;
-
-#if 0
-#define PyPARSE_YIELD_IS_KEYWORD        0x0001
-#endif
-
-#define PyPARSE_DONT_IMPLY_DEDENT       0x0002
-
-#if 0
-#define PyPARSE_WITH_IS_KEYWORD         0x0003
-#define PyPARSE_PRINT_IS_FUNCTION       0x0004
-#define PyPARSE_UNICODE_LITERALS        0x0008
-#endif
-
-#define PyPARSE_IGNORE_COOKIE 0x0010
-#define PyPARSE_BARRY_AS_BDFL 0x0020
-#define PyPARSE_TYPE_COMMENTS 0x0040
-#define PyPARSE_ASYNC_HACKS   0x0080
-
-PyAPI_FUNC(node *) PyParser_ParseString(const char *, grammar *, int,
-                                              perrdetail *);
-PyAPI_FUNC(node *) PyParser_ParseFile (FILE *, const char *, grammar *, int,
-                                             const char *, const char *,
-                                             perrdetail *);
-
-PyAPI_FUNC(node *) PyParser_ParseStringFlags(const char *, grammar *, int,
-                                              perrdetail *, int);
-PyAPI_FUNC(node *) PyParser_ParseFileFlags(
-    FILE *fp,
-    const char *filename,       /* decoded from the filesystem encoding */
-    const char *enc,
-    grammar *g,
-    int start,
-    const char *ps1,
-    const char *ps2,
-    perrdetail *err_ret,
-    int flags);
-PyAPI_FUNC(node *) PyParser_ParseFileFlagsEx(
-    FILE *fp,
-    const char *filename,       /* decoded from the filesystem encoding */
-    const char *enc,
-    grammar *g,
-    int start,
-    const char *ps1,
-    const char *ps2,
-    perrdetail *err_ret,
-    int *flags);
-PyAPI_FUNC(node *) PyParser_ParseFileObject(
-    FILE *fp,
-    PyObject *filename,
-    const char *enc,
-    grammar *g,
-    int start,
-    const char *ps1,
-    const char *ps2,
-    perrdetail *err_ret,
-    int *flags);
-
-PyAPI_FUNC(node *) PyParser_ParseStringFlagsFilename(
-    const char *s,
-    const char *filename,       /* decoded from the filesystem encoding */
-    grammar *g,
-    int start,
-    perrdetail *err_ret,
-    int flags);
-PyAPI_FUNC(node *) PyParser_ParseStringFlagsFilenameEx(
-    const char *s,
-    const char *filename,       /* decoded from the filesystem encoding */
-    grammar *g,
-    int start,
-    perrdetail *err_ret,
-    int *flags);
-PyAPI_FUNC(node *) PyParser_ParseStringObject(
-    const char *s,
-    PyObject *filename,
-    grammar *g,
-    int start,
-    perrdetail *err_ret,
-    int *flags);
-
-/* Note that the following functions are defined in pythonrun.c,
-   not in parsetok.c */
-PyAPI_FUNC(void) PyParser_SetError(perrdetail *);
-PyAPI_FUNC(void) PyParser_ClearError(perrdetail *);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_PARSETOK_H */
-#endif /* !Py_LIMITED_API */
diff --git a/Lib/symbol.py b/Lib/symbol.py
deleted file mode 100644
index aaac8c914431b..0000000000000
--- a/Lib/symbol.py
+++ /dev/null
@@ -1,122 +0,0 @@
-"""Non-terminal symbols of Python grammar (from "graminit.h")."""
-
-#  This file is automatically generated; please don't muck it up!
-#
-#  To update the symbols in this file, 'cd' to the top directory of
-#  the python source tree after building the interpreter and run:
-#
-#    python3 Tools/scripts/generate_symbol_py.py Include/graminit.h Lib/symbol.py
-#
-# or just
-#
-#    make regen-symbol
-
-import warnings
-
-warnings.warn(
-    "The symbol module is deprecated and will be removed "
-    "in future versions of Python",
-    DeprecationWarning,
-    stacklevel=2,
-)
-
-#--start constants--
-single_input = 256
-file_input = 257
-eval_input = 258
-decorator = 259
-decorators = 260
-decorated = 261
-async_funcdef = 262
-funcdef = 263
-parameters = 264
-typedargslist = 265
-tfpdef = 266
-varargslist = 267
-vfpdef = 268
-stmt = 269
-simple_stmt = 270
-small_stmt = 271
-expr_stmt = 272
-annassign = 273
-testlist_star_expr = 274
-augassign = 275
-del_stmt = 276
-pass_stmt = 277
-flow_stmt = 278
-break_stmt = 279
-continue_stmt = 280
-return_stmt = 281
-yield_stmt = 282
-raise_stmt = 283
-import_stmt = 284
-import_name = 285
-import_from = 286
-import_as_name = 287
-dotted_as_name = 288
-import_as_names = 289
-dotted_as_names = 290
-dotted_name = 291
-global_stmt = 292
-nonlocal_stmt = 293
-assert_stmt = 294
-compound_stmt = 295
-async_stmt = 296
-if_stmt = 297
-while_stmt = 298
-for_stmt = 299
-try_stmt = 300
-with_stmt = 301
-with_item = 302
-except_clause = 303
-suite = 304
-namedexpr_test = 305
-test = 306
-test_nocond = 307
-lambdef = 308
-lambdef_nocond = 309
-or_test = 310
-and_test = 311
-not_test = 312
-comparison = 313
-comp_op = 314
-star_expr = 315
-expr = 316
-xor_expr = 317
-and_expr = 318
-shift_expr = 319
-arith_expr = 320
-term = 321
-factor = 322
-power = 323
-atom_expr = 324
-atom = 325
-testlist_comp = 326
-trailer = 327
-subscriptlist = 328
-subscript = 329
-sliceop = 330
-exprlist = 331
-testlist = 332
-dictorsetmaker = 333
-classdef = 334
-arglist = 335
-argument = 336
-comp_iter = 337
-sync_comp_for = 338
-comp_for = 339
-comp_if = 340
-encoding_decl = 341
-yield_expr = 342
-yield_arg = 343
-func_body_suite = 344
-func_type_input = 345
-func_type = 346
-typelist = 347
-#--end constants--
-
-sym_name = {}
-for _name, _value in list(globals().items()):
-    if type(_value) is type(0):
-        sym_name[_value] = _name
-del _name, _value
diff --git a/Lib/test/test_symbol.py b/Lib/test/test_symbol.py
deleted file mode 100644
index 645d8f43b6cd9..0000000000000
--- a/Lib/test/test_symbol.py
+++ /dev/null
@@ -1,58 +0,0 @@
-import unittest
-from test import support
-import os
-import sys
-import sysconfig
-import subprocess
-
-
-SYMBOL_FILE              = support.findfile('symbol.py')
-GEN_SYMBOL_FILE          = os.path.join(os.path.dirname(__file__),
-                                        '..', '..', 'Tools', 'scripts',
-                                        'generate_symbol_py.py')
-GRAMMAR_FILE             = os.path.join(os.path.dirname(__file__),
-                                        '..', '..', 'Include', 'graminit.h')
-TEST_PY_FILE             = 'symbol_test.py'
-
-
-class TestSymbolGeneration(unittest.TestCase):
-
-    def _copy_file_without_generated_symbols(self, source_file, dest_file):
-        with open(source_file) as fp:
-            lines = fp.readlines()
-        with open(dest_file, 'w') as fp:
-            fp.writelines(lines[:lines.index("#--start constants--\n") + 1])
-            fp.writelines(lines[lines.index("#--end constants--\n"):])
-
-    def _generate_symbols(self, grammar_file, target_symbol_py_file):
-        proc = subprocess.Popen([sys.executable,
-                                 GEN_SYMBOL_FILE,
-                                 grammar_file,
-                                 target_symbol_py_file], stderr=subprocess.PIPE)
-        stderr = proc.communicate()[1]
-        return proc.returncode, stderr
-
-    def compare_files(self, file1, file2):
-        with open(file1) as fp:
-            lines1 = fp.readlines()
-        with open(file2) as fp:
-            lines2 = fp.readlines()
-        self.assertEqual(lines1, lines2)
-
-    @unittest.skipUnless(sysconfig.is_python_build(),
-                         'test only works from source build directory')
-    def test_real_grammar_and_symbol_file(self):
-        output = support.TESTFN
-        self.addCleanup(support.unlink, output)
-
-        self._copy_file_without_generated_symbols(SYMBOL_FILE, output)
-
-        exitcode, stderr = self._generate_symbols(GRAMMAR_FILE, output)
-        self.assertEqual(b'', stderr)
-        self.assertEqual(0, exitcode)
-
-        self.compare_files(SYMBOL_FILE, output)
-
-
-if __name__ == "__main__":
-    unittest.main()
diff --git a/Makefile.pre.in b/Makefile.pre.in
index 684171217167b..fc6dc434e0a18 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -344,7 +344,6 @@ PYTHON_OBJS=	\
 		Python/getcopyright.o \
 		Python/getplatform.o \
 		Python/getversion.o \
-		Python/graminit.o \
 		Python/hamt.o \
 		Python/hashtable.o \
 		Python/import.o \
@@ -742,7 +741,7 @@ regen-importlib: Programs/_freeze_importlib
 # Regenerate all generated files
 
 regen-all: regen-opcode regen-opcode-targets regen-typeslots \
-	regen-token regen-symbol regen-ast regen-importlib clinic \
+	regen-token regen-ast regen-importlib clinic \
 	regen-pegen-metaparser regen-pegen
 
 ############################################################################
@@ -881,15 +880,7 @@ regen-keyword:
 		$(srcdir)/Lib/keyword.py.new
 	$(UPDATE_FILE) $(srcdir)/Lib/keyword.py $(srcdir)/Lib/keyword.py.new
 
-.PHONY: regen-symbol
-regen-symbol: $(srcdir)/Include/graminit.h
-	# Regenerate Lib/symbol.py from Include/graminit.h
-	# using Tools/scripts/generate_symbol_py.py
-	$(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_symbol_py.py \
-		$(srcdir)/Include/graminit.h \
-		$(srcdir)/Lib/symbol.py
-
-Python/compile.o Python/symtable.o Python/ast_unparse.o Python/ast.o Python/future.o Parser/parsetok.o: $(srcdir)/Include/graminit.h $(srcdir)/Include/Python-ast.h
+Python/compile.o Python/symtable.o Python/ast_unparse.o Python/ast.o Python/future.o: $(srcdir)/Include/Python-ast.h
 
 Python/getplatform.o: $(srcdir)/Python/getplatform.c
 		$(CC) -c $(PY_CORE_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
@@ -989,7 +980,6 @@ PYTHON_HEADERS= \
 		$(srcdir)/Include/abstract.h \
 		$(srcdir)/Include/asdl.h \
 		$(srcdir)/Include/ast.h \
-		$(srcdir)/Include/bitset.h \
 		$(srcdir)/Include/bltinmodule.h \
 		$(srcdir)/Include/boolobject.h \
 		$(srcdir)/Include/bytearrayobject.h \
@@ -1027,7 +1017,6 @@ PYTHON_HEADERS= \
 		$(srcdir)/Include/modsupport.h \
 		$(srcdir)/Include/moduleobject.h \
 		$(srcdir)/Include/namespaceobject.h \
-		$(srcdir)/Include/node.h \
 		$(srcdir)/Include/object.h \
 		$(srcdir)/Include/objimpl.h \
 		$(srcdir)/Include/odictobject.h \
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-06-20-16-59-02.bpo-40939.6810Ak.rst b/Misc/NEWS.d/next/Core and Builtins/2020-06-20-16-59-02.bpo-40939.6810Ak.rst
new file mode 100644
index 0000000000000..8a626d479a91c
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-06-20-16-59-02.bpo-40939.6810Ak.rst	
@@ -0,0 +1 @@
+Remove the remaining files from the old parser and the :mod:`symbol` module.
\ No newline at end of file
diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj
index 2653ce9111d18..0f9110e08d65b 100644
--- a/PCbuild/pythoncore.vcxproj
+++ b/PCbuild/pythoncore.vcxproj
@@ -115,7 +115,6 @@
     <ClInclude Include="..\Include\abstract.h" />
     <ClInclude Include="..\Include\asdl.h" />
     <ClInclude Include="..\Include\ast.h" />
-    <ClInclude Include="..\Include\bitset.h" />
     <ClInclude Include="..\Include\boolobject.h" />
     <ClInclude Include="..\Include\bytearrayobject.h" />
     <ClInclude Include="..\Include\bytesobject.h" />
@@ -162,8 +161,6 @@
     <ClInclude Include="..\Include\frameobject.h" />
     <ClInclude Include="..\Include\funcobject.h" />
     <ClInclude Include="..\Include\genobject.h" />
-    <ClInclude Include="..\Include\graminit.h" />
-    <ClInclude Include="..\Include\grammar.h" />
     <ClInclude Include="..\Include\import.h" />
     <ClInclude Include="..\Include\internal\pegen_interface.h" />
     <ClInclude Include="..\Include\internal\pycore_abstract.h" />
@@ -209,14 +206,12 @@
     <ClInclude Include="..\Include\modsupport.h" />
     <ClInclude Include="..\Include\moduleobject.h" />
     <ClInclude Include="..\Include\namespaceobject.h" />
-    <ClInclude Include="..\Include\node.h" />
     <ClInclude Include="..\Include\object.h" />
     <ClInclude Include="..\Include\objimpl.h" />
     <ClInclude Include="..\Include\odictobject.h" />
     <ClInclude Include="..\Include\opcode.h" />
     <ClInclude Include="..\Include\osdefs.h" />
     <ClInclude Include="..\Include\osmodule.h" />
-    <ClInclude Include="..\Include\parsetok.h" />
     <ClInclude Include="..\Include\patchlevel.h" />
     <ClInclude Include="..\Include\picklebufobject.h" />
     <ClInclude Include="..\Include\py_curses.h" />
@@ -451,7 +446,6 @@
     <ClCompile Include="..\Python\getopt.c" />
     <ClCompile Include="..\Python\getplatform.c" />
     <ClCompile Include="..\Python\getversion.c" />
-    <ClCompile Include="..\Python\graminit.c" />
     <ClCompile Include="..\Python\hamt.c" />
     <ClCompile Include="..\Python\hashtable.c" />
     <ClCompile Include="..\Python\import.c" />
diff --git a/PCbuild/pythoncore.vcxproj.filters b/PCbuild/pythoncore.vcxproj.filters
index 6ea7afaa03681..12f05acc3a74a 100644
--- a/PCbuild/pythoncore.vcxproj.filters
+++ b/PCbuild/pythoncore.vcxproj.filters
@@ -42,9 +42,6 @@
     <ClInclude Include="..\Include\ast.h">
       <Filter>Include</Filter>
     </ClInclude>
-    <ClInclude Include="..\Include\bitset.h">
-      <Filter>Include</Filter>
-    </ClInclude>
     <ClInclude Include="..\Include\boolobject.h">
       <Filter>Include</Filter>
     </ClInclude>
@@ -183,12 +180,6 @@
     <ClInclude Include="..\Include\genobject.h">
       <Filter>Include</Filter>
     </ClInclude>
-    <ClInclude Include="..\Include\graminit.h">
-      <Filter>Include</Filter>
-    </ClInclude>
-    <ClInclude Include="..\Include\grammar.h">
-      <Filter>Include</Filter>
-    </ClInclude>
     <ClInclude Include="..\Include\import.h">
       <Filter>Include</Filter>
     </ClInclude>
@@ -318,9 +309,6 @@
     <ClInclude Include="..\Include\moduleobject.h">
       <Filter>Include</Filter>
     </ClInclude>
-    <ClInclude Include="..\Include\node.h">
-      <Filter>Include</Filter>
-    </ClInclude>
     <ClInclude Include="..\Include\object.h">
       <Filter>Include</Filter>
     </ClInclude>
@@ -336,9 +324,6 @@
     <ClInclude Include="..\Include\osmodule.h">
       <Filter>Include</Filter>
     </ClInclude>
-    <ClInclude Include="..\Include\parsetok.h">
-      <Filter>Include</Filter>
-    </ClInclude>
     <ClInclude Include="..\Include\patchlevel.h">
       <Filter>Include</Filter>
     </ClInclude>
@@ -1010,9 +995,6 @@
     <ClCompile Include="..\Python\getversion.c">
       <Filter>Python</Filter>
     </ClCompile>
-    <ClCompile Include="..\Python\graminit.c">
-      <Filter>Python</Filter>
-    </ClCompile>
     <ClCompile Include="..\Python\hamt.h">
       <Filter>Python</Filter>
     </ClCompile>
diff --git a/PCbuild/regen.vcxproj b/PCbuild/regen.vcxproj
index ea246ffc8ff25..90d6dc68d5404 100644
--- a/PCbuild/regen.vcxproj
+++ b/PCbuild/regen.vcxproj
@@ -133,10 +133,6 @@
     </None>
     <None Include="..\Grammar\Tokens">
     </None>
-    <None Include="..\Include\graminit.h">
-    </None>
-    <None Include="..\Python\graminit.c">
-    </None>
     <None Include="..\Include\token.h">
     </None>
     <None Include="..\Include\opcode.h">
@@ -202,18 +198,12 @@
     </Copy>
     <Warning Text="Keywords updated. You will need to rebuild pythoncore to see the changes." Condition="'@(_Updated)' != ''" />
   </Target>
-  <Target Name="_RegenSymbols" AfterTargets="_RegenKeywords">
-    <!-- Regenerate Lib/symbol.py from Include/graminit.h using Tools/scripts/generate_symbol_py.py-->
-    <Exec Command=""$(PythonExe)" $(PySourcePath)Tools\scripts\generate_symbol_py.py "$(PySourcePath)Include\graminit.h"  "$(PySourcePath)Lib\symbol.py"" />
-  </Target>
   <Target Name="_CleanFiles" BeforeTargets="CoreClean">
     <ItemGroup>
       <Clean Include="$(IntDir)keyword.py" />
       <Clean Include="$(IntDir)opcode.h" />
       <Clean Include="$(IntDir)Python-ast.c" />
       <Clean Include="$(IntDir)Python-ast.h" />
-      <Clean Include="$(IntDir)graminit.h.new" />
-      <Clean Include="$(IntDir)graminit.c.new" />
     </ItemGroup>
   </Target>
 </Project>
diff --git a/Parser/node.c b/Parser/node.c
deleted file mode 100644
index 8789e01e9b848..0000000000000
--- a/Parser/node.c
+++ /dev/null
@@ -1,189 +0,0 @@
-/* Parse tree node implementation */
-
-#include "Python.h"
-#include "node.h"
-#include "errcode.h"
-
-node *
-PyNode_New(int type)
-{
-    node *n = (node *) PyObject_MALLOC(1 * sizeof(node));
-    if (n == NULL)
-        return NULL;
-    n->n_type = type;
-    n->n_str = NULL;
-    n->n_lineno = 0;
-    n->n_end_lineno = 0;
-    n->n_col_offset = 0;
-    n->n_end_col_offset = -1;
-    n->n_nchildren = 0;
-    n->n_child = NULL;
-    return n;
-}
-
-/* See comments at XXXROUNDUP below.  Returns -1 on overflow. */
-static int
-fancy_roundup(int n)
-{
-    /* Round up to the closest power of 2 >= n. */
-    int result = 256;
-    assert(n > 128);
-    while (result < n) {
-        result <<= 1;
-        if (result <= 0)
-            return -1;
-    }
-    return result;
-}
-
-/* A gimmick to make massive numbers of reallocs quicker.  The result is
- * a number >= the input.  In PyNode_AddChild, it's used like so, when
- * we're about to add child number current_size + 1:
- *
- *     if XXXROUNDUP(current_size) < XXXROUNDUP(current_size + 1):
- *         allocate space for XXXROUNDUP(current_size + 1) total children
- *     else:
- *         we already have enough space
- *
- * Since a node starts out empty, we must have
- *
- *     XXXROUNDUP(0) < XXXROUNDUP(1)
- *
- * so that we allocate space for the first child.  One-child nodes are very
- * common (presumably that would change if we used a more abstract form
- * of syntax tree), so to avoid wasting memory it's desirable that
- * XXXROUNDUP(1) == 1.  That in turn forces XXXROUNDUP(0) == 0.
- *
- * Else for 2 <= n <= 128, we round up to the closest multiple of 4.  Why 4?
- * Rounding up to a multiple of an exact power of 2 is very efficient, and
- * most nodes with more than one child have <= 4 kids.
- *
- * Else we call fancy_roundup() to grow proportionately to n.  We've got an
- * extreme case then (like test_longexp.py), and on many platforms doing
- * anything less than proportional growth leads to exorbitant runtime
- * (e.g., MacPython), or extreme fragmentation of user address space (e.g.,
- * Win98).
- *
- * In a run of compileall across the 2.3a0 Lib directory, Andrew MacIntyre
- * reported that, with this scheme, 89% of PyObject_REALLOC calls in
- * PyNode_AddChild passed 1 for the size, and 9% passed 4.  So this usually
- * wastes very little memory, but is very effective at sidestepping
- * platform-realloc disasters on vulnerable platforms.
- *
- * Note that this would be straightforward if a node stored its current
- * capacity.  The code is tricky to avoid that.
- */
-#define XXXROUNDUP(n) ((n) <= 1 ? (n) :                         \
-               (n) <= 128 ? (int)_Py_SIZE_ROUND_UP((n), 4) :    \
-               fancy_roundup(n))
-
-
-void
-_PyNode_FinalizeEndPos(node *n)
-{
-    int nch = NCH(n);
-    node *last;
-    if (nch == 0) {
-        return;
-    }
-    last = CHILD(n, nch - 1);
-    _PyNode_FinalizeEndPos(last);
-    n->n_end_lineno = last->n_end_lineno;
-    n->n_end_col_offset = last->n_end_col_offset;
-}
-
-int
-PyNode_AddChild(node *n1, int type, char *str, int lineno, int col_offset,
-                int end_lineno, int end_col_offset)
-{
-    const int nch = n1->n_nchildren;
-    int current_capacity;
-    int required_capacity;
-    node *n;
-
-    // finalize end position of previous node (if any)
-    if (nch > 0) {
-        _PyNode_FinalizeEndPos(CHILD(n1, nch - 1));
-    }
-
-    if (nch == INT_MAX || nch < 0)
-        return E_OVERFLOW;
-
-    current_capacity = XXXROUNDUP(nch);
-    required_capacity = XXXROUNDUP(nch + 1);
-    if (current_capacity < 0 || required_capacity < 0)
-        return E_OVERFLOW;
-    if (current_capacity < required_capacity) {
-        if ((size_t)required_capacity > SIZE_MAX / sizeof(node)) {
-            return E_NOMEM;
-        }
-        n = n1->n_child;
-        n = (node *) PyObject_REALLOC(n,
-                                      required_capacity * sizeof(node));
-        if (n == NULL)
-            return E_NOMEM;
-        n1->n_child = n;
-    }
-
-    n = &n1->n_child[n1->n_nchildren++];
-    n->n_type = type;
-    n->n_str = str;
-    n->n_lineno = lineno;
-    n->n_col_offset = col_offset;
-    n->n_end_lineno = end_lineno;  // this and below will be updates after all children are added.
-    n->n_end_col_offset = end_col_offset;
-    n->n_nchildren = 0;
-    n->n_child = NULL;
-    return 0;
-}
-
-/* Forward */
-static void freechildren(node *);
-static Py_ssize_t sizeofchildren(node *n);
-
-
-void
-PyNode_Free(node *n)
-{
-    if (n != NULL) {
-        freechildren(n);
-        PyObject_FREE(n);
-    }
-}
-
-Py_ssize_t
-_PyNode_SizeOf(node *n)
-{
-    Py_ssize_t res = 0;
-
-    if (n != NULL)
-        res = sizeof(node) + sizeofchildren(n);
-    return res;
-}
-
-static void
-freechildren(node *n)
-{
-    int i;
-    for (i = NCH(n); --i >= 0; )
-        freechildren(CHILD(n, i));
-    if (n->n_child != NULL)
-        PyObject_FREE(n->n_child);
-    if (STR(n) != NULL)
-        PyObject_FREE(STR(n));
-}
-
-static Py_ssize_t
-sizeofchildren(node *n)
-{
-    Py_ssize_t res = 0;
-    int i;
-    for (i = NCH(n); --i >= 0; )
-        res += sizeofchildren(CHILD(n, i));
-    if (n->n_child != NULL)
-        /* allocated size of n->n_child array */
-        res += XXXROUNDUP(NCH(n)) * sizeof(node);
-    if (STR(n) != NULL)
-        res += strlen(STR(n)) + 1;
-    return res;
-}
diff --git a/Python/ast.c b/Python/ast.c
index d7feb8ce852fd..7bf66e50aa14d 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -5,7 +5,6 @@
  */
 #include "Python.h"
 #include "Python-ast.h"
-#include "node.h"
 #include "ast.h"
 #include "token.h"
 #include "pythonrun.h"
diff --git a/Python/future.c b/Python/future.c
index 1663a38a6fdb3..56da4d8c798b8 100644
--- a/Python/future.c
+++ b/Python/future.c
@@ -1,8 +1,6 @@
 #include "Python.h"
 #include "Python-ast.h"
-#include "node.h"
 #include "token.h"
-#include "graminit.h"
 #include "code.h"
 #include "symtable.h"
 #include "ast.h"
diff --git a/Python/graminit.c b/Python/graminit.c
deleted file mode 100644
index b7aa52895f8ae..0000000000000
--- a/Python/graminit.c
+++ /dev/null
@@ -1,2688 +0,0 @@
-/* Generated by Parser/pgen */
-
-#include "exports.h"
-#include "grammar.h"
-Py_EXPORTED_SYMBOL grammar _PyParser_Grammar;
-static const arc arcs_0_0[3] = {
-    {2, 1},
-    {3, 2},
-    {4, 1},
-};
-static const arc arcs_0_1[1] = {
-    {0, 1},
-};
-static const arc arcs_0_2[1] = {
-    {2, 1},
-};
-static state states_0[3] = {
-    {3, arcs_0_0},
-    {1, arcs_0_1},
-    {1, arcs_0_2},
-};
-static const arc arcs_1_0[3] = {
-    {44, 1},
-    {2, 0},
-    {45, 0},
-};
-static const arc arcs_1_1[1] = {
-    {0, 1},
-};
-static state states_1[2] = {
-    {3, arcs_1_0},
-    {1, arcs_1_1},
-};
-static const arc arcs_2_0[1] = {
-    {47, 1},
-};
-static const arc arcs_2_1[2] = {
-    {44, 2},
-    {2, 1},
-};
-static const arc arcs_2_2[1] = {
-    {0, 2},
-};
-static state states_2[3] = {
-    {1, arcs_2_0},
-    {2, arcs_2_1},
-    {1, arcs_2_2},
-};
-static const arc arcs_3_0[1] = {
-    {10, 1},
-};
-static const arc arcs_3_1[1] = {
-    {49, 2},
-};
-static const arc arcs_3_2[1] = {
-    {2, 3},
-};
-static const arc arcs_3_3[1] = {
-    {0, 3},
-};
-static state states_3[4] = {
-    {1, arcs_3_0},
-    {1, arcs_3_1},
-    {1, arcs_3_2},
-    {1, arcs_3_3},
-};
-static const arc arcs_4_0[1] = {
-    {48, 1},
-};
-static const arc arcs_4_1[2] = {
-    {48, 1},
-    {0, 1},
-};
-static state states_4[2] = {
-    {1, arcs_4_0},
-    {2, arcs_4_1},
-};
-static const arc arcs_5_0[1] = {
-    {50, 1},
-};
-static const arc arcs_5_1[3] = {
-    {52, 2},
-    {53, 2},
-    {54, 2},
-};
-static const arc arcs_5_2[1] = {
-    {0, 2},
-};
-static state states_5[3] = {
-    {1, arcs_5_0},
-    {3, arcs_5_1},
-    {1, arcs_5_2},
-};
-static const arc arcs_6_0[1] = {
-    {38, 1},
-};
-static const arc arcs_6_1[1] = {
-    {54, 2},
-};
-static const arc arcs_6_2[1] = {
-    {0, 2},
-};
-static state states_6[3] = {
-    {1, arcs_6_0},
-    {1, arcs_6_1},
-    {1, arcs_6_2},
-};
-static const arc arcs_7_0[1] = {
-    {19, 1},
-};
-static const arc arcs_7_1[1] = {
-    {40, 2},
-};
-static const arc arcs_7_2[1] = {
-    {55, 3},
-};
-static const arc arcs_7_3[2] = {
-    {56, 4},
-    {57, 5},
-};
-static const arc arcs_7_4[1] = {
-    {58, 6},
-};
-static const arc arcs_7_5[2] = {
-    {59, 7},
-    {60, 8},
-};
-static const arc arcs_7_6[1] = {
-    {57, 5},
-};
-static const arc arcs_7_7[1] = {
-    {60, 8},
-};
-static const arc arcs_7_8[1] = {
-    {0, 8},
-};
-static state states_7[9] = {
-    {1, arcs_7_0},
-    {1, arcs_7_1},
-    {1, arcs_7_2},
-    {2, arcs_7_3},
-    {1, arcs_7_4},
-    {2, arcs_7_5},
-    {1, arcs_7_6},
-    {1, arcs_7_7},
-    {1, arcs_7_8},
-};
-static const arc arcs_8_0[1] = {
-    {5, 1},
-};
-static const arc arcs_8_1[2] = {
-    {61, 2},
-    {62, 3},
-};
-static const arc arcs_8_2[1] = {
-    {0, 2},
-};
-static const arc arcs_8_3[1] = {
-    {61, 2},
-};
-static state states_8[4] = {
-    {1, arcs_8_0},
-    {2, arcs_8_1},
-    {1, arcs_8_2},
-    {1, arcs_8_3},
-};
-static const arc arcs_9_0[3] = {
-    {6, 1},
-    {63, 2},
-    {64, 3},
-};
-static const arc arcs_9_1[4] = {
-    {65, 4},
-    {59, 5},
-    {64, 6},
-    {0, 1},
-};
-static const arc arcs_9_2[1] = {
-    {64, 7},
-};
-static const arc arcs_9_3[4] = {
-    {65, 8},
-    {66, 9},
-    {59, 5},
-    {0, 3},
-};
-static const arc arcs_9_4[4] = {
-    {63, 2},
-    {59, 10},
-    {64, 11},
-    {0, 4},
-};
-static const arc arcs_9_5[1] = {
-    {0, 5},
-};
-static const arc arcs_9_6[3] = {
-    {65, 4},
-    {59, 5},
-    {0, 6},
-};
-static const arc arcs_9_7[3] = {
-    {65, 12},
-    {59, 5},
-    {0, 7},
-};
-static const arc arcs_9_8[6] = {
-    {6, 13},
-    {63, 2},
-    {67, 14},
-    {59, 15},
-    {64, 3},
-    {0, 8},
-};
-static const arc arcs_9_9[1] = {
-    {58, 16},
-};
-static const arc arcs_9_10[3] = {
-    {63, 2},
-    {64, 11},
-    {0, 10},
-};
-static const arc arcs_9_11[4] = {
-    {65, 4},
-    {66, 17},
-    {59, 5},
-    {0, 11},
-};
-static const arc arcs_9_12[2] = {
-    {59, 5},
-    {0, 12},
-};
-static const arc arcs_9_13[4] = {
-    {65, 18},
-    {59, 5},
-    {64, 19},
-    {0, 13},
-};
-static const arc arcs_9_14[2] = {
-    {65, 20},
-    {0, 14},
-};
-static const arc arcs_9_15[5] = {
-    {6, 13},
-    {63, 2},
-    {67, 14},
-    {64, 3},
-    {0, 15},
-};
-static const arc arcs_9_16[3] = {
-    {65, 8},
-    {59, 5},
-    {0, 16},
-};
-static const arc arcs_9_17[1] = {
-    {58, 6},
-};
-static const arc arcs_9_18[4] = {
-    {63, 2},
-    {59, 21},
-    {64, 22},
-    {0, 18},
-};
-static const arc arcs_9_19[3] = {
-    {65, 18},
-    {59, 5},
-    {0, 19},
-};
-static const arc arcs_9_20[5] = {
-    {6, 23},
-    {63, 2},
-    {59, 24},
-    {64, 25},
-    {0, 20},
-};
-static const arc arcs_9_21[3] = {
-    {63, 2},
-    {64, 22},
-    {0, 21},
-};
-static const arc arcs_9_22[4] = {
-    {65, 18},
-    {66, 26},
-    {59, 5},
-    {0, 22},
-};
-static const arc arcs_9_23[4] = {
-    {65, 27},
-    {59, 5},
-    {64, 28},
-    {0, 23},
-};
-static const arc arcs_9_24[1] = {
-    {64, 25},
-};
-static const arc arcs_9_25[4] = {
-    {65, 29},
-    {66, 30},
-    {59, 5},
-    {0, 25},
-};
-static const arc arcs_9_26[1] = {
-    {58, 19},
-};
-static const arc arcs_9_27[4] = {
-    {63, 2},
-    {59, 31},
-    {64, 32},
-    {0, 27},
-};
-static const arc arcs_9_28[3] = {
-    {65, 27},
-    {59, 5},
-    {0, 28},
-};
-static const arc arcs_9_29[5] = {
-    {6, 33},
-    {63, 2},
-    {59, 34},
-    {64, 25},
-    {0, 29},
-};
-static const arc arcs_9_30[1] = {
-    {58, 35},
-};
-static const arc arcs_9_31[3] = {
-    {63, 2},
-    {64, 32},
-    {0, 31},
-};
-static const arc arcs_9_32[4] = {
-    {65, 27},
-    {66, 36},
-    {59, 5},
-    {0, 32},
-};
-static const arc arcs_9_33[4] = {
-    {65, 37},
-    {59, 5},
-    {64, 38},
-    {0, 33},
-};
-static const arc arcs_9_34[4] = {
-    {6, 33},
-    {63, 2},
-    {64, 25},
-    {0, 34},
-};
-static const arc arcs_9_35[3] = {
-    {65, 29},
-    {59, 5},
-    {0, 35},
-};
-static const arc arcs_9_36[1] = {
-    {58, 28},
-};
-static const arc arcs_9_37[4] = {
-    {63, 2},
-    {59, 39},
-    {64, 40},
-    {0, 37},
-};
-static const arc arcs_9_38[3] = {
-    {65, 37},
-    {59, 5},
-    {0, 38},
-};
-static const arc arcs_9_39[3] = {
-    {63, 2},
-    {64, 40},
-    {0, 39},
-};
-static const arc arcs_9_40[4] = {
-    {65, 37},
-    {66, 41},
-    {59, 5},
-    {0, 40},
-};
-static const arc arcs_9_41[1] = {
-    {58, 38},
-};
-static state states_9[42] = {
-    {3, arcs_9_0},
-    {4, arcs_9_1},
-    {1, arcs_9_2},
-    {4, arcs_9_3},
-    {4, arcs_9_4},
-    {1, arcs_9_5},
-    {3, arcs_9_6},
-    {3, arcs_9_7},
-    {6, arcs_9_8},
-    {1, arcs_9_9},
-    {3, arcs_9_10},
-    {4, arcs_9_11},
-    {2, arcs_9_12},
-    {4, arcs_9_13},
-    {2, arcs_9_14},
-    {5, arcs_9_15},
-    {3, arcs_9_16},
-    {1, arcs_9_17},
-    {4, arcs_9_18},
-    {3, arcs_9_19},
-    {5, arcs_9_20},
-    {3, arcs_9_21},
-    {4, arcs_9_22},
-    {4, arcs_9_23},
-    {1, arcs_9_24},
-    {4, arcs_9_25},
-    {1, arcs_9_26},
-    {4, arcs_9_27},
-    {3, arcs_9_28},
-    {5, arcs_9_29},
-    {1, arcs_9_30},
-    {3, arcs_9_31},
-    {4, arcs_9_32},
-    {4, arcs_9_33},
-    {4, arcs_9_34},
-    {3, arcs_9_35},
-    {1, arcs_9_36},
-    {4, arcs_9_37},
-    {3, arcs_9_38},
-    {3, arcs_9_39},
-    {4, arcs_9_40},
-    {1, arcs_9_41},
-};
-static const arc arcs_10_0[1] = {
-    {40, 1},
-};
-static const arc arcs_10_1[2] = {
-    {57, 2},
-    {0, 1},
-};
-static const arc arcs_10_2[1] = {
-    {58, 3},
-};
-static const arc arcs_10_3[1] = {
-    {0, 3},
-};
-static state states_10[4] = {
-    {1, arcs_10_0},
-    {2, arcs_10_1},
-    {1, arcs_10_2},
-    {1, arcs_10_3},
-};
-static const arc arcs_11_0[3] = {
-    {6, 1},
-    {63, 2},
-    {69, 3},
-};
-static const arc arcs_11_1[3] = {
-    {65, 4},
-    {69, 5},
-    {0, 1},
-};
-static const arc arcs_11_2[1] = {
-    {69, 6},
-};
-static const arc arcs_11_3[3] = {
-    {65, 7},
-    {66, 8},
-    {0, 3},
-};
-static const arc arcs_11_4[3] = {
-    {63, 2},
-    {69, 9},
-    {0, 4},
-};
-static const arc arcs_11_5[2] = {
-    {65, 4},
-    {0, 5},
-};
-static const arc arcs_11_6[2] = {
-    {65, 10},
-    {0, 6},
-};
-static const arc arcs_11_7[5] = {
-    {6, 11},
-    {63, 2},
-    {67, 12},
-    {69, 3},
-    {0, 7},
-};
-static const arc arcs_11_8[1] = {
-    {58, 13},
-};
-static const arc arcs_11_9[3] = {
-    {65, 4},
-    {66, 14},
-    {0, 9},
-};
-static const arc arcs_11_10[1] = {
-    {0, 10},
-};
-static const arc arcs_11_11[3] = {
-    {65, 15},
-    {69, 16},
-    {0, 11},
-};
-static const arc arcs_11_12[2] = {
-    {65, 17},
-    {0, 12},
-};
-static const arc arcs_11_13[2] = {
-    {65, 7},
-    {0, 13},
-};
-static const arc arcs_11_14[1] = {
-    {58, 5},
-};
-static const arc arcs_11_15[3] = {
-    {63, 2},
-    {69, 18},
-    {0, 15},
-};
-static const arc arcs_11_16[2] = {
-    {65, 15},
-    {0, 16},
-};
-static const arc arcs_11_17[4] = {
-    {6, 19},
-    {63, 2},
-    {69, 20},
-    {0, 17},
-};
-static const arc arcs_11_18[3] = {
-    {65, 15},
-    {66, 21},
-    {0, 18},
-};
-static const arc arcs_11_19[3] = {
-    {65, 22},
-    {69, 23},
-    {0, 19},
-};
-static const arc arcs_11_20[3] = {
-    {65, 24},
-    {66, 25},
-    {0, 20},
-};
-static const arc arcs_11_21[1] = {
-    {58, 16},
-};
-static const arc arcs_11_22[3] = {
-    {63, 2},
-    {69, 26},
-    {0, 22},
-};
-static const arc arcs_11_23[2] = {
-    {65, 22},
-    {0, 23},
-};
-static const arc arcs_11_24[4] = {
-    {6, 27},
-    {63, 2},
-    {69, 20},
-    {0, 24},
-};
-static const arc arcs_11_25[1] = {
-    {58, 28},
-};
-static const arc arcs_11_26[3] = {
-    {65, 22},
-    {66, 29},
-    {0, 26},
-};
-static const arc arcs_11_27[3] = {
-    {65, 30},
-    {69, 31},
-    {0, 27},
-};
-static const arc arcs_11_28[2] = {
-    {65, 24},
-    {0, 28},
-};
-static const arc arcs_11_29[1] = {
-    {58, 23},
-};
-static const arc arcs_11_30[3] = {
-    {63, 2},
-    {69, 32},
-    {0, 30},
-};
-static const arc arcs_11_31[2] = {
-    {65, 30},
-    {0, 31},
-};
-static const arc arcs_11_32[3] = {
-    {65, 30},
-    {66, 33},
-    {0, 32},
-};
-static const arc arcs_11_33[1] = {
-    {58, 31},
-};
-static state states_11[34] = {
-    {3, arcs_11_0},
-    {3, arcs_11_1},
-    {1, arcs_11_2},
-    {3, arcs_11_3},
-    {3, arcs_11_4},
-    {2, arcs_11_5},
-    {2, arcs_11_6},
-    {5, arcs_11_7},
-    {1, arcs_11_8},
-    {3, arcs_11_9},
-    {1, arcs_11_10},
-    {3, arcs_11_11},
-    {2, arcs_11_12},
-    {2, arcs_11_13},
-    {1, arcs_11_14},
-    {3, arcs_11_15},
-    {2, arcs_11_16},
-    {4, arcs_11_17},
-    {3, arcs_11_18},
-    {3, arcs_11_19},
-    {3, arcs_11_20},
-    {1, arcs_11_21},
-    {3, arcs_11_22},
-    {2, arcs_11_23},
-    {4, arcs_11_24},
-    {1, arcs_11_25},
-    {3, arcs_11_26},
-    {3, arcs_11_27},
-    {2, arcs_11_28},
-    {1, arcs_11_29},
-    {3, arcs_11_30},
-    {2, arcs_11_31},
-    {3, arcs_11_32},
-    {1, arcs_11_33},
-};
-static const arc arcs_12_0[1] = {
-    {40, 1},
-};
-static const arc arcs_12_1[1] = {
-    {0, 1},
-};
-static state states_12[2] = {
-    {1, arcs_12_0},
-    {1, arcs_12_1},
-};
-static const arc arcs_13_0[2] = {
-    {3, 1},
-    {4, 1},
-};
-static const arc arcs_13_1[1] = {
-    {0, 1},
-};
-static state states_13[2] = {
-    {2, arcs_13_0},
-    {1, arcs_13_1},
-};
-static const arc arcs_14_0[1] = {
-    {70, 1},
-};
-static const arc arcs_14_1[2] = {
-    {71, 2},
-    {2, 3},
-};
-static const arc arcs_14_2[2] = {
-    {2, 3},
-    {70, 1},
-};
-static const arc arcs_14_3[1] = {
-    {0, 3},
-};
-static state states_14[4] = {
-    {1, arcs_14_0},
-    {2, arcs_14_1},
-    {2, arcs_14_2},
-    {1, arcs_14_3},
-};
-static const arc arcs_15_0[8] = {
-    {72, 1},
-    {73, 1},
-    {74, 1},
-    {75, 1},
-    {76, 1},
-    {77, 1},
-    {78, 1},
-    {79, 1},
-};
-static const arc arcs_15_1[1] = {
-    {0, 1},
-};
-static state states_15[2] = {
-    {8, arcs_15_0},
-    {1, arcs_15_1},
-};
-static const arc arcs_16_0[1] = {
-    {80, 1},
-};
-static const arc arcs_16_1[4] = {
-    {66, 2},
-    {81, 3},
-    {82, 4},
-    {0, 1},
-};
-static const arc arcs_16_2[2] = {
-    {80, 5},
-    {83, 5},
-};
-static const arc arcs_16_3[1] = {
-    {0, 3},
-};
-static const arc arcs_16_4[2] = {
-    {47, 3},
-    {83, 3},
-};
-static const arc arcs_16_5[3] = {
-    {66, 2},
-    {59, 3},
-    {0, 5},
-};
-static state states_16[6] = {
-    {1, arcs_16_0},
-    {4, arcs_16_1},
-    {2, arcs_16_2},
-    {1, arcs_16_3},
-    {2, arcs_16_4},
-    {3, arcs_16_5},
-};
-static const arc arcs_17_0[1] = {
-    {57, 1},
-};
-static const arc arcs_17_1[1] = {
-    {58, 2},
-};
-static const arc arcs_17_2[2] = {
-    {66, 3},
-    {0, 2},
-};
-static const arc arcs_17_3[2] = {
-    {80, 4},
-    {83, 4},
-};
-static const arc arcs_17_4[1] = {
-    {0, 4},
-};
-static state states_17[5] = {
-    {1, arcs_17_0},
-    {1, arcs_17_1},
-    {2, arcs_17_2},
-    {2, arcs_17_3},
-    {1, arcs_17_4},
-};
-static const arc arcs_18_0[2] = {
-    {84, 1},
-    {58, 1},
-};
-static const arc arcs_18_1[2] = {
-    {65, 2},
-    {0, 1},
-};
-static const arc arcs_18_2[3] = {
-    {84, 1},
-    {58, 1},
-    {0, 2},
-};
-static state states_18[3] = {
-    {2, arcs_18_0},
-    {2, arcs_18_1},
-    {3, arcs_18_2},
-};
-static const arc arcs_19_0[13] = {
-    {85, 1},
-    {86, 1},
-    {87, 1},
-    {88, 1},
-    {89, 1},
-    {90, 1},
-    {91, 1},
-    {92, 1},
-    {93, 1},
-    {94, 1},
-    {95, 1},
-    {96, 1},
-    {97, 1},
-};
-static const arc arcs_19_1[1] = {
-    {0, 1},
-};
-static state states_19[2] = {
-    {13, arcs_19_0},
-    {1, arcs_19_1},
-};
-static const arc arcs_20_0[1] = {
-    {20, 1},
-};
-static const arc arcs_20_1[1] = {
-    {98, 2},
-};
-static const arc arcs_20_2[1] = {
-    {0, 2},
-};
-static state states_20[3] = {
-    {1, arcs_20_0},
-    {1, arcs_20_1},
-    {1, arcs_20_2},
-};
-static const arc arcs_21_0[1] = {
-    {29, 1},
-};
-static const arc arcs_21_1[1] = {
-    {0, 1},
-};
-static state states_21[2] = {
-    {1, arcs_21_0},
-    {1, arcs_21_1},
-};
-static const arc arcs_22_0[5] = {
-    {99, 1},
-    {100, 1},
-    {101, 1},
-    {102, 1},
-    {103, 1},
-};
-static const arc arcs_22_1[1] = {
-    {0, 1},
-};
-static state states_22[2] = {
-    {5, arcs_22_0},
-    {1, arcs_22_1},
-};
-static const arc arcs_23_0[1] = {
-    {16, 1},
-};
-static const arc arcs_23_1[1] = {
-    {0, 1},
-};
-static state states_23[2] = {
-    {1, arcs_23_0},
-    {1, arcs_23_1},
-};
-static const arc arcs_24_0[1] = {
-    {18, 1},
-};
-static const arc arcs_24_1[1] = {
-    {0, 1},
-};
-static state states_24[2] = {
-    {1, arcs_24_0},
-    {1, arcs_24_1},
-};
-static const arc arcs_25_0[1] = {
-    {31, 1},
-};
-static const arc arcs_25_1[2] = {
-    {80, 2},
-    {0, 1},
-};
-static const arc arcs_25_2[1] = {
-    {0, 2},
-};
-static state states_25[3] = {
-    {1, arcs_25_0},
-    {2, arcs_25_1},
-    {1, arcs_25_2},
-};
-static const arc arcs_26_0[1] = {
-    {83, 1},
-};
-static const arc arcs_26_1[1] = {
-    {0, 1},
-};
-static state states_26[2] = {
-    {1, arcs_26_0},
-    {1, arcs_26_1},
-};
-static const arc arcs_27_0[1] = {
-    {30, 1},
-};
-static const arc arcs_27_1[2] = {
-    {58, 2},
-    {0, 1},
-};
-static const arc arcs_27_2[2] = {
-    {22, 3},
-    {0, 2},
-};
-static const arc arcs_27_3[1] = {
-    {58, 4},
-};
-static const arc arcs_27_4[1] = {
-    {0, 4},
-};
-static state states_27[5] = {
-    {1, arcs_27_0},
-    {2, arcs_27_1},
-    {2, arcs_27_2},
-    {1, arcs_27_3},
-    {1, arcs_27_4},
-};
-static const arc arcs_28_0[2] = {
-    {104, 1},
-    {105, 1},
-};
-static const arc arcs_28_1[1] = {
-    {0, 1},
-};
-static state states_28[2] = {
-    {2, arcs_28_0},
-    {1, arcs_28_1},
-};
-static const arc arcs_29_0[1] = {
-    {25, 1},
-};
-static const arc arcs_29_1[1] = {
-    {106, 2},
-};
-static const arc arcs_29_2[1] = {
-    {0, 2},
-};
-static state states_29[3] = {
-    {1, arcs_29_0},
-    {1, arcs_29_1},
-    {1, arcs_29_2},
-};
-static const arc arcs_30_0[1] = {
-    {22, 1},
-};
-static const arc arcs_30_1[3] = {
-    {107, 2},
-    {9, 2},
-    {108, 3},
-};
-static const arc arcs_30_2[4] = {
-    {107, 2},
-    {9, 2},
-    {25, 4},
-    {108, 3},
-};
-static const arc arcs_30_3[1] = {
-    {25, 4},
-};
-static const arc arcs_30_4[3] = {
-    {5, 5},
-    {6, 6},
-    {109, 6},
-};
-static const arc arcs_30_5[1] = {
-    {109, 7},
-};
-static const arc arcs_30_6[1] = {
-    {0, 6},
-};
-static const arc arcs_30_7[1] = {
-    {61, 6},
-};
-static state states_30[8] = {
-    {1, arcs_30_0},
-    {3, arcs_30_1},
-    {4, arcs_30_2},
-    {1, arcs_30_3},
-    {3, arcs_30_4},
-    {1, arcs_30_5},
-    {1, arcs_30_6},
-    {1, arcs_30_7},
-};
-static const arc arcs_31_0[1] = {
-    {40, 1},
-};
-static const arc arcs_31_1[2] = {
-    {111, 2},
-    {0, 1},
-};
-static const arc arcs_31_2[1] = {
-    {40, 3},
-};
-static const arc arcs_31_3[1] = {
-    {0, 3},
-};
-static state states_31[4] = {
-    {1, arcs_31_0},
-    {2, arcs_31_1},
-    {1, arcs_31_2},
-    {1, arcs_31_3},
-};
-static const arc arcs_32_0[1] = {
-    {108, 1},
-};
-static const arc arcs_32_1[2] = {
-    {111, 2},
-    {0, 1},
-};
-static const arc arcs_32_2[1] = {
-    {40, 3},
-};
-static const arc arcs_32_3[1] = {
-    {0, 3},
-};
-static state states_32[4] = {
-    {1, arcs_32_0},
-    {2, arcs_32_1},
-    {1, arcs_32_2},
-    {1, arcs_32_3},
-};
-static const arc arcs_33_0[1] = {
-    {110, 1},
-};
-static const arc arcs_33_1[2] = {
-    {65, 2},
-    {0, 1},
-};
-static const arc arcs_33_2[2] = {
-    {110, 1},
-    {0, 2},
-};
-static state states_33[3] = {
-    {1, arcs_33_0},
-    {2, arcs_33_1},
-    {2, arcs_33_2},
-};
-static const arc arcs_34_0[1] = {
-    {112, 1},
-};
-static const arc arcs_34_1[2] = {
-    {65, 0},
-    {0, 1},
-};
-static state states_34[2] = {
-    {1, arcs_34_0},
-    {2, arcs_34_1},
-};
-static const arc arcs_35_0[1] = {
-    {40, 1},
-};
-static const arc arcs_35_1[2] = {
-    {107, 0},
-    {0, 1},
-};
-static state states_35[2] = {
-    {1, arcs_35_0},
-    {2, arcs_35_1},
-};
-static const arc arcs_36_0[1] = {
-    {23, 1},
-};
-static const arc arcs_36_1[1] = {
-    {40, 2},
-};
-static const arc arcs_36_2[2] = {
-    {65, 1},
-    {0, 2},
-};
-static state states_36[3] = {
-    {1, arcs_36_0},
-    {1, arcs_36_1},
-    {2, arcs_36_2},
-};
-static const arc arcs_37_0[1] = {
-    {27, 1},
-};
-static const arc arcs_37_1[1] = {
-    {40, 2},
-};
-static const arc arcs_37_2[2] = {
-    {65, 1},
-    {0, 2},
-};
-static state states_37[3] = {
-    {1, arcs_37_0},
-    {1, arcs_37_1},
-    {2, arcs_37_2},
-};
-static const arc arcs_38_0[1] = {
-    {15, 1},
-};
-static const arc arcs_38_1[1] = {
-    {58, 2},
-};
-static const arc arcs_38_2[2] = {
-    {65, 3},
-    {0, 2},
-};
-static const arc arcs_38_3[1] = {
-    {58, 4},
-};
-static const arc arcs_38_4[1] = {
-    {0, 4},
-};
-static state states_38[5] = {
-    {1, arcs_38_0},
-    {1, arcs_38_1},
-    {2, arcs_38_2},
-    {1, arcs_38_3},
-    {1, arcs_38_4},
-};
-static const arc arcs_39_0[9] = {
-    {113, 1},
-    {53, 1},
-    {51, 1},
-    {114, 1},
-    {54, 1},
-    {115, 1},
-    {116, 1},
-    {117, 1},
-    {118, 1},
-};
-static const arc arcs_39_1[1] = {
-    {0, 1},
-};
-static state states_39[2] = {
-    {9, arcs_39_0},
-    {1, arcs_39_1},
-};
-static const arc arcs_40_0[1] = {
-    {38, 1},
-};
-static const arc arcs_40_1[3] = {
-    {114, 2},
-    {54, 2},
-    {118, 2},
-};
-static const arc arcs_40_2[1] = {
-    {0, 2},
-};
-static state states_40[3] = {
-    {1, arcs_40_0},
-    {3, arcs_40_1},
-    {1, arcs_40_2},
-};
-static const arc arcs_41_0[1] = {
-    {24, 1},
-};
-static const arc arcs_41_1[1] = {
-    {49, 2},
-};
-static const arc arcs_41_2[1] = {
-    {57, 3},
-};
-static const arc arcs_41_3[1] = {
-    {119, 4},
-};
-static const arc arcs_41_4[3] = {
-    {120, 1},
-    {121, 5},
-    {0, 4},
-};
-static const arc arcs_41_5[1] = {
-    {57, 6},
-};
-static const arc arcs_41_6[1] = {
-    {119, 7},
-};
-static const arc arcs_41_7[1] = {
-    {0, 7},
-};
-static state states_41[8] = {
-    {1, arcs_41_0},
-    {1, arcs_41_1},
-    {1, arcs_41_2},
-    {1, arcs_41_3},
-    {3, arcs_41_4},
-    {1, arcs_41_5},
-    {1, arcs_41_6},
-    {1, arcs_41_7},
-};
-static const arc arcs_42_0[1] = {
-    {33, 1},
-};
-static const arc arcs_42_1[1] = {
-    {49, 2},
-};
-static const arc arcs_42_2[1] = {
-    {57, 3},
-};
-static const arc arcs_42_3[1] = {
-    {119, 4},
-};
-static const arc arcs_42_4[2] = {
-    {121, 5},
-    {0, 4},
-};
-static const arc arcs_42_5[1] = {
-    {57, 6},
-};
-static const arc arcs_42_6[1] = {
-    {119, 7},
-};
-static const arc arcs_42_7[1] = {
-    {0, 7},
-};
-static state states_42[8] = {
-    {1, arcs_42_0},
-    {1, arcs_42_1},
-    {1, arcs_42_2},
-    {1, arcs_42_3},
-    {2, arcs_42_4},
-    {1, arcs_42_5},
-    {1, arcs_42_6},
-    {1, arcs_42_7},
-};
-static const arc arcs_43_0[1] = {
-    {21, 1},
-};
-static const arc arcs_43_1[1] = {
-    {98, 2},
-};
-static const arc arcs_43_2[1] = {
-    {122, 3},
-};
-static const arc arcs_43_3[1] = {
-    {47, 4},
-};
-static const arc arcs_43_4[1] = {
-    {57, 5},
-};
-static const arc arcs_43_5[2] = {
-    {59, 6},
-    {119, 7},
-};
-static const arc arcs_43_6[1] = {
-    {119, 7},
-};
-static const arc arcs_43_7[2] = {
-    {121, 8},
-    {0, 7},
-};
-static const arc arcs_43_8[1] = {
-    {57, 9},
-};
-static const arc arcs_43_9[1] = {
-    {119, 10},
-};
-static const arc arcs_43_10[1] = {
-    {0, 10},
-};
-static state states_43[11] = {
-    {1, arcs_43_0},
-    {1, arcs_43_1},
-    {1, arcs_43_2},
-    {1, arcs_43_3},
-    {1, arcs_43_4},
-    {2, arcs_43_5},
-    {1, arcs_43_6},
-    {2, arcs_43_7},
-    {1, arcs_43_8},
-    {1, arcs_43_9},
-    {1, arcs_43_10},
-};
-static const arc arcs_44_0[1] = {
-    {32, 1},
-};
-static const arc arcs_44_1[1] = {
-    {57, 2},
-};
-static const arc arcs_44_2[1] = {
-    {119, 3},
-};
-static const arc arcs_44_3[2] = {
-    {123, 4},
-    {124, 5},
-};
-static const arc arcs_44_4[1] = {
-    {57, 6},
-};
-static const arc arcs_44_5[1] = {
-    {57, 7},
-};
-static const arc arcs_44_6[1] = {
-    {119, 8},
-};
-static const arc arcs_44_7[1] = {
-    {119, 9},
-};
-static const arc arcs_44_8[1] = {
-    {0, 8},
-};
-static const arc arcs_44_9[4] = {
-    {121, 10},
-    {123, 4},
-    {124, 5},
-    {0, 9},
-};
-static const arc arcs_44_10[1] = {
-    {57, 11},
-};
-static const arc arcs_44_11[1] = {
-    {119, 12},
-};
-static const arc arcs_44_12[2] = {
-    {123, 4},
-    {0, 12},
-};
-static state states_44[13] = {
-    {1, arcs_44_0},
-    {1, arcs_44_1},
-    {1, arcs_44_2},
-    {2, arcs_44_3},
-    {1, arcs_44_4},
-    {1, arcs_44_5},
-    {1, arcs_44_6},
-    {1, arcs_44_7},
-    {1, arcs_44_8},
-    {4, arcs_44_9},
-    {1, arcs_44_10},
-    {1, arcs_44_11},
-    {2, arcs_44_12},
-};
-static const arc arcs_45_0[1] = {
-    {34, 1},
-};
-static const arc arcs_45_1[1] = {
-    {125, 2},
-};
-static const arc arcs_45_2[2] = {
-    {65, 1},
-    {57, 3},
-};
-static const arc arcs_45_3[2] = {
-    {59, 4},
-    {119, 5},
-};
-static const arc arcs_45_4[1] = {
-    {119, 5},
-};
-static const arc arcs_45_5[1] = {
-    {0, 5},
-};
-static state states_45[6] = {
-    {1, arcs_45_0},
-    {1, arcs_45_1},
-    {2, arcs_45_2},
-    {2, arcs_45_3},
-    {1, arcs_45_4},
-    {1, arcs_45_5},
-};
-static const arc arcs_46_0[1] = {
-    {58, 1},
-};
-static const arc arcs_46_1[2] = {
-    {111, 2},
-    {0, 1},
-};
-static const arc arcs_46_2[1] = {
-    {126, 3},
-};
-static const arc arcs_46_3[1] = {
-    {0, 3},
-};
-static state states_46[4] = {
-    {1, arcs_46_0},
-    {2, arcs_46_1},
-    {1, arcs_46_2},
-    {1, arcs_46_3},
-};
-static const arc arcs_47_0[1] = {
-    {127, 1},
-};
-static const arc arcs_47_1[2] = {
-    {58, 2},
-    {0, 1},
-};
-static const arc arcs_47_2[2] = {
-    {111, 3},
-    {0, 2},
-};
-static const arc arcs_47_3[1] = {
-    {40, 4},
-};
-static const arc arcs_47_4[1] = {
-    {0, 4},
-};
-static state states_47[5] = {
-    {1, arcs_47_0},
-    {2, arcs_47_1},
-    {2, arcs_47_2},
-    {1, arcs_47_3},
-    {1, arcs_47_4},
-};
-static const arc arcs_48_0[2] = {
-    {2, 1},
-    {4, 2},
-};
-static const arc arcs_48_1[1] = {
-    {128, 3},
-};
-static const arc arcs_48_2[1] = {
-    {0, 2},
-};
-static const arc arcs_48_3[1] = {
-    {45, 4},
-};
-static const arc arcs_48_4[2] = {
-    {129, 2},
-    {45, 4},
-};
-static state states_48[5] = {
-    {2, arcs_48_0},
-    {1, arcs_48_1},
-    {1, arcs_48_2},
-    {1, arcs_48_3},
-    {2, arcs_48_4},
-};
-static const arc arcs_49_0[1] = {
-    {58, 1},
-};
-static const arc arcs_49_1[2] = {
-    {130, 2},
-    {0, 1},
-};
-static const arc arcs_49_2[1] = {
-    {58, 3},
-};
-static const arc arcs_49_3[1] = {
-    {0, 3},
-};
-static state states_49[4] = {
-    {1, arcs_49_0},
-    {2, arcs_49_1},
-    {1, arcs_49_2},
-    {1, arcs_49_3},
-};
-static const arc arcs_50_0[2] = {
-    {131, 1},
-    {132, 2},
-};
-static const arc arcs_50_1[1] = {
-    {0, 1},
-};
-static const arc arcs_50_2[2] = {
-    {24, 3},
-    {0, 2},
-};
-static const arc arcs_50_3[1] = {
-    {132, 4},
-};
-static const arc arcs_50_4[1] = {
-    {121, 5},
-};
-static const arc arcs_50_5[1] = {
-    {58, 1},
-};
-static state states_50[6] = {
-    {2, arcs_50_0},
-    {1, arcs_50_1},
-    {2, arcs_50_2},
-    {1, arcs_50_3},
-    {1, arcs_50_4},
-    {1, arcs_50_5},
-};
-static const arc arcs_51_0[2] = {
-    {134, 1},
-    {132, 1},
-};
-static const arc arcs_51_1[1] = {
-    {0, 1},
-};
-static state states_51[2] = {
-    {2, arcs_51_0},
-    {1, arcs_51_1},
-};
-static const arc arcs_52_0[1] = {
-    {26, 1},
-};
-static const arc arcs_52_1[2] = {
-    {57, 2},
-    {68, 3},
-};
-static const arc arcs_52_2[1] = {
-    {58, 4},
-};
-static const arc arcs_52_3[1] = {
-    {57, 2},
-};
-static const arc arcs_52_4[1] = {
-    {0, 4},
-};
-static state states_52[5] = {
-    {1, arcs_52_0},
-    {2, arcs_52_1},
-    {1, arcs_52_2},
-    {1, arcs_52_3},
-    {1, arcs_52_4},
-};
-static const arc arcs_53_0[1] = {
-    {26, 1},
-};
-static const arc arcs_53_1[2] = {
-    {57, 2},
-    {68, 3},
-};
-static const arc arcs_53_2[1] = {
-    {133, 4},
-};
-static const arc arcs_53_3[1] = {
-    {57, 2},
-};
-static const arc arcs_53_4[1] = {
-    {0, 4},
-};
-static state states_53[5] = {
-    {1, arcs_53_0},
-    {2, arcs_53_1},
-    {1, arcs_53_2},
-    {1, arcs_53_3},
-    {1, arcs_53_4},
-};
-static const arc arcs_54_0[1] = {
-    {135, 1},
-};
-static const arc arcs_54_1[2] = {
-    {136, 0},
-    {0, 1},
-};
-static state states_54[2] = {
-    {1, arcs_54_0},
-    {2, arcs_54_1},
-};
-static const arc arcs_55_0[1] = {
-    {137, 1},
-};
-static const arc arcs_55_1[2] = {
-    {138, 0},
-    {0, 1},
-};
-static state states_55[2] = {
-    {1, arcs_55_0},
-    {2, arcs_55_1},
-};
-static const arc arcs_56_0[2] = {
-    {28, 1},
-    {139, 2},
-};
-static const arc arcs_56_1[1] = {
-    {137, 2},
-};
-static const arc arcs_56_2[1] = {
-    {0, 2},
-};
-static state states_56[3] = {
-    {2, arcs_56_0},
-    {1, arcs_56_1},
-    {1, arcs_56_2},
-};
-static const arc arcs_57_0[1] = {
-    {126, 1},
-};
-static const arc arcs_57_1[2] = {
-    {140, 0},
-    {0, 1},
-};
-static state states_57[2] = {
-    {1, arcs_57_0},
-    {2, arcs_57_1},
-};
-static const arc arcs_58_0[10] = {
-    {141, 1},
-    {142, 1},
-    {143, 1},
-    {141, 1},
-    {144, 1},
-    {145, 1},
-    {146, 1},
-    {122, 1},
-    {147, 2},
-    {28, 3},
-};
-static const arc arcs_58_1[1] = {
-    {0, 1},
-};
-static const arc arcs_58_2[2] = {
-    {28, 1},
-    {0, 2},
-};
-static const arc arcs_58_3[1] = {
-    {122, 1},
-};
-static state states_58[4] = {
-    {10, arcs_58_0},
-    {1, arcs_58_1},
-    {2, arcs_58_2},
-    {1, arcs_58_3},
-};
-static const arc arcs_59_0[1] = {
-    {6, 1},
-};
-static const arc arcs_59_1[1] = {
-    {126, 2},
-};
-static const arc arcs_59_2[1] = {
-    {0, 2},
-};
-static state states_59[3] = {
-    {1, arcs_59_0},
-    {1, arcs_59_1},
-    {1, arcs_59_2},
-};
-static const arc arcs_60_0[1] = {
-    {148, 1},
-};
-static const arc arcs_60_1[2] = {
-    {149, 0},
-    {0, 1},
-};
-static state states_60[2] = {
-    {1, arcs_60_0},
-    {2, arcs_60_1},
-};
-static const arc arcs_61_0[1] = {
-    {150, 1},
-};
-static const arc arcs_61_1[2] = {
-    {151, 0},
-    {0, 1},
-};
-static state states_61[2] = {
-    {1, arcs_61_0},
-    {2, arcs_61_1},
-};
-static const arc arcs_62_0[1] = {
-    {152, 1},
-};
-static const arc arcs_62_1[2] = {
-    {153, 0},
-    {0, 1},
-};
-static state states_62[2] = {
-    {1, arcs_62_0},
-    {2, arcs_62_1},
-};
-static const arc arcs_63_0[1] = {
-    {154, 1},
-};
-static const arc arcs_63_1[3] = {
-    {155, 0},
-    {156, 0},
-    {0, 1},
-};
-static state states_63[2] = {
-    {1, arcs_63_0},
-    {3, arcs_63_1},
-};
-static const arc arcs_64_0[1] = {
-    {157, 1},
-};
-static const arc arcs_64_1[3] = {
-    {7, 0},
-    {8, 0},
-    {0, 1},
-};
-static state states_64[2] = {
-    {1, arcs_64_0},
-    {3, arcs_64_1},
-};
-static const arc arcs_65_0[1] = {
-    {158, 1},
-};
-static const arc arcs_65_1[6] = {
-    {159, 0},
-    {6, 0},
-    {67, 0},
-    {160, 0},
-    {10, 0},
-    {0, 1},
-};
-static state states_65[2] = {
-    {1, arcs_65_0},
-    {6, arcs_65_1},
-};
-static const arc arcs_66_0[4] = {
-    {7, 1},
-    {8, 1},
-    {37, 1},
-    {161, 2},
-};
-static const arc arcs_66_1[1] = {
-    {158, 2},
-};
-static const arc arcs_66_2[1] = {
-    {0, 2},
-};
-static state states_66[3] = {
-    {4, arcs_66_0},
-    {1, arcs_66_1},
-    {1, arcs_66_2},
-};
-static const arc arcs_67_0[1] = {
-    {162, 1},
-};
-static const arc arcs_67_1[2] = {
-    {63, 2},
-    {0, 1},
-};
-static const arc arcs_67_2[1] = {
-    {158, 3},
-};
-static const arc arcs_67_3[1] = {
-    {0, 3},
-};
-static state states_67[4] = {
-    {1, arcs_67_0},
-    {2, arcs_67_1},
-    {1, arcs_67_2},
-    {1, arcs_67_3},
-};
-static const arc arcs_68_0[2] = {
-    {39, 1},
-    {163, 2},
-};
-static const arc arcs_68_1[1] = {
-    {163, 2},
-};
-static const arc arcs_68_2[2] = {
-    {164, 2},
-    {0, 2},
-};
-static state states_68[3] = {
-    {2, arcs_68_0},
-    {1, arcs_68_1},
-    {2, arcs_68_2},
-};
-static const arc arcs_69_0[10] = {
-    {5, 1},
-    {9, 2},
-    {11, 2},
-    {12, 2},
-    {13, 2},
-    {14, 3},
-    {36, 4},
-    {40, 2},
-    {41, 2},
-    {42, 5},
-};
-static const arc arcs_69_1[3] = {
-    {61, 2},
-    {165, 6},
-    {83, 6},
-};
-static const arc arcs_69_2[1] = {
-    {0, 2},
-};
-static const arc arcs_69_3[2] = {
-    {166, 2},
-    {165, 7},
-};
-static const arc arcs_69_4[2] = {
-    {167, 2},
-    {168, 8},
-};
-static const arc arcs_69_5[2] = {
-    {42, 5},
-    {0, 5},
-};
-static const arc arcs_69_6[1] = {
-    {61, 2},
-};
-static const arc arcs_69_7[1] = {
-    {166, 2},
-};
-static const arc arcs_69_8[1] = {
-    {167, 2},
-};
-static state states_69[9] = {
-    {10, arcs_69_0},
-    {3, arcs_69_1},
-    {1, arcs_69_2},
-    {2, arcs_69_3},
-    {2, arcs_69_4},
-    {2, arcs_69_5},
-    {1, arcs_69_6},
-    {1, arcs_69_7},
-    {1, arcs_69_8},
-};
-static const arc arcs_70_0[2] = {
-    {49, 1},
-    {84, 1},
-};
-static const arc arcs_70_1[3] = {
-    {65, 2},
-    {169, 3},
-    {0, 1},
-};
-static const arc arcs_70_2[3] = {
-    {49, 4},
-    {84, 4},
-    {0, 2},
-};
-static const arc arcs_70_3[1] = {
-    {0, 3},
-};
-static const arc arcs_70_4[2] = {
-    {65, 2},
-    {0, 4},
-};
-static state states_70[5] = {
-    {2, arcs_70_0},
-    {3, arcs_70_1},
-    {3, arcs_70_2},
-    {1, arcs_70_3},
-    {2, arcs_70_4},
-};
-static const arc arcs_71_0[3] = {
-    {5, 1},
-    {107, 2},
-    {14, 3},
-};
-static const arc arcs_71_1[2] = {
-    {61, 4},
-    {170, 5},
-};
-static const arc arcs_71_2[1] = {
-    {40, 4},
-};
-static const arc arcs_71_3[1] = {
-    {171, 6},
-};
-static const arc arcs_71_4[1] = {
-    {0, 4},
-};
-static const arc arcs_71_5[1] = {
-    {61, 4},
-};
-static const arc arcs_71_6[1] = {
-    {166, 4},
-};
-static state states_71[7] = {
-    {3, arcs_71_0},
-    {2, arcs_71_1},
-    {1, arcs_71_2},
-    {1, arcs_71_3},
-    {1, arcs_71_4},
-    {1, arcs_71_5},
-    {1, arcs_71_6},
-};
-static const arc arcs_72_0[1] = {
-    {172, 1},
-};
-static const arc arcs_72_1[2] = {
-    {65, 2},
-    {0, 1},
-};
-static const arc arcs_72_2[2] = {
-    {172, 1},
-    {0, 2},
-};
-static state states_72[3] = {
-    {1, arcs_72_0},
-    {2, arcs_72_1},
-    {2, arcs_72_2},
-};
-static const arc arcs_73_0[2] = {
-    {57, 1},
-    {58, 2},
-};
-static const arc arcs_73_1[3] = {
-    {173, 3},
-    {58, 4},
-    {0, 1},
-};
-static const arc arcs_73_2[2] = {
-    {57, 1},
-    {0, 2},
-};
-static const arc arcs_73_3[1] = {
-    {0, 3},
-};
-static const arc arcs_73_4[2] = {
-    {173, 3},
-    {0, 4},
-};
-static state states_73[5] = {
-    {2, arcs_73_0},
-    {3, arcs_73_1},
-    {2, arcs_73_2},
-    {1, arcs_73_3},
-    {2, arcs_73_4},
-};
-static const arc arcs_74_0[1] = {
-    {57, 1},
-};
-static const arc arcs_74_1[2] = {
-    {58, 2},
-    {0, 1},
-};
-static const arc arcs_74_2[1] = {
-    {0, 2},
-};
-static state states_74[3] = {
-    {1, arcs_74_0},
-    {2, arcs_74_1},
-    {1, arcs_74_2},
-};
-static const arc arcs_75_0[2] = {
-    {126, 1},
-    {84, 1},
-};
-static const arc arcs_75_1[2] = {
-    {65, 2},
-    {0, 1},
-};
-static const arc arcs_75_2[3] = {
-    {126, 1},
-    {84, 1},
-    {0, 2},
-};
-static state states_75[3] = {
-    {2, arcs_75_0},
-    {2, arcs_75_1},
-    {3, arcs_75_2},
-};
-static const arc arcs_76_0[1] = {
-    {58, 1},
-};
-static const arc arcs_76_1[2] = {
-    {65, 2},
-    {0, 1},
-};
-static const arc arcs_76_2[2] = {
-    {58, 1},
-    {0, 2},
-};
-static state states_76[3] = {
-    {1, arcs_76_0},
-    {2, arcs_76_1},
-    {2, arcs_76_2},
-};
-static const arc arcs_77_0[3] = {
-    {63, 1},
-    {84, 2},
-    {58, 3},
-};
-static const arc arcs_77_1[1] = {
-    {126, 4},
-};
-static const arc arcs_77_2[3] = {
-    {65, 5},
-    {169, 6},
-    {0, 2},
-};
-static const arc arcs_77_3[4] = {
-    {65, 5},
-    {57, 7},
-    {169, 6},
-    {0, 3},
-};
-static const arc arcs_77_4[3] = {
-    {65, 8},
-    {169, 6},
-    {0, 4},
-};
-static const arc arcs_77_5[3] = {
-    {84, 9},
-    {58, 9},
-    {0, 5},
-};
-static const arc arcs_77_6[1] = {
-    {0, 6},
-};
-static const arc arcs_77_7[1] = {
-    {58, 4},
-};
-static const arc arcs_77_8[3] = {
-    {63, 10},
-    {58, 11},
-    {0, 8},
-};
-static const arc arcs_77_9[2] = {
-    {65, 5},
-    {0, 9},
-};
-static const arc arcs_77_10[1] = {
-    {126, 12},
-};
-static const arc arcs_77_11[1] = {
-    {57, 13},
-};
-static const arc arcs_77_12[2] = {
-    {65, 8},
-    {0, 12},
-};
-static const arc arcs_77_13[1] = {
-    {58, 12},
-};
-static state states_77[14] = {
-    {3, arcs_77_0},
-    {1, arcs_77_1},
-    {3, arcs_77_2},
-    {4, arcs_77_3},
-    {3, arcs_77_4},
-    {3, arcs_77_5},
-    {1, arcs_77_6},
-    {1, arcs_77_7},
-    {3, arcs_77_8},
-    {2, arcs_77_9},
-    {1, arcs_77_10},
-    {1, arcs_77_11},
-    {2, arcs_77_12},
-    {1, arcs_77_13},
-};
-static const arc arcs_78_0[1] = {
-    {17, 1},
-};
-static const arc arcs_78_1[1] = {
-    {40, 2},
-};
-static const arc arcs_78_2[2] = {
-    {5, 3},
-    {57, 4},
-};
-static const arc arcs_78_3[2] = {
-    {61, 5},
-    {170, 6},
-};
-static const arc arcs_78_4[1] = {
-    {119, 7},
-};
-static const arc arcs_78_5[1] = {
-    {57, 4},
-};
-static const arc arcs_78_6[1] = {
-    {61, 5},
-};
-static const arc arcs_78_7[1] = {
-    {0, 7},
-};
-static state states_78[8] = {
-    {1, arcs_78_0},
-    {1, arcs_78_1},
-    {2, arcs_78_2},
-    {2, arcs_78_3},
-    {1, arcs_78_4},
-    {1, arcs_78_5},
-    {1, arcs_78_6},
-    {1, arcs_78_7},
-};
-static const arc arcs_79_0[1] = {
-    {174, 1},
-};
-static const arc arcs_79_1[2] = {
-    {65, 2},
-    {0, 1},
-};
-static const arc arcs_79_2[2] = {
-    {174, 1},
-    {0, 2},
-};
-static state states_79[3] = {
-    {1, arcs_79_0},
-    {2, arcs_79_1},
-    {2, arcs_79_2},
-};
-static const arc arcs_80_0[3] = {
-    {6, 1},
-    {63, 1},
-    {58, 2},
-};
-static const arc arcs_80_1[1] = {
-    {58, 3},
-};
-static const arc arcs_80_2[4] = {
-    {130, 1},
-    {66, 1},
-    {169, 3},
-    {0, 2},
-};
-static const arc arcs_80_3[1] = {
-    {0, 3},
-};
-static state states_80[4] = {
-    {3, arcs_80_0},
-    {1, arcs_80_1},
-    {4, arcs_80_2},
-    {1, arcs_80_3},
-};
-static const arc arcs_81_0[2] = {
-    {169, 1},
-    {176, 1},
-};
-static const arc arcs_81_1[1] = {
-    {0, 1},
-};
-static state states_81[2] = {
-    {2, arcs_81_0},
-    {1, arcs_81_1},
-};
-static const arc arcs_82_0[1] = {
-    {21, 1},
-};
-static const arc arcs_82_1[1] = {
-    {98, 2},
-};
-static const arc arcs_82_2[1] = {
-    {122, 3},
-};
-static const arc arcs_82_3[1] = {
-    {132, 4},
-};
-static const arc arcs_82_4[2] = {
-    {175, 5},
-    {0, 4},
-};
-static const arc arcs_82_5[1] = {
-    {0, 5},
-};
-static state states_82[6] = {
-    {1, arcs_82_0},
-    {1, arcs_82_1},
-    {1, arcs_82_2},
-    {1, arcs_82_3},
-    {2, arcs_82_4},
-    {1, arcs_82_5},
-};
-static const arc arcs_83_0[2] = {
-    {38, 1},
-    {177, 2},
-};
-static const arc arcs_83_1[1] = {
-    {177, 2},
-};
-static const arc arcs_83_2[1] = {
-    {0, 2},
-};
-static state states_83[3] = {
-    {2, arcs_83_0},
-    {1, arcs_83_1},
-    {1, arcs_83_2},
-};
-static const arc arcs_84_0[1] = {
-    {24, 1},
-};
-static const arc arcs_84_1[1] = {
-    {133, 2},
-};
-static const arc arcs_84_2[2] = {
-    {175, 3},
-    {0, 2},
-};
-static const arc arcs_84_3[1] = {
-    {0, 3},
-};
-static state states_84[4] = {
-    {1, arcs_84_0},
-    {1, arcs_84_1},
-    {2, arcs_84_2},
-    {1, arcs_84_3},
-};
-static const arc arcs_85_0[1] = {
-    {40, 1},
-};
-static const arc arcs_85_1[1] = {
-    {0, 1},
-};
-static state states_85[2] = {
-    {1, arcs_85_0},
-    {1, arcs_85_1},
-};
-static const arc arcs_86_0[1] = {
-    {35, 1},
-};
-static const arc arcs_86_1[2] = {
-    {179, 2},
-    {0, 1},
-};
-static const arc arcs_86_2[1] = {
-    {0, 2},
-};
-static state states_86[3] = {
-    {1, arcs_86_0},
-    {2, arcs_86_1},
-    {1, arcs_86_2},
-};
-static const arc arcs_87_0[2] = {
-    {22, 1},
-    {80, 2},
-};
-static const arc arcs_87_1[1] = {
-    {58, 2},
-};
-static const arc arcs_87_2[1] = {
-    {0, 2},
-};
-static state states_87[3] = {
-    {2, arcs_87_0},
-    {1, arcs_87_1},
-    {1, arcs_87_2},
-};
-static const arc arcs_88_0[2] = {
-    {2, 1},
-    {4, 2},
-};
-static const arc arcs_88_1[2] = {
-    {128, 3},
-    {59, 4},
-};
-static const arc arcs_88_2[1] = {
-    {0, 2},
-};
-static const arc arcs_88_3[1] = {
-    {45, 5},
-};
-static const arc arcs_88_4[1] = {
-    {2, 6},
-};
-static const arc arcs_88_5[2] = {
-    {129, 2},
-    {45, 5},
-};
-static const arc arcs_88_6[1] = {
-    {128, 3},
-};
-static state states_88[7] = {
-    {2, arcs_88_0},
-    {2, arcs_88_1},
-    {1, arcs_88_2},
-    {1, arcs_88_3},
-    {1, arcs_88_4},
-    {2, arcs_88_5},
-    {1, arcs_88_6},
-};
-static const arc arcs_89_0[1] = {
-    {181, 1},
-};
-static const arc arcs_89_1[2] = {
-    {44, 2},
-    {2, 1},
-};
-static const arc arcs_89_2[1] = {
-    {0, 2},
-};
-static state states_89[3] = {
-    {1, arcs_89_0},
-    {2, arcs_89_1},
-    {1, arcs_89_2},
-};
-static const arc arcs_90_0[1] = {
-    {5, 1},
-};
-static const arc arcs_90_1[2] = {
-    {61, 2},
-    {182, 3},
-};
-static const arc arcs_90_2[1] = {
-    {56, 4},
-};
-static const arc arcs_90_3[1] = {
-    {61, 2},
-};
-static const arc arcs_90_4[1] = {
-    {58, 5},
-};
-static const arc arcs_90_5[1] = {
-    {0, 5},
-};
-static state states_90[6] = {
-    {1, arcs_90_0},
-    {2, arcs_90_1},
-    {1, arcs_90_2},
-    {1, arcs_90_3},
-    {1, arcs_90_4},
-    {1, arcs_90_5},
-};
-static const arc arcs_91_0[3] = {
-    {6, 1},
-    {63, 2},
-    {58, 3},
-};
-static const arc arcs_91_1[3] = {
-    {65, 4},
-    {58, 5},
-    {0, 1},
-};
-static const arc arcs_91_2[1] = {
-    {58, 6},
-};
-static const arc arcs_91_3[2] = {
-    {65, 7},
-    {0, 3},
-};
-static const arc arcs_91_4[2] = {
-    {63, 2},
-    {58, 5},
-};
-static const arc arcs_91_5[2] = {
-    {65, 4},
-    {0, 5},
-};
-static const arc arcs_91_6[1] = {
-    {0, 6},
-};
-static const arc arcs_91_7[4] = {
-    {6, 8},
-    {63, 2},
-    {58, 3},
-    {0, 7},
-};
-static const arc arcs_91_8[3] = {
-    {65, 9},
-    {58, 10},
-    {0, 8},
-};
-static const arc arcs_91_9[2] = {
-    {63, 2},
-    {58, 10},
-};
-static const arc arcs_91_10[2] = {
-    {65, 9},
-    {0, 10},
-};
-static state states_91[11] = {
-    {3, arcs_91_0},
-    {3, arcs_91_1},
-    {1, arcs_91_2},
-    {2, arcs_91_3},
-    {2, arcs_91_4},
-    {2, arcs_91_5},
-    {1, arcs_91_6},
-    {4, arcs_91_7},
-    {3, arcs_91_8},
-    {2, arcs_91_9},
-    {2, arcs_91_10},
-};
-static const dfa dfas[92] = {
-    {256, "single_input", 3, states_0,
-     "\344\377\377\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {257, "file_input", 2, states_1,
-     "\344\377\377\377\377\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {258, "eval_input", 3, states_2,
-     "\240\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {259, "decorator", 4, states_3,
-     "\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {260, "decorators", 2, states_4,
-     "\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {261, "decorated", 3, states_5,
-     "\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {262, "async_funcdef", 3, states_6,
-     "\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {263, "funcdef", 9, states_7,
-     "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {264, "parameters", 4, states_8,
-     "\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {265, "typedargslist", 42, states_9,
-     "\100\000\000\000\000\001\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {266, "tfpdef", 4, states_10,
-     "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {267, "varargslist", 34, states_11,
-     "\100\000\000\000\000\001\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {268, "vfpdef", 2, states_12,
-     "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {269, "stmt", 2, states_13,
-     "\340\377\377\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {270, "simple_stmt", 4, states_14,
-     "\340\373\325\376\270\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {271, "small_stmt", 2, states_15,
-     "\340\373\325\376\270\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {272, "expr_stmt", 6, states_16,
-     "\340\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {273, "annassign", 5, states_17,
-     "\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {274, "testlist_star_expr", 3, states_18,
-     "\340\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {275, "augassign", 2, states_19,
-     "\000\000\000\000\000\000\000\000\000\000\340\377\003\000\000\000\000\000\000\000\000\000\000"},
-    {276, "del_stmt", 3, states_20,
-     "\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {277, "pass_stmt", 2, states_21,
-     "\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {278, "flow_stmt", 2, states_22,
-     "\000\000\005\300\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {279, "break_stmt", 2, states_23,
-     "\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {280, "continue_stmt", 2, states_24,
-     "\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {281, "return_stmt", 3, states_25,
-     "\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {282, "yield_stmt", 2, states_26,
-     "\000\000\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {283, "raise_stmt", 5, states_27,
-     "\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {284, "import_stmt", 2, states_28,
-     "\000\000\100\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {285, "import_name", 3, states_29,
-     "\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {286, "import_from", 8, states_30,
-     "\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {287, "import_as_name", 4, states_31,
-     "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {288, "dotted_as_name", 4, states_32,
-     "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {289, "import_as_names", 3, states_33,
-     "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {290, "dotted_as_names", 2, states_34,
-     "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {291, "dotted_name", 2, states_35,
-     "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {292, "global_stmt", 3, states_36,
-     "\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {293, "nonlocal_stmt", 3, states_37,
-     "\000\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {294, "assert_stmt", 5, states_38,
-     "\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {295, "compound_stmt", 2, states_39,
-     "\000\004\052\001\107\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {296, "async_stmt", 3, states_40,
-     "\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {297, "if_stmt", 8, states_41,
-     "\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {298, "while_stmt", 8, states_42,
-     "\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {299, "for_stmt", 11, states_43,
-     "\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {300, "try_stmt", 13, states_44,
-     "\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {301, "with_stmt", 6, states_45,
-     "\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {302, "with_item", 4, states_46,
-     "\240\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {303, "except_clause", 5, states_47,
-     "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000"},
-    {304, "suite", 5, states_48,
-     "\344\373\325\376\270\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {305, "namedexpr_test", 4, states_49,
-     "\240\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {306, "test", 6, states_50,
-     "\240\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {307, "test_nocond", 2, states_51,
-     "\240\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {308, "lambdef", 5, states_52,
-     "\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {309, "lambdef_nocond", 5, states_53,
-     "\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {310, "or_test", 2, states_54,
-     "\240\173\000\020\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {311, "and_test", 2, states_55,
-     "\240\173\000\020\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {312, "not_test", 3, states_56,
-     "\240\173\000\020\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {313, "comparison", 2, states_57,
-     "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {314, "comp_op", 4, states_58,
-     "\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\004\000\340\017\000\000\000\000"},
-    {315, "star_expr", 3, states_59,
-     "\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {316, "expr", 2, states_60,
-     "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {317, "xor_expr", 2, states_61,
-     "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {318, "and_expr", 2, states_62,
-     "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {319, "shift_expr", 2, states_63,
-     "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {320, "arith_expr", 2, states_64,
-     "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {321, "term", 2, states_65,
-     "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {322, "factor", 3, states_66,
-     "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {323, "power", 4, states_67,
-     "\040\172\000\000\220\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {324, "atom_expr", 3, states_68,
-     "\040\172\000\000\220\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {325, "atom", 9, states_69,
-     "\040\172\000\000\020\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {326, "testlist_comp", 5, states_70,
-     "\340\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {327, "trailer", 7, states_71,
-     "\040\100\000\000\000\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000\000"},
-    {328, "subscriptlist", 3, states_72,
-     "\240\173\000\024\260\007\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {329, "subscript", 5, states_73,
-     "\240\173\000\024\260\007\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {330, "sliceop", 3, states_74,
-     "\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {331, "exprlist", 3, states_75,
-     "\340\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {332, "testlist", 3, states_76,
-     "\240\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {333, "dictorsetmaker", 14, states_77,
-     "\340\173\000\024\260\007\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {334, "classdef", 8, states_78,
-     "\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {335, "arglist", 3, states_79,
-     "\340\173\000\024\260\007\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {336, "argument", 4, states_80,
-     "\340\173\000\024\260\007\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {337, "comp_iter", 2, states_81,
-     "\000\000\040\001\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {338, "sync_comp_for", 6, states_82,
-     "\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {339, "comp_for", 3, states_83,
-     "\000\000\040\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {340, "comp_if", 4, states_84,
-     "\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {341, "encoding_decl", 2, states_85,
-     "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {342, "yield_expr", 3, states_86,
-     "\000\000\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {343, "yield_arg", 3, states_87,
-     "\340\173\100\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {344, "func_body_suite", 7, states_88,
-     "\344\373\325\376\270\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {345, "func_type_input", 3, states_89,
-     "\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {346, "func_type", 6, states_90,
-     "\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-    {347, "typelist", 11, states_91,
-     "\340\173\000\024\260\007\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-};
-static const label labels[183] = {
-    {0, "EMPTY"},
-    {256, 0},
-    {4, 0},
-    {295, 0},
-    {270, 0},
-    {7, 0},
-    {16, 0},
-    {14, 0},
-    {15, 0},
-    {52, 0},
-    {49, 0},
-    {1, "False"},
-    {1, "None"},
-    {1, "True"},
-    {9, 0},
-    {1, "assert"},
-    {1, "break"},
-    {1, "class"},
-    {1, "continue"},
-    {1, "def"},
-    {1, "del"},
-    {1, "for"},
-    {1, "from"},
-    {1, "global"},
-    {1, "if"},
-    {1, "import"},
-    {1, "lambda"},
-    {1, "nonlocal"},
-    {1, "not"},
-    {1, "pass"},
-    {1, "raise"},
-    {1, "return"},
-    {1, "try"},
-    {1, "while"},
-    {1, "with"},
-    {1, "yield"},
-    {25, 0},
-    {31, 0},
-    {56, 0},
-    {55, 0},
-    {1, 0},
-    {2, 0},
-    {3, 0},
-    {257, 0},
-    {0, 0},
-    {269, 0},
-    {258, 0},
-    {332, 0},
-    {259, 0},
-    {305, 0},
-    {260, 0},
-    {261, 0},
-    {262, 0},
-    {334, 0},
-    {263, 0},
-    {264, 0},
-    {51, 0},
-    {11, 0},
-    {306, 0},
-    {58, 0},
-    {344, 0},
-    {8, 0},
-    {265, 0},
-    {35, 0},
-    {266, 0},
-    {12, 0},
-    {22, 0},
-    {17, 0},
-    {267, 0},
-    {268, 0},
-    {271, 0},
-    {13, 0},
-    {294, 0},
-    {276, 0},
-    {272, 0},
-    {278, 0},
-    {292, 0},
-    {284, 0},
-    {293, 0},
-    {277, 0},
-    {274, 0},
-    {273, 0},
-    {275, 0},
-    {342, 0},
-    {315, 0},
-    {40, 0},
-    {41, 0},
-    {46, 0},
-    {38, 0},
-    {36, 0},
-    {37, 0},
-    {48, 0},
-    {39, 0},
-    {44, 0},
-    {45, 0},
-    {50, 0},
-    {43, 0},
-    {42, 0},
-    {331, 0},
-    {279, 0},
-    {280, 0},
-    {283, 0},
-    {281, 0},
-    {282, 0},
-    {286, 0},
-    {285, 0},
-    {290, 0},
-    {23, 0},
-    {291, 0},
-    {289, 0},
-    {287, 0},
-    {1, "as"},
-    {288, 0},
-    {296, 0},
-    {299, 0},
-    {297, 0},
-    {300, 0},
-    {298, 0},
-    {301, 0},
-    {304, 0},
-    {1, "elif"},
-    {1, "else"},
-    {1, "in"},
-    {1, "finally"},
-    {303, 0},
-    {302, 0},
-    {316, 0},
-    {1, "except"},
-    {5, 0},
-    {6, 0},
-    {53, 0},
-    {308, 0},
-    {310, 0},
-    {307, 0},
-    {309, 0},
-    {311, 0},
-    {1, "or"},
-    {312, 0},
-    {1, "and"},
-    {313, 0},
-    {314, 0},
-    {28, 0},
-    {20, 0},
-    {29, 0},
-    {27, 0},
-    {21, 0},
-    {30, 0},
-    {1, "is"},
-    {317, 0},
-    {18, 0},
-    {318, 0},
-    {32, 0},
-    {319, 0},
-    {19, 0},
-    {320, 0},
-    {33, 0},
-    {34, 0},
-    {321, 0},
-    {322, 0},
-    {24, 0},
-    {47, 0},
-    {323, 0},
-    {324, 0},
-    {325, 0},
-    {327, 0},
-    {326, 0},
-    {10, 0},
-    {26, 0},
-    {333, 0},
-    {339, 0},
-    {335, 0},
-    {328, 0},
-    {329, 0},
-    {330, 0},
-    {336, 0},
-    {337, 0},
-    {340, 0},
-    {338, 0},
-    {341, 0},
-    {343, 0},
-    {345, 0},
-    {346, 0},
-    {347, 0},
-};
-Py_EXPORTED_SYMBOL grammar _PyParser_Grammar = {
-    92,
-    dfas,
-    {183, labels},
-    256
-};
diff --git a/Python/peephole.c b/Python/peephole.c
index 84de1abc17547..fe67de42227b5 100644
--- a/Python/peephole.c
+++ b/Python/peephole.c
@@ -3,7 +3,6 @@
 #include "Python.h"
 
 #include "Python-ast.h"
-#include "node.h"
 #include "ast.h"
 #include "code.h"
 #include "symtable.h"
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index 7a3b5b52ac417..04fad04227df9 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -20,13 +20,10 @@
 #include "pycore_pystate.h"       // _PyInterpreterState_GET()
 #include "pycore_sysmodule.h"     // _PySys_Audit()
 
-#include "node.h"                 // node
 #include "token.h"                // INDENT
-#include "parsetok.h"             // perrdetail
 #include "errcode.h"              // E_EOF
 #include "code.h"                 // PyCodeObject
 #include "symtable.h"             // PySymtable_BuildObject()
-#include "ast.h"                  // PyAST_FromNodeObject()
 #include "marshal.h"              // PyMarshal_ReadLongFromFile()
 
 #include "pegen_interface.h"      // PyPegen_ASTFrom*
diff --git a/Tools/scripts/generate_symbol_py.py b/Tools/scripts/generate_symbol_py.py
deleted file mode 100755
index 9219b096e4d67..0000000000000
--- a/Tools/scripts/generate_symbol_py.py
+++ /dev/null
@@ -1,53 +0,0 @@
-#! /usr/bin/env python3
-# This script generates the symbol.py source file.
-
-import sys
-import re
-
-def main(inFileName="Include/graminit.h", outFileName="Lib/symbol.py"):
-    try:
-        fp = open(inFileName)
-    except OSError as err:
-        sys.stderr.write("I/O error: %s\n" % str(err))
-        sys.exit(1)
-    with fp:
-        lines = fp.read().split("\n")
-    prog = re.compile(
-        "#define[ \t][ \t]*([A-Z0-9][A-Z0-9_]*)[ \t][ \t]*([0-9][0-9]*)",
-        re.IGNORECASE)
-    tokens = {}
-    for line in lines:
-        match = prog.match(line)
-        if match:
-            name, val = match.group(1, 2)
-            val = int(val)
-            tokens[val] = name          # reverse so we can sort them...
-    keys = sorted(tokens.keys())
-    # load the output skeleton from the target:
-    try:
-        fp = open(outFileName)
-    except OSError as err:
-        sys.stderr.write("I/O error: %s\n" % str(err))
-        sys.exit(2)
-    with fp:
-        format = fp.read().split("\n")
-    try:
-        start = format.index("#--start constants--") + 1
-        end = format.index("#--end constants--")
-    except ValueError:
-        sys.stderr.write("target does not contain format markers")
-        sys.exit(3)
-    lines = []
-    for val in keys:
-        lines.append("%s = %d" % (tokens[val], val))
-    format[start:end] = lines
-    try:
-        fp = open(outFileName, 'w')
-    except OSError as err:
-        sys.stderr.write("I/O error: %s\n" % str(err))
-        sys.exit(4)
-    with fp:
-        fp.write("\n".join(format))
-
-if __name__ == '__main__':
-    main(*sys.argv[1:])
diff --git a/configure b/configure
index 139c2bf7de132..dc590c2e98273 100755
--- a/configure
+++ b/configure
@@ -2739,7 +2739,7 @@ if test "$srcdir" != . -a "$srcdir" != "$(pwd)"; then
     # If we're building out-of-tree, we need to make sure the following
     # resources get picked up before their $srcdir counterparts.
     #   Objects/ -> typeslots.inc
-    #   Include/ -> Python-ast.h, graminit.h
+    #   Include/ -> Python-ast.h
     #   Python/  -> importlib.h
     # (A side effect of this is that these resources will automatically be
     #  regenerated when building out-of-tree, regardless of whether or not
diff --git a/configure.ac b/configure.ac
index 3001cc87f951f..70deefb6b9aea 100644
--- a/configure.ac
+++ b/configure.ac
@@ -16,7 +16,7 @@ if test "$srcdir" != . -a "$srcdir" != "$(pwd)"; then
     # If we're building out-of-tree, we need to make sure the following
     # resources get picked up before their $srcdir counterparts.
     #   Objects/ -> typeslots.inc
-    #   Include/ -> Python-ast.h, graminit.h
+    #   Include/ -> Python-ast.h
     #   Python/  -> importlib.h
     # (A side effect of this is that these resources will automatically be
     #  regenerated when building out-of-tree, regardless of whether or not



More information about the Python-checkins mailing list