gpt4 book ai didi

java - M3 : how to identify syntax errors in Java projects

转载 作者:太空宇宙 更新时间:2023-11-04 09:15:24 25 4
gpt4 key购买 nike

我正在使用 Java M3 模型编写一些分析规则,并加载了 createM3FromDirectory。如果 Java 代码包含语法错误,我想中止而不运行我的分析,因为这样模型可能会处于不一致的状态。

即使是好的项目,M3.messages 通常也会包含很多错误,因为像 junit 这样的项目依赖项,createM3FromDirectory 无法考虑到。这些错误没关系,我的分析无论如何都是有效的。

如何可靠地识别 Rascal 在加载模型时是否遇到语法错误?

目前我正在使用以下辅助函数。

set[Message] syntaxErrors(M3 model) =
{ e
| e:error(msg, _) <- model.messages
, /^syntax error/i := msg
};

这是一个可靠的方法吗?

最佳答案

是的,恕我直言,这足够可靠。

顺便说一句,模式匹配可以任意嵌套,如下所示:

set[Message] syntaxErrors(M3 model) =
{ e | e:error(/^syntax error/i, _) <- model.messages}

另一方面,您还可以将类路径传递给 createM3FromDirectory,以确保正确解析 JUnit 依赖项(以及其他依赖项)。如果您需要为 Maven 项目构建这样的类路径,您可能需要尝试:https://github.com/cwi-swat/rascal-java-build-manager

关于java - M3 : how to identify syntax errors in Java projects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59102263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com