# 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)
# "PatternGrammar.txt")
-class Symbols(object):
+class Symbols:
def __init__(self, grammar: Grammar) -> None:
"""Initializer.
encoding_decl: int
eval_input: int
except_clause: int
- exec_stmt: int
expr: int
expr_stmt: int
exprlist: int
old_test: int
or_test: int
parameters: int
+ paramspec: int
pass_stmt: int
pattern: int
patterns: int
power: int
- print_stmt: int
raise_stmt: int
return_stmt: int
shift_expr: int
tfpdef: int
tfplist: int
tname: int
+ tname_star: int
trailer: int
try_stmt: int
+ type_stmt: int
typedargslist: int
+ typeparam: int
+ typeparams: int
+ typevar: int
+ typevartuple: int
varargslist: int
vfpdef: int
vfplist: 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_grammar_async_keywords: Grammar
python_grammar_soft_keywords: 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_grammar_async_keywords
global python_grammar_soft_keywords
global python_symbols
global pattern_grammar
os.path.dirname(__file__), "PatternGrammar.txt"
)
- # Python 2
python_grammar = driver.load_packaged_grammar("blib2to3", _GRAMMAR_FILE, cache_dir)
- python_grammar.version = (2, 0)
+ assert "print" not in python_grammar.keywords
+ assert "exec" not in python_grammar.keywords
soft_keywords = python_grammar.soft_keywords.copy()
python_grammar.soft_keywords.clear()
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_grammar_no_print_statement_no_exec_statement.version = (3, 0)
+ python_grammar.version = (3, 0)
# 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
- )
- python_grammar_no_print_statement_no_exec_statement_async_keywords.version = (3, 7)
+ python_grammar_async_keywords = python_grammar.copy()
+ python_grammar_async_keywords.async_keywords = True
+ python_grammar_async_keywords.version = (3, 7)
# Python 3.10+
- python_grammar_soft_keywords = (
- python_grammar_no_print_statement_no_exec_statement_async_keywords.copy()
- )
+ python_grammar_soft_keywords = python_grammar_async_keywords.copy()
python_grammar_soft_keywords.soft_keywords = soft_keywords
python_grammar_soft_keywords.version = (3, 10)