make PatternCompiler use the packaged grammar if possible (more bpo-2… · python/cpython@417f76a (original) (raw)
`@@ -21,10 +21,6 @@
`
21
21
`from . import pytree
`
22
22
`from . import pygram
`
23
23
``
24
``
`-
The pattern grammar file
`
25
``
`-
_PATTERN_GRAMMAR_FILE = os.path.join(os.path.dirname(file),
`
26
``
`-
"PatternGrammar.txt")
`
27
``
-
28
24
``
29
25
`class PatternSyntaxError(Exception):
`
30
26
`pass
`
`@@ -42,13 +38,17 @@ def tokenize_wrapper(input):
`
42
38
``
43
39
`class PatternCompiler(object):
`
44
40
``
45
``
`-
def init(self, grammar_file=_PATTERN_GRAMMAR_FILE):
`
``
41
`+
def init(self, grammar_file=None):
`
46
42
`"""Initializer.
`
47
43
``
48
44
` Takes an optional alternative filename for the pattern grammar.
`
49
45
` """
`
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)
`
52
52
`self.pygrammar = pygram.python_grammar
`
53
53
`self.pysyms = pygram.python_symbols
`
54
54
`self.driver = driver.Driver(self.grammar, convert=pattern_convert)
`