簡體   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