如何从文件

时间:2016-10-31 19:03:54

标签: java rascal

我在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|
}

1 个答案:

答案 0 :(得分:1)

我有类似的运气,但发现了以下解决方法:

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

这将为您提供项目的所有功能,您可以从中选择所需的项目。

问题在于编译器参数(类路径等)。给定项目时,该函数可以从项目配置中派生元信息,使其正常工作。

  • collectBindings意味着文件不仅被解析,而且还执行名称绑定和类型绑定。这很有用,但需要更多时间。
  • Declaration只是宣称某事的一般类型。