2016-12-05 32 views
0

在流氓的外壳,这样做:错误运行分析树

import lang::c90::\syntax::C; 
import ParseTree; 
parse(#TranslationUnit, |file:///teste.c|); 

我在稳定独立的罐子得到:

|prompt:///|(24,93,<1,24>,<1,117>): ParseError(|file:///home/rafael2k/files/UnB/static_analysis/eclipse-workspace/rascal-C/c-source/teste.c|(47,0,<4,0>,<4,0>)) 
     at parse(|prompt:///|(24,93,<1,24>,<1,117>)) 
     at *** somewhere ***(|prompt:///|(24,93,<1,24>,<1,117>)) 
     at parse(|prompt:///|(24,93,<1,24>,<1,117>)) 

而且在Eclipse中,我得到一个巨大的信息错误:

(...) 
    public AbstractStackNode<IConstructor>[] FloatingPointConstant() { 
    return FloatingPointConstant.EXPECTS; 
    } 
    public AbstractStackNode<IConstructor>[] StructDeclarator() { 
    return StructDeclarator.EXPECTS; 
    } 
} 
Advice: |http://tutor.rascal-mpl.org/Errors/Static/JavaCompilation/JavaCompilation.html|null 

任何提示?

顺便说一句,运行Debian杰西,甲骨文的Java 1.8.0_112,x86_64的。

回答

0

我认为它可以固定与此:

parse(#start[TranslationUnit], |file:///teste.c|); 

通过使用启动非终端可以解析其开头的文件和/或用空格或源代码注释结束。又见这个问题的答案:Layout in Rascal

顺便说一句,该处理器已经应用在此之后的语法将解析C程序。

Eclipse的错误是一个看似不相关的问题,对此我们很乐意收到关于GitHub的问题跟踪一个堆栈跟踪。

+0

只有非常简单的方案被接受。 | prompt:/// |(78,4,<1,78>,<1,82>):ParseError(| project://rascal-C/src/main.c |(0,1,<1,0>,<1,1>)) at parse(| prompt :/// |(78.4,<1,78>,<1,82>)) 在某处*** ***(|提示:/// |(78.4,<1,78>,<1,82>)) 在分析(|提示:/ // |(78.4,<1,78>,<1,82>)) –

+0

什么行不通: “#包括”,多的printf(我想没有多串上)和多变量多的初始化(例如:INT I = 0,\ nj = 0,\ nk = 0)。 –

+0

如果我设法解决一些错误,我发布它们。 –