我希望将FParsec用于类似python的语言,基于缩进。
我知道,这必须在lexing阶段完成,但是FParsec没有一个词法阶段。是否可以使用FParsec,或者,如何在词法结束后给它喂食?
P.D:我是F#的新手,但在其他语言方面有经验
发布于 2014-11-27 08:33:37
是的,有可能。
这里是一个相关条款由FParsec作者。如果您想深入研究这个问题,本论文可能值得一读。本文指出了基于Parsec的基于Parsec的基于解析器(Parsec)的多个基于缩进感知的解析包,Parsec是激发FParsec的解析器组合器。
FParsec没有单独的词法阶段,而是将词法和解析融合到一个阶段。与解析器生成器(fslex/fsyacc)相比,使用解析器组合器(FParsec)更好地完成基于缩进的解析。原因是您需要手动跟踪当前缩进,并根据上下文报告良好的错误消息。
https://stackoverflow.com/questions/27162285
复制相似问题