python3精要(62)-编译与解释实践(1)
歡迎來到PLY主頁。 PLY是python的lex和yacc解析工具的實現。
簡而言之,PLY只是簡單的lex / yacc實現。以下是其基本功能列表:
它完全用Python實現。
它使用LR解析,這是相當有效的,非常適合于較大的語法。
PLY提供了大多數標準的lex / yacc功能,包括對空乘積,優先級規則,錯誤恢復的支持以及對歧義語法的支持。
PLY易于使用,并提供非常廣泛的錯誤檢查。
除了提供基本的lex / yacc功能之外,PLY不會嘗試做更多或更少的事情。換句話說,它不是大型的解析框架,也不是大型系統的組成部分。
PLY的原始版本開發于2001年,用于“編譯器簡介”課程,學生可以使用它來為一種類似于Pascal的簡單語言構建編譯器。由于它在教學環境中的使用,因此提供了大量錯誤檢查的工作量很大。此外,這種經驗還用于解決常見的可用性問題。從那時起,對該系統進行了各種增量改進。
PyBison是一個框架,可以有效地將Bison和Flex“包裝”到Python類結構中。
您定義一個解析器類,將標記和優先級定義為屬性,并將目標解析為帶有文檔字符串中規則的方法,然后實例化并運行。
Black Magick發生在后臺,每次yyparse()解析一個解析目標時,您都會得到回調。
但是PLY受到一些主要限制:
在詞法分析器中使用“命名組”正則表達式創建了100個令牌的硬限制-不足以舒適地處理主要語言
純python實現是一種便利,但是會帶來殘酷的性能損失
解析器引擎是SLR,不是完整的LALR(1)
其他框架則使用了一種奇怪的腳本語法
此外,需要安裝下面工具:
Python
pip
GNU bison
flex
gcc等
總結
以上是生活随笔為你收集整理的python3精要(62)-编译与解释实践(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FPGA笔录(2)-触发器与锁存器原理
- 下一篇: python3精要(64)-Python