Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parsing 歧义语法分析器_Parsing_Haskell_Parsec - Fatal编程技术网

Parsing 歧义语法分析器

Parsing 歧义语法分析器,parsing,haskell,parsec,Parsing,Haskell,Parsec,是否有一个解析器可以解析不明确的语法(最好是在Haskell中) Parsec的论文()陈述了以下内容: “对于语言中的一个句子,歧义语法有多个解析树。只有能够返回多个值的解析器组合符才能处理歧义语法。此类组合符使用列表作为其答复类型。” 但我还没有找到任何这样的解析器组合器。它们存在吗?存在。在我的脑海中,有一个这样的例子。在这里找到了类似的答案:@mba12 MetaS似乎正是我要寻找的,但我似乎找不到任何这样的软件包。AlexisKing回答了我的问题,谢谢@RahulManne对不起,我

是否有一个解析器可以解析不明确的语法(最好是在Haskell中)

Parsec的论文()陈述了以下内容:

“对于语言中的一个句子,歧义语法有多个解析树。只有能够返回多个值的解析器组合符才能处理歧义语法。此类组合符使用列表作为其答复类型。”


但我还没有找到任何这样的解析器组合器。它们存在吗?

存在。在我的脑海中,有一个这样的例子。在这里找到了类似的答案:@mba12 MetaS似乎正是我要寻找的,但我似乎找不到任何这样的软件包。AlexisKing回答了我的问题,谢谢@RahulManne对不起,我对MetaS一无所知。您还可以在Antlr中编写一个解析器,使用自定义代码处理歧义。这可能比您希望做的工作要多,但可能是一个合理的解决方案。标准库中的
ReadP
也可以做到这一点,尽管它在解析多树的深度上可能是指数级的(earley只是立方)。