我的意思是標題中的???
,因爲我不完全確定。讓我解釋一下情況。從JavaCC源生成Python語言的解析器?
我不是計算機專業的學生&我從來沒有任何編譯過程。到目前爲止,我曾經認爲編譯器編寫者或編譯器課程的學生是非常優秀的,因爲他們必須編寫編譯器的Parser組件,不管他們正在編寫哪種編譯器。這不是一件容易的工作嗎?
我處理信息檢索問題。我期望的編程語言是Python。
解析器性質: http://ir.iit.edu/~dagr/frDocs/fr940104.0.txt是樣本語料庫。該文件包含大約50個帶有一些XML樣式標記的文檔。 (你可以在上面的鏈接中看到它)。我需要記下其他一些其他值,如<DOCNO> FR940104-2-00001 </DOCNO>
& <PARENT> FR940104-2-00001 </PARENT>
我只需要索引文件的<TEXT> </TEXT>
部分,其中包含一些需要剝離的變量標籤以及很多可以忽略的<!-- -->
註釋以及一些&hyph; &space; &
字符實體。我不知道爲什麼語料庫有這樣的事情,當它知道它不是爲了通過瀏覽器呈現,也不是一個合適的XML文檔。
我想用任何的Python XML解析器和提取所需的文本。但經過一番搜索,我發現JavaCC parser source code (Parser.jj)爲同一語料庫,我正在使用here。快速查看JavaCC和Compiler-compiler後發現,所有編譯器編寫者都不如我想像的那麼好。他們使用Compiler編譯器來生成所需語言的解析器代碼。 Wiki表示編譯器編譯器的輸入是一種語法(通常在BNF中)。這是我迷失的地方。
- 是Parser.jj語法(輸入到編譯器編譯稱爲JavaCC的)?這絕對不是BNF。這個語法叫什麼?爲什麼這個語法有Java語言?沒有普遍的語法語言嗎?
- 我想要解析語料庫的Python解析器。有什麼辦法可以翻譯Parser.jj來獲得python的等價物嗎?如果是,那是什麼?如果不是,我的其他選擇是什麼?
- 有沒有人知道這個語料庫是什麼?它的原始來源在哪裏?我想看看它的一些說明。它是分佈式網絡上的名字
frDocs.tar.gz
不要JavaCC中,SableCC,ANTLR的存在所迷惑,提振精神::,lepl,pyparsing等寫一個像樣的** **編譯仍然是藝術,有時甚至是黑色藝術。而且,它確實有助於知道你在做什麼,當你要拿出一個好的語法/詞法分析器等,所以不要誤以爲所有的人做的是火了命令行程序。 – 2010-09-17 21:59:49
「此文件包含大約50個帶有某種XML樣式標記的文檔」。它沒有一個正確的'<?xml'頭文件,但它確實喜歡XML。它可能 - 實際上 - 是SGML。爲什麼不簡單地使用XML解析器?爲什麼浪費時間重塑那個輪子? – 2010-09-18 13:06:02