mirror of
https://github.com/python/cpython.git
synced 2025-09-30 20:31:52 +00:00
make PatternCompiler use the packaged grammar if possible (more bpo-24960) (GH-5034) (#5036)
(cherry picked from commit e5f7dccefa
)
This commit is contained in:
parent
6eb232c52a
commit
85f71aa9d6
1 changed files with 7 additions and 7 deletions
|
@ -21,10 +21,6 @@ from .pgen2 import driver, literals, token, tokenize, parse, grammar
|
||||||
from . import pytree
|
from . import pytree
|
||||||
from . import pygram
|
from . import pygram
|
||||||
|
|
||||||
# The pattern grammar file
|
|
||||||
_PATTERN_GRAMMAR_FILE = os.path.join(os.path.dirname(__file__),
|
|
||||||
"PatternGrammar.txt")
|
|
||||||
|
|
||||||
|
|
||||||
class PatternSyntaxError(Exception):
|
class PatternSyntaxError(Exception):
|
||||||
pass
|
pass
|
||||||
|
@ -42,13 +38,17 @@ def tokenize_wrapper(input):
|
||||||
|
|
||||||
class PatternCompiler(object):
|
class PatternCompiler(object):
|
||||||
|
|
||||||
def __init__(self, grammar_file=_PATTERN_GRAMMAR_FILE):
|
def __init__(self, grammar_file=None):
|
||||||
"""Initializer.
|
"""Initializer.
|
||||||
|
|
||||||
Takes an optional alternative filename for the pattern grammar.
|
Takes an optional alternative filename for the pattern grammar.
|
||||||
"""
|
"""
|
||||||
self.grammar = driver.load_grammar(grammar_file)
|
if grammar_file is None:
|
||||||
self.syms = pygram.Symbols(self.grammar)
|
self.grammar = pygram.pattern_grammar
|
||||||
|
self.syms = pygram.pattern_symbols
|
||||||
|
else:
|
||||||
|
self.grammar = driver.load_grammar(grammar_file)
|
||||||
|
self.syms = pygram.Symbols(self.grammar)
|
||||||
self.pygrammar = pygram.python_grammar
|
self.pygrammar = pygram.python_grammar
|
||||||
self.pysyms = pygram.python_symbols
|
self.pysyms = pygram.python_symbols
|
||||||
self.driver = driver.Driver(self.grammar, convert=pattern_convert)
|
self.driver = driver.Driver(self.grammar, convert=pattern_convert)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue