【发布时间】:2013-08-20 15:12:44
【问题描述】:
这个问题与Parsec 和uu-parsinglib 有关。当我们编写解析器组合器时,它们会处理来自编译器的字符流。是否有可能解析一个字符并将其放回(或返回另一个字符)到输入流?
我想例如解析输入“test + 5”,解析t,e,s,t 并在识别test 模式后,将例如v 字符返回进入字符流,所以在继续解析过程的同时,我们将匹配v + 5
我现在不想在任何特定情况下使用它 - 我想深入了解可能性。
【问题讨论】:
-
Parsec 当然可以,因为您可以使用
getInput和setInput函数。 -
是的,Parsec 可以做到这一点,但它肯定会增加解析器的复杂性并使调试更加困难。它的一个常见用途是为编程语言实现预处理器。
标签: parsing haskell parsec parser-combinators uu-parsinglib