1 # Copyright 2006 Google, Inc. All Rights Reserved.
2 # Licensed to PSF under a Contributor Agreement.
4 """Export the Python grammar and symbols."""
10 from .pgen2
import token
11 from .pgen2
import driver
15 _GRAMMAR_FILE
= os
.path
.join(os
.path
.dirname(__file__
), "Grammar.txt")
16 _PATTERN_GRAMMAR_FILE
= os
.path
.join(os
.path
.dirname(__file__
),
20 class Symbols(object):
22 def __init__(self
, grammar
):
25 Creates an attribute for each grammar symbol (nonterminal),
26 whose value is the symbol's type (an int >= 256).
28 for name
, symbol
in grammar
.symbol2number
.iteritems():
29 setattr(self
, name
, symbol
)
32 python_grammar
= driver
.load_grammar(_GRAMMAR_FILE
)
34 python_symbols
= Symbols(python_grammar
)
36 python_grammar_no_print_statement
= python_grammar
.copy()
37 del python_grammar_no_print_statement
.keywords
["print"]
39 pattern_grammar
= driver
.load_grammar(_PATTERN_GRAMMAR_FILE
)
40 pattern_symbols
= Symbols(pattern_grammar
)