2012-05-25 11 views
6

estaba leyendo this page en la documentación, y se dio cuenta de que dice¿Qué generador de analizadores usa CPython?

Ésta es la gramática Python completa, ya que es leído por el generador de análisis y se utiliza para analizar los archivos fuente de Python

Sin embargo, tengo dificultades para descubrir qué generador de analizadores utiliza CPython. Entonces, ¿qué generador de analizadores usa CPython? ¿Hay otros generadores de analizadores que tomarían la gramática en esa página sin ninguna modificación?

Respuesta

3

Python es de código abierto, por lo que puede inspeccionar el código fuente ...

En el directorio de fuentes de Python es un directorio "Analizador" que contiene "Python.asdl" con la nota

 
-- ASDL's four builtin types are identifier, int, string, object 

también hay un archivo "asdl.py" en el mismo directorio ...

 
"""An implementation of the Zephyr Abstract Syntax Definition Language. 

See http://asdl.sourceforge.net/ and 
http://www.cs.princeton.edu/research/techreps/TR-554-97 

Only supports top level module decl, not view. I'm guessing that view 
is intended to support the browser and I'm not interested in the 
browser. 

Changes for Python: Add support for module versions 
""" 

por lo que parece que es un generador de analizador personalizado. Los generadores de analizadores LALR (1) no son tan difíciles de escribir.

Cuestiones relacionadas