mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 03:44:55 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			35 lines
		
	
	
	
		
			886 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			886 B
		
	
	
	
		
			Python
		
	
	
	
	
	
# 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.items():
 | 
						|
            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"]
 |