1
5
我认为问题在于,我假设f(因为我不知道),箭头是正确的联想。我不知道连接语法应该有多精确,因为我不太精通不同的语法。但如果我们可以假设箭头是正确关联的,那么问题就更容易解决了。 因此,有了这个假设,我们可以轻而易举地做到:
所以:
进一步展开,可能会让您感到困惑的是,在该语法中,它表示type->type,这意味着您可以在左侧有一个箭头。没关系,但必须放在括号里。这有帮助,也许看到下面的行动是有帮助的。它帮助了我。
现在我们可以在箭头的左边或右边写箭头:
|
2
4
我认为你应该把左递归排除在语法之外。而不是
你得到一些像
我认为这将更容易直接翻译成parsec。(人们会认为
也可以考虑看看 Monadic Parser Combinators in F# (以及之前7篇C博客文章)了解一些基本信息。我认为 parsec docs (如果我没记错的话,试着自上而下地读一下,它们很不错)以及各种研究论文中的一些例子都谈到了一些问题,比如你的问题。 |
3
0
这不会帮助你理解哪里出错,但我建议你考虑使用
|
LudvigH · 行模式的Parsec开始? 7 年前 |
ddccffvv · Parsec:一行上有多个可能的选项 11 年前 |
Sibi · haskell中的attoparsec或parsec 11 年前 |