我知道Python中有一些與BNF(Backus-Naur窗體)語法有關的模糊問題,但是他們沒有一個對我的應用程序有很大的幫助。如何在Python中實現Backus-Naur窗體
我有多個BNF需要編寫代碼。代碼應該能夠使用BNF語法生成和識別合法字符串。
我正在使用的第一個BNF是用於Python中的所有實數。這是因爲如下:
<real number> ::= <sign><natural number> |
<sign><natural number>'.'<digit sequence> |
<sign>'.'<digit><digit sequence> |
<sign><real number>'e'<natural number>
<sign> ::= ‘’ | ‘+’ | ‘-‘
<natural number> ::= ‘0’ | <nonzero digit><digit sequence>
<nonzero digit> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<digit sequence> ::= ‘’ | <digit><digit sequence>
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
我發現Python的任何BNF解析器顯得異常複雜,或使用外庫。有沒有更簡單的方法來檢查和生成在Python中使用BNF語法?
BNF ==巴科斯範式產生一個解析器?對於我們這些每天不玩弄文法解析器的人。 – Ben
@是的,你是對的。對不起,我將編輯帖子 – Jakemmarsh
您是否在尋找能解析BNF文件來生成語法/詞法分析器的東西,或者您可以用Python編寫的東西來描述它與BNF的等價物? –