make PatternCompiler use the packaged grammar if possible (more bpo-2… · python/cpython@85f71aa
@@ -21,10 +21,6 @@
2121from . import pytree
2222from . import pygram
232324-# The pattern grammar file
25-_PATTERN_GRAMMAR_FILE = os.path.join(os.path.dirname(__file__),
26-"PatternGrammar.txt")
27-28242925class PatternSyntaxError(Exception):
3026pass
@@ -42,13 +38,17 @@ def tokenize_wrapper(input):
42384339class PatternCompiler(object):
444045-def __init__(self, grammar_file=_PATTERN_GRAMMAR_FILE):
41+def __init__(self, grammar_file=None):
4642"""Initializer.
47434844 Takes an optional alternative filename for the pattern grammar.
4945 """
50-self.grammar = driver.load_grammar(grammar_file)
51-self.syms = pygram.Symbols(self.grammar)
46+if grammar_file is None:
47+self.grammar = pygram.pattern_grammar
48+self.syms = pygram.pattern_symbols
49+else:
50+self.grammar = driver.load_grammar(grammar_file)
51+self.syms = pygram.Symbols(self.grammar)
5252self.pygrammar = pygram.python_grammar
5353self.pysyms = pygram.python_symbols
5454self.driver = driver.Driver(self.grammar, convert=pattern_convert)