我正在编写一个静态分析器,包括特定语言程序的前端。
前端成功地从程序生成 AST,分析器在该程序上运行良好:它要么证明程序正确(对于某些特定属性),要么为语句或表达式引发错误。
如果出现错误,我想明确错误消息。因此,我想localisation
在源代码中为引发错误的语句或表达式添加确切的内容。展示line number
已经很好,展示会row number
更好......
谁能告诉我如何修改前端来做到这一点?或者有什么我可以研究的文件吗?
(我想首先我需要修改 AST 中的类型,但我必须添加loc
到所有内容吗?)