我正在使用uu-parsinglib
,但我认为以下问题是解析器组合器通用的。
让我们考虑以下示例:
我有一个带有组合器的词法分析器pLex
,它产生一个标记列表(类型MyToken
)。我现在想编写一个解析器,它将使用令牌并构建一个AST
.
连接词法分析器和解析器的最佳方法是什么?现在我有一个lex
功能:
lex s = parse ( (,) <$> pLex <*> pEnd) (createStr (LineColPos 0 0 0) s)
我应该创建一个函数parse p = ...
吗?如果是,我如何构造它来跟踪来自词法分析器的列和行?或者我应该创建一个parserCombinator
, 它会pLex
以某种方式使用组合器?