首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >M3:如何识别Java项目中的语法错误

M3:如何识别Java项目中的语法错误
EN

Stack Overflow用户
提问于 2019-11-29 17:39:33
回答 1查看 60关注 0票数 1

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

即使对于好的项目,M3.message通常也包含很多错误,因为像junit这样的项目依赖关系,而createM3FromDirectory不能考虑到这一点。这些错误是好的,我的分析无论如何都是有效的。

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

目前,我使用下面的helper函数。

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

这是一个可靠的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-29 18:07:42

是的,这是足够可靠的。

另外,模式匹配可以任意嵌套,如下所示:

代码语言:javascript
复制
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

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

https://stackoverflow.com/questions/59102263

复制
相关文章

相似问题

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