2017-03-08 62 views
0

在下面的模塊中,我嘗試添加myModel以進行調試以查看AST。未聲明的類型:createM3FromEclipseProject(Rascal)

module FlowGraphsAndClassDiagrams 

import analysis::flow::ObjectFlow; 
import lang::java::flow::JavaToObjectFlow; 
// Added to check the M3 model 
import lang::java::jdt::m3::AST; 

import List; 
import Relation; 
import lang::java::m3::Core; 

import IO; 
import vis::Figure; 
import vis::Render; 
import analysis::m3::TypeSymbol; 
alias OFG = rel[loc from, loc to]; 
//To view the M3 model from the whole eclipse project 
alias myModel = createM3FromEclipseProject(loc project); 
.... 

當我輸入上述模塊中的流氓控制檯,我得到以下錯誤:

Reloading module FlowGraphsAndClassDiagrams 
|console:///|:Could not load FlowGraphsAndClassDiagrams 
|console:///|:could not reimport FlowGraphsAndClassDiagrams 
|project://my_project/src/FlowGraphsAndClassDiagrams.rsc|(428,26,<18,16>,<18,42>): Undeclared type: createM3FromEclipseProject 
Advice: |http://tutor.rascal-mpl.org/Errors/Static/UndeclaredType/UndeclaredType.html| 

我不明白的錯誤是什麼。

回答

1

我認爲問題在於

alias myModel = createM3FromEclipseProject(loc project);

什麼是你想達到這個別名嗎?我想你不希望使用別名,而不是你想這樣做:

m = createM3FromEclipseProject(|project://eLib|);

println(m);

+0

我只是想添加一個變量說m = createM3FromEclipseProject(loc項目); 並打印出來。 –

+0

我編輯了我的答案。 – Kasper

+0

myModel = createM3FromEclipseProject(loc project); 在我的項目中聲明它時,我得到了一個解析。而它在我的控制檯中工作。 –

1

兩個答案都是正確的,你不能使用全局變量的別名。如果你想創建一個全局變量(在大多數情況下我們建議反對),你必須給出該變量的類型。我們只允許對局部變量進行類型推斷。

因此,在特定情況下,它應該是:

M3 myModel = createM3FromEclipseProject(|project://eLib|); 

在大多數情況下,你想這樣做,你的主要方法,而不是在模塊導入時間。