首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取当前上下文错误格式化函数

获取当前上下文错误格式化函数
EN

Stack Overflow用户
提问于 2022-02-15 17:41:42
回答 1查看 99关注 0票数 1

我正在使用Megaparsec来获取代码的树表示形式,这些代码后来通过分离的函数进行评估。我想在树的节点中添加带有当前上下文的parsec函数来格式化错误。

为什么?例如:语法可能没有问题,但代码中的一些变量可能不存在,只有在以后处理树的分隔函数中才能找到这些变量。函数将不得不抛出错误,该变量不存在,如果我可以使用Megaparsec很好地格式化错误(带有行号、上下文、.),我会很高兴。

请问有什么办法吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-15 20:01:19

我相信你可以通过getSourcePos获得目前的职位。例如,在树生成的开放递归样式中,您可以编写

代码语言:javascript
复制
data Annotated f = Annotated
    { start :: SourcePos
    , term :: f (Annotated f)
    , end :: SourcePos
    }

annotated :: (MonadParser e s m, TraversableStream s) =>
    m (f (Annotated f)) -> m (Annotated f)
annotated p = liftA3 Annotated getSourcePos p getSourcePos

(注:我还没试过,甚至还没有做过类型检查;我只是尽力用专家的眼光来解释兆赫秒的文档。(请注意。)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71130998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档