gpt4 book ai didi

java - 如何从文件创建 Rascal AST

转载 作者:行者123 更新时间:2023-12-01 09:18:25 27 4
gpt4 key购买 nike

我在 Rascal 网站上找到了文档: http://tutor.rascal-mpl.org/Rascal/Libraries/lang/java/m3/AST/createAstFromFile/createAstFromFile.html但老实说我不知道​​如何应用它。有人能给我一个如何在代码中应用这个的例子吗?我尝试了一些方法,但是要么缺少修饰符“java”,要么出现未声明的变量错误,这对我根本没有帮助。

我目前陷入:

ast = createAstFromFile(l,true,"1.8");

另外两个问题:“声明”在这里添加了什么?在这种情况下,collectBindings boolean 值意味着什么?(文档中与 Rascal 这部分相关的内容不是很清楚)

其他信息:

rascal>import lang::java::jdt::m3::Core;
ok
rascal>createM3FromEclipseFile(|project://smallsql/src/smallsql/tools/CommandLine.java|);
|plugin://rascal_eclipse/src/org/rascalmpl/eclipse/library/lang/java/jdt/Project.rsc|(276,127,<11,0>,<12,47>): IO("**smallsql does not exist**")
at somewhere plugin://rascal_eclipse/src/org/rascalmpl/eclipse/library/lang/java/jdt/Project.rsc|(276,127,<11,0>,<12,47>))
at classPathForProject(|plugin://rascal_eclipse/src/org/rascalmpl/eclipse/library/lang/java/jdt/m3/Core.rsc|(1776,2,<54,55>,<54,57>))
at $root$(|prompt:///|(0,82,<1,0>,<1,82>))


rascal>projects();
set[loc]: {
|project://smallsql|,
|project://MetricsTest|,
|project://Analysis|,
|project://hsqldb|
}

最佳答案

我也有类似的运气,但找到了以下解决方法:

import lang::java::jdt::m3::AST;
createAstsFromEclipseProject(|project://myProject|,true)

这将为您提供该项目的所有 ass,您可以从中选择您需要的一个。

问题出在编译器参数(类路径等)上。当给定一个项目时,该函数可以从项目配置中获取元信息,从而使其正常工作。

  • collectBindings 意味着不仅会解析文件,还会执行名称绑定(bind)和类型绑定(bind)。这很有用,但需要更多时间。
  • 声明只是声明某事物的一般类型。

关于java - 如何从文件创建 Rascal AST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40348842/

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