2012-05-25 15 views
6

Ich war this page in der Dokumentation zu lesen, und bemerkte, dass es sagtWelchen Parser-Generator verwendet CPython?

Dies ist die vollständige Python Grammatik, wie es Quelldateien Python gelesen wird

vom Parser-Generator und verwendet, um zu analysieren

Ich habe jedoch Schwierigkeiten herauszufinden, was der Parser-Generator CPython verwendet. Also welchen Parsergenerator benutzt CPython? Gibt es andere Parser-Generatoren, die die Grammatik auf dieser Seite ohne Änderungen übernehmen würden?

Antwort

3

Python Open Source ist, so können Sie den Quellcode prüfen ...

In dem Python-Source-Verzeichnis ist ein "Parser" Verzeichnis "Python.asdl" mit dem Hinweis

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

es gibt auch eine „asdl.py“ Datei im selben Verzeichnis ...

 
"""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 
""" 

So scheint es, dass es sich um einen benutzerdefinierten Parser-Generator ist. LALR (1) Parser-Generatoren sind nicht so schwer zu schreiben.

Verwandte Themen