2016-12-05 4 views
0

В оболочке Rascal, делая это:Ошибка при выполнении ParseTree

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 

Любой отзыв?

Btw, работает Debian Jessie, Oracle 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>)) at *** где-то *** (| prompt: /// | (78,4, <1,78>, <1,82>)) at parse (| prompt:/// | (78,4, <1,78>, <1,82>)) –

+0

что не работает: «#include», многострочный printf (я думаю, не существует многострочной строки вообще) и инициализация нескольких переменных multiline (ex: int i = 0, \ nj = 0, \ nk = 0). –

+0

Если мне удастся исправить некоторые ошибки, отправлю их. –

 Смежные вопросы

  • Нет связанных вопросов^_^