+++ /dev/null
-# Copyright 2006 Google, Inc. All Rights Reserved.
-# Licensed to PSF under a Contributor Agreement.
-
-"""Export the Python grammar and symbols."""
-
-# Python imports
-import os
-
-from typing import Union
-
-# Local imports
-from .pgen2 import token
-from .pgen2 import driver
-
-from .pgen2.grammar import Grammar
-
-# Moved into initialize because mypyc can't handle __file__ (XXX bug)
-# # The grammar file
-# _GRAMMAR_FILE = os.path.join(os.path.dirname(__file__), "Grammar.txt")
-# _PATTERN_GRAMMAR_FILE = os.path.join(os.path.dirname(__file__),
-# "PatternGrammar.txt")
-
-
-class Symbols(object):
- def __init__(self, grammar: Grammar) -> None:
- """Initializer.
-
- Creates an attribute for each grammar symbol (nonterminal),
- whose value is the symbol's type (an int >= 256).
- """
- for name, symbol in grammar.symbol2number.items():
- setattr(self, name, symbol)
-
-
-class _python_symbols(Symbols):
- and_expr: int
- and_test: int
- annassign: int
- arglist: int
- argument: int
- arith_expr: int
- assert_stmt: int
- async_funcdef: int
- async_stmt: int
- atom: int
- augassign: int
- break_stmt: int
- classdef: int
- comp_for: int
- comp_if: int
- comp_iter: int
- comp_op: int
- comparison: int
- compound_stmt: int
- continue_stmt: int
- decorated: int
- decorator: int
- decorators: int
- del_stmt: int
- dictsetmaker: int
- dotted_as_name: int
- dotted_as_names: int
- dotted_name: int
- encoding_decl: int
- eval_input: int
- except_clause: int
- exec_stmt: int
- expr: int
- expr_stmt: int
- exprlist: int
- factor: int
- file_input: int
- flow_stmt: int
- for_stmt: int
- funcdef: int
- global_stmt: int
- if_stmt: int
- import_as_name: int
- import_as_names: int
- import_from: int
- import_name: int
- import_stmt: int
- lambdef: int
- listmaker: int
- namedexpr_test: int
- not_test: int
- old_comp_for: int
- old_comp_if: int
- old_comp_iter: int
- old_lambdef: int
- old_test: int
- or_test: int
- parameters: int
- pass_stmt: int
- power: int
- print_stmt: int
- raise_stmt: int
- return_stmt: int
- shift_expr: int
- simple_stmt: int
- single_input: int
- sliceop: int
- small_stmt: int
- star_expr: int
- stmt: int
- subscript: int
- subscriptlist: int
- suite: int
- term: int
- test: int
- testlist: int
- testlist1: int
- testlist_gexp: int
- testlist_safe: int
- testlist_star_expr: int
- tfpdef: int
- tfplist: int
- tname: int
- trailer: int
- try_stmt: int
- typedargslist: int
- varargslist: int
- vfpdef: int
- vfplist: int
- vname: int
- while_stmt: int
- with_item: int
- with_stmt: int
- with_var: int
- xor_expr: int
- yield_arg: int
- yield_expr: int
- yield_stmt: int
-
-
-class _pattern_symbols(Symbols):
- Alternative: int
- Alternatives: int
- Details: int
- Matcher: int
- NegatedUnit: int
- Repeater: int
- Unit: int
-
-
-python_grammar: Grammar
-python_grammar_no_print_statement: Grammar
-python_grammar_no_print_statement_no_exec_statement: Grammar
-python_grammar_no_print_statement_no_exec_statement_async_keywords: Grammar
-python_grammar_no_exec_statement: Grammar
-pattern_grammar: Grammar
-
-python_symbols: _python_symbols
-pattern_symbols: _pattern_symbols
-
-
-def initialize(cache_dir: Union[str, "os.PathLike[str]", None] = None) -> None:
- global python_grammar
- global python_grammar_no_print_statement
- global python_grammar_no_print_statement_no_exec_statement
- global python_grammar_no_print_statement_no_exec_statement_async_keywords
- global python_symbols
- global pattern_grammar
- global pattern_symbols
-
- # The grammar file
- _GRAMMAR_FILE = os.path.join(os.path.dirname(__file__), "Grammar.txt")
- _PATTERN_GRAMMAR_FILE = os.path.join(
- os.path.dirname(__file__), "PatternGrammar.txt"
- )
-
- # Python 2
- python_grammar = driver.load_packaged_grammar("blib2to3", _GRAMMAR_FILE, cache_dir)
-
- python_symbols = _python_symbols(python_grammar)
-
- # Python 2 + from __future__ import print_function
- python_grammar_no_print_statement = python_grammar.copy()
- del python_grammar_no_print_statement.keywords["print"]
-
- # Python 3.0-3.6
- python_grammar_no_print_statement_no_exec_statement = python_grammar.copy()
- del python_grammar_no_print_statement_no_exec_statement.keywords["print"]
- del python_grammar_no_print_statement_no_exec_statement.keywords["exec"]
-
- # Python 3.7+
- python_grammar_no_print_statement_no_exec_statement_async_keywords = (
- python_grammar_no_print_statement_no_exec_statement.copy()
- )
- python_grammar_no_print_statement_no_exec_statement_async_keywords.async_keywords = (
- True
- )
-
- pattern_grammar = driver.load_packaged_grammar(
- "blib2to3", _PATTERN_GRAMMAR_FILE, cache_dir
- )
- pattern_symbols = _pattern_symbols(pattern_grammar)