使用 Parsec 解析复杂文件
Parsing complex files with Parsec
我想用 Haskell 解析包含多个数据序列(相同列数、相同内容……)的文件。
我的数据序列将由关键字前后分隔。
BEGIN
1 882
2 809
3 435
4 197
5 229
6 425
...
END
BEGIN
1 235 623 684
2 871 699 557
3 918 686 49
4 53 564 906
5 246 344 501
6 929 138 474
...
END
我的问题是,在使用 Parsec 进行了几次测试之后,我的印象是 Parsec 更倾向于逐行而不是整个文件文件.
Parsec 是实现我想要的东西的正确方法吗?或者我应该考虑使用其他工具,例如 Happy 或 亚历克斯 ?
是否有网站(或其他资源)提供使用 Parsec 解析复杂文本文件的示例?
注意:我给出的例子是非常简单的例子。如果我的文件中包含更多关键字和组合,事情会变得更加棘手。
您所描述的格式在秒差距内处理起来一点也不难。
至于学习如何使用它:您的第一步应该是避免任何指南给您的印象是 parsec 是逐行工作的。我推荐Chapter 16 of Real World Haskell as a good place to get started, and once you're comfortable with the basics the reference material at http://hackage.haskell.org/package/parsec其实很清楚
我想用 Haskell 解析包含多个数据序列(相同列数、相同内容……)的文件。 我的数据序列将由关键字前后分隔。
BEGIN
1 882
2 809
3 435
4 197
5 229
6 425
...
END
BEGIN
1 235 623 684
2 871 699 557
3 918 686 49
4 53 564 906
5 246 344 501
6 929 138 474
...
END
我的问题是,在使用 Parsec 进行了几次测试之后,我的印象是 Parsec 更倾向于逐行而不是整个文件文件.
Parsec 是实现我想要的东西的正确方法吗?或者我应该考虑使用其他工具,例如 Happy 或 亚历克斯 ?
是否有网站(或其他资源)提供使用 Parsec 解析复杂文本文件的示例?
注意:我给出的例子是非常简单的例子。如果我的文件中包含更多关键字和组合,事情会变得更加棘手。
您所描述的格式在秒差距内处理起来一点也不难。
至于学习如何使用它:您的第一步应该是避免任何指南给您的印象是 parsec 是逐行工作的。我推荐Chapter 16 of Real World Haskell as a good place to get started, and once you're comfortable with the basics the reference material at http://hackage.haskell.org/package/parsec其实很清楚