我目前正在尋找一個從BNF文法(具有優先級和關聯性的ocamlyacc
文件)生成Scala代碼的詞法分析器/解析器。我很困惑,因爲我幾乎沒有發現如何去做。Lexer /解析器從BNF文法生成Scala代碼
對於解析,我發現scala-bison
(我有很多麻煩工作)。所有其他工具只是導入Scala的Java解析器(如ANTLR
)。
對於lexing,我什麼也沒找到。
我還發現了著名解析器組合斯卡拉的,但(糾正我,如果我錯了),即使他們是相當有吸引力的,他們消耗了大量的時間和內存,這主要是由於回溯。
所以,我有兩個主要問題:
- 爲什麼人們似乎只專注於_parser組合子?
- 什麼是您最好的詞法分析器/解析器生成器建議與Scala一起使用?
感謝您的答案和你的gll combinators,我會嘗試瞭解它是如何工作:) 但我想我會嘗試與JFlex和Scala一起玩。 – Vinz 2010-06-23 09:47:48
感謝所有的教程(包括codecommit你的一些)我最終設法做一個簡單的詞法分析器/分析器與分析器combinators,沒有太多的遞歸..再次感謝! – Vinz 2010-06-23 20:06:35