我需要手動編寫解析器。無法選擇LL(*)和LR(可能試試Earley?)。我是否應該使用自下而上的解析方式,因爲LL的語法會比較困難?書寫手動解析器
Q
書寫手動解析器
0
A
回答
0
這取決於您嘗試使用的語法。 LL在語法上存在一些不確定性的麻煩(你不得不使所有的東西都是左遞歸)。
如果您不能決定,請使用LR(1)或LALR。甚至可能是GLR。
0
嘗試XText。這是給你的。快速簡單地創建語言,解析器和編輯器
0
手動編寫的最簡單的解析器類型是遞歸下降解析器,該解析器位於LL解析器系列中。大多數其他類型的解析器都很難手工編寫(LALR解析器,它使用大型狀態轉換表),或者用於解析複雜語言(例如用於解析自然語言的Earley解析器)。
wikipedia有關於遞歸下降解析的一些很好的信息。
2
我會用遞歸下降解析器或者可能是尾遞歸下降解析器(即LL)或自頂向下運算符優先解析器。
解析器的LR族,無論是LR,LALR(k),LALR(1),GLR還是別的都太過「怪異」了。如果你試圖編寫其中的一個,你通常最終會實現一個解析器生成器,無論如何,只是爲了保持理智。
相關問題
- 1. 手動書寫.xml
- 2. 如何着手編寫解析器?
- 3. 手寫自頂向下解析器
- 4. C++解析代碼(手寫)
- 5. 解析JSON手動
- 6. 證書解析器在android
- 7. 書寫解析器,需要一個語法並生成解析樹
- 8. 手動解析MTOM消息
- 9. 手動解析字符串
- 10. 「手動」解析SOAP響應
- 11. 解析嵌套JsonArray手動
- 12. 當解析的文件被程序寫入時,使用解析器生成器或手寫代碼?
- 13. 解析X509證書
- 14. 解析X509證書
- 15. CSV解析的書
- 16. 寫入BibTex解析器
- 17. 編寫序言解析器
- 18. 寫作解析器規則
- 19. 用Wisent編寫解析器
- 20. 試圖編寫解析器
- 21. 用手編寫命題邏輯解析器
- 22. 撲克手範圍解析器...我如何編寫語法?
- 23. 解析服務器證書問題
- 24. 手動重置密碼解析服務器,服務器端
- 25. 如何手動重寫Antlr4分析樹?
- 26. 在Haskell中使用解析器組合器庫編寫的分析解析器
- 27. 在解析到對象之前手動解析JSON
- 28. 爲GUI調試器編寫解析器
- 29. 手動解析AJAX返回承諾
- 30. Dojo手動解析沒有發生
它很大程度上取決於您嘗試分析哪種語言。沒有關於你的申請的更多信息,就不可能提供任何合理的建議。您可能還想看看「相關」問題(向下滾動並查看右側)。這裏有很多關於解析的問題,還有很多很好的討論。 – 2010-11-23 21:02:52
你爲什麼需要*手動編寫解析器?這通常沒有太多的價值。 – 2010-11-23 21:43:00
我不能使用yacc或其他解析器,我的解析器將在其中工作 – mystdeim 2010-11-24 10:47:08