使用 RascalMPL 处理 DSL 中的 ParseError

问题描述 投票:0回答:1

在 rascal 中,当我的 DSL 出现解析错误时,我如何能够详细说明可能导致语法/解析错误的原因,因为

ParseError
异常仅包含文件中问题的位置?任何资源都很有价值,谢谢。

rascal
1个回答
0
投票

这是一个很好的功能,一个可解释的解析错误。

我们正在开发一个具有错误恢复功能的分支。即使出现错误,错误恢复也会继续解析。生成的解析树将是完整的(它具有所有字符),但也是部分的(某些部分不会被语法识别)。我不知道这件事什么时候能完成。这是一个副业项目。

从这样一个恢复的树中,可以比我们现在更好地解释解析错误。

尽管如此,没有比反事实观察更好的解释了。因此,通常对解析错误的最佳解释是替代输入句子,该句子相似但不同,足以成功。因此,最好建议用户尝试一下扔掉光标周围的内容(可能在上一行),看看会发生什么。

© www.soinside.com 2019 - 2024. All rights reserved.