Han*_*ans 8 haskell parsec
我正在玩parsec并意识到我有一个含糊不清的语法.显然这是我的错误,但我有点习惯yacc风格的解析器生成器让我知道我是愚蠢的.Parsec只按你给解析器的顺序吃字符(是的,我知道try).
try
有什么办法让parsec告诉我什么时候我的语法没有留下来?对我有用的程序很棒.
谢谢!
(我知道shift-reduce与不同类型的解析器技术有关.我只是想描述模糊的语法.)
Joh*_*n L 8
我不是Parsec专家,所以我很可能会被纠正,但我不认为这是可能的,原因很简单,Parsec对你的语法一无所知.
或者换句话说,虽然你的语法可能不明确,但你的Parsec解析器不是,并且程序无法确定parsec组合器的其他排列,它为等效输入产生不同的输出,也是一个有效的表示形式.未指明的语法.
既然你有语法,你可能更喜欢使用happy和alex,它会给你更多lexx/yacc式的体验.
一个有趣的项目可能是调整BNFC以生成一个parsec组合器的AST来表示语法,但我怀疑这将是一项非常重要的任务.
归档时间:
13 年 前
查看次数:
387 次
最近记录: