diff --git a/.gitattributes b/.gitattributes
index bec16a08152..598d8f0f159 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 a8c52af786b..de42a3b5e6f 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 6a2ac9787ea..00000000000
--- 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 12417ce8054..4dd5435ce71 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 d1027b7a743..00000000000
--- 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 4b66b1e9b97..00000000000
--- 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 ca24f289085..00000000000
--- 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 935d733e90a..00000000000
--- 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 aaac8c91443..00000000000
--- 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 645d8f43b6c..00000000000
--- 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 68417121716..fc6dc434e0a 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 00000000000..8a626d479a9
--- /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 2653ce9111d..0f9110e08d6 100644
--- a/PCbuild/pythoncore.vcxproj
+++ b/PCbuild/pythoncore.vcxproj
@@ -115,7 +115,6 @@
-
@@ -162,8 +161,6 @@
-
-
@@ -209,14 +206,12 @@
-
-
@@ -451,7 +446,6 @@
-
diff --git a/PCbuild/pythoncore.vcxproj.filters b/PCbuild/pythoncore.vcxproj.filters
index 6ea7afaa036..12f05acc3a7 100644
--- a/PCbuild/pythoncore.vcxproj.filters
+++ b/PCbuild/pythoncore.vcxproj.filters
@@ -42,9 +42,6 @@
Include
-
- Include
-
Include
@@ -183,12 +180,6 @@
Include
-
- Include
-
-
- Include
-
Include
@@ -318,9 +309,6 @@
Include
-
- Include
-
Include
@@ -336,9 +324,6 @@
Include
-
- Include
-
Include
@@ -1010,9 +995,6 @@
Python
-
- Python
-
Python
diff --git a/PCbuild/regen.vcxproj b/PCbuild/regen.vcxproj
index ea246ffc8ff..90d6dc68d54 100644
--- a/PCbuild/regen.vcxproj
+++ b/PCbuild/regen.vcxproj
@@ -133,10 +133,6 @@
-
-
-
-
@@ -202,18 +198,12 @@
-
-
-
-
-
-
diff --git a/Parser/node.c b/Parser/node.c
deleted file mode 100644
index 8789e01e9b8..00000000000
--- 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 d7feb8ce852..7bf66e50aa1 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 1663a38a6fd..56da4d8c798 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 b7aa52895f8..00000000000
--- 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 84de1abc175..fe67de42227 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 7a3b5b52ac4..04fad04227d 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 9219b096e4d..00000000000
--- 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 139c2bf7de1..dc590c2e982 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 3001cc87f95..70deefb6b9a 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