【发布时间】:2013-01-24 06:29:12
【问题描述】:
我将编写一个verilog(或vhdl)语言的解析器,并对解析的数据进行大量操作(某种转换)。我打算解析非常大的文件(完整的 Verilog 设计,大至 10K 行),我最终将支持大部分 Verilog。我不介意打字,但我不想在添加对其他规则的支持时重写代码的任何部分。
在 Haskell 中,您会推荐哪个库?我知道 Haskell 并且之前使用过 Happy(玩)。我觉得使用 Parsec 来转换代码中的解析字符串是有可能的(这是一个很大的优势)。我没有使用 uu-paringlib 的经验。
那么要解析verilog/VHDL 的完整语法,推荐使用哪一个?我主要关心的是我可以随心所欲地操纵解析数据的易用性和“正确性”。速度不是主要问题。
【问题讨论】:
-
这是一个庞大的项目。 Verilog 解析器非常复杂。
-
是的,确实如此。支持 verilog 的某些部分足以表明我希望在博士期间使用 verilog。但即使在我获得博士学位后,我也想继续这样做。所以这是一项非常长期的投资。我想知道 Haskell 是否符合要求。我喜欢这种语言。
-
那么,你最后做了什么?您对自己的选择满意吗?
-
你的意思是BNFC包吗? hackage.haskell.org/package/BNFC
-
是的.. 这个包还带有一个可执行命令。真的很好。
标签: parsing haskell parsec happy uu-parsinglib