make PatternCompiler use the packaged grammar if possible (more bpo-2… · python/cpython@85f71aa

@@ -21,10 +21,6 @@

2121

from . import pytree

2222

from . import pygram

232324-

# The pattern grammar file

25-

_PATTERN_GRAMMAR_FILE = os.path.join(os.path.dirname(__file__),

26-

"PatternGrammar.txt")

27-28242925

class PatternSyntaxError(Exception):

3026

pass

@@ -42,13 +38,17 @@ def tokenize_wrapper(input):

42384339

class 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)

5252

self.pygrammar = pygram.python_grammar

5353

self.pysyms = pygram.python_symbols

5454

self.driver = driver.Driver(self.grammar, convert=pattern_convert)