summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2017-12-29 02:05:07 (GMT)
committerBenjamin Peterson <benjamin@python.org>2017-12-29 02:05:07 (GMT)
commit417f76a20e93044e422fb328a2d8e200fc6df295 (patch)
tree4872a4d52302863496ab4113bbd506b4d2af7512
parentc60eca06adda4900e6b469d989e6082cda3a3004 (diff)
downloadcpython-417f76a20e93044e422fb328a2d8e200fc6df295.zip
cpython-417f76a20e93044e422fb328a2d8e200fc6df295.tar.gz
cpython-417f76a20e93044e422fb328a2d8e200fc6df295.tar.bz2
make PatternCompiler use the packaged grammar if possible (more bpo-24960) (GH-5034) (#5037)
(cherry picked from commit e5f7dccefaa8d97ab53b3051acbb4a4d49379dc4)
-rw-r--r--Lib/lib2to3/patcomp.py14
1 files changed, 7 insertions, 7 deletions
diff --git a/Lib/lib2to3/patcomp.py b/Lib/lib2to3/patcomp.py
index d31a9da..00679b2 100644
--- a/Lib/lib2to3/patcomp.py
+++ b/Lib/lib2to3/patcomp.py
@@ -21,10 +21,6 @@ from .pgen2 import driver, literals, token, tokenize, parse, grammar
from . import pytree
from . import pygram
-# The pattern grammar file
-_PATTERN_GRAMMAR_FILE = os.path.join(os.path.dirname(__file__),
- "PatternGrammar.txt")
-
class PatternSyntaxError(Exception):
pass
@@ -42,13 +38,17 @@ def tokenize_wrapper(input):
class PatternCompiler(object):
- def __init__(self, grammar_file=_PATTERN_GRAMMAR_FILE):
+ def __init__(self, grammar_file=None):
"""Initializer.
Takes an optional alternative filename for the pattern grammar.
"""
- self.grammar = driver.load_grammar(grammar_file)
- self.syms = pygram.Symbols(self.grammar)
+ if grammar_file is None:
+ 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.pysyms = pygram.python_symbols
self.driver = driver.Driver(self.grammar, convert=pattern_convert)