symbian-qemu-0.9.1-12/python-win32-2.6.1/lib/lib2to3/pygram.py
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 # Copyright 2006 Google, Inc. All Rights Reserved.
       
     2 # Licensed to PSF under a Contributor Agreement.
       
     3 
       
     4 """Export the Python grammar and symbols."""
       
     5 
       
     6 # Python imports
       
     7 import os
       
     8 
       
     9 # Local imports
       
    10 from .pgen2 import token
       
    11 from .pgen2 import driver
       
    12 from . import pytree
       
    13 
       
    14 # The grammar file
       
    15 _GRAMMAR_FILE = os.path.join(os.path.dirname(__file__), "Grammar.txt")
       
    16 
       
    17 
       
    18 class Symbols(object):
       
    19 
       
    20     def __init__(self, grammar):
       
    21         """Initializer.
       
    22 
       
    23         Creates an attribute for each grammar symbol (nonterminal),
       
    24         whose value is the symbol's type (an int >= 256).
       
    25         """
       
    26         for name, symbol in grammar.symbol2number.iteritems():
       
    27             setattr(self, name, symbol)
       
    28 
       
    29 
       
    30 python_grammar = driver.load_grammar(_GRAMMAR_FILE)
       
    31 python_symbols = Symbols(python_grammar)
       
    32 
       
    33 
       
    34 def parenthesize(node):
       
    35     return pytree.Node(python_symbols.atom,
       
    36                        (pytree.Leaf(token.LPAR, "("),
       
    37                         node,
       
    38                         pytree.Leaf(token.RPAR, ")")))