diff options
| author | Benjamin Peterson <benjamin@python.org> | 2010-02-06 02:40:03 (GMT) |
|---|---|---|
| committer | Benjamin Peterson <benjamin@python.org> | 2010-02-06 02:40:03 (GMT) |
| commit | 18532e5bcb7ec36312a8a3651bbc93a20595a82f (patch) | |
| tree | d361455cc590421a0ff59bd92f7b46e7762c6631 /Lib/lib2to3/pygram.py | |
| parent | 6f4e5946d49d365641af4719813e2c5f93c03fcb (diff) | |
| download | cpython-18532e5bcb7ec36312a8a3651bbc93a20595a82f.zip cpython-18532e5bcb7ec36312a8a3651bbc93a20595a82f.tar.gz cpython-18532e5bcb7ec36312a8a3651bbc93a20595a82f.tar.bz2 | |
copy lib2to3 from the trunk
Diffstat (limited to 'Lib/lib2to3/pygram.py')
| -rw-r--r-- | Lib/lib2to3/pygram.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/Lib/lib2to3/pygram.py b/Lib/lib2to3/pygram.py new file mode 100644 index 0000000..6cdb3a4 --- /dev/null +++ b/Lib/lib2to3/pygram.py @@ -0,0 +1,35 @@ +# Copyright 2006 Google, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +"""Export the Python grammar and symbols.""" + +# Python imports +import os + +# Local imports +from .pgen2 import token +from .pgen2 import driver +from . import pytree + +# The grammar file +_GRAMMAR_FILE = os.path.join(os.path.dirname(__file__), "Grammar.txt") + + +class Symbols(object): + + def __init__(self, grammar): + """Initializer. + + Creates an attribute for each grammar symbol (nonterminal), + whose value is the symbol's type (an int >= 256). + """ + for name, symbol in grammar.symbol2number.iteritems(): + setattr(self, name, symbol) + + +python_grammar = driver.load_grammar(_GRAMMAR_FILE) + +python_symbols = Symbols(python_grammar) + +python_grammar_no_print_statement = python_grammar.copy() +del python_grammar_no_print_statement.keywords["print"] |
