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)

`