使用 Parsec 可以轻松地将位置作为偏移量(作为输入开始的字符)吗?如果是这样,怎么做?Parsec 在内部将位置保留为具有源名称、行和列的数据类型。
我希望能够编写一个解析器
pWithPos p = do left <- getPosition -- gets the current position as an offset
x <- p
right <- getPosition -- gets the current position as an offset
return (x,(left,right))
它使用解析器 p 解析某些东西,并返回它的结果,以及它的左右位置作为offsets。