繁体   English   中英

如何从文件创建Rascal AST

[英]How to create an Rascal AST from file

我已经在Rascal网站上找到了文档: http : //tutor.rascal-mpl.org/Rascal/Libraries/lang/java/m3/AST/createAstFromFile/createAstFromFile.html但老实说,我不知道如何应用此文件。 有人可以给我一个如何在代码中应用此示例吗? 我已经尝试了一些方法,但是丢失了修饰符“ java”或未声明的变量错误,这对我没有任何帮助。

我目前停留在:

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

另外两个问题:“声明”在此处添加了什么? 在这种情况下,collectBindings布尔值是什么意思? (文档与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)

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

问题是围绕编译器参数(类路径等)。 给定项目时,该功能可以从项目配置中获取元信息,从而使其正常工作。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM