crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V  < 1 2 3  
Ответить в данную темуНачать новую тему
> ошибка при генерации в ANTLRWorks 1.3.1
Балалайка
  опции профиля:
сообщение 20.12.2010, 14:10
Сообщение #21


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 20.12.2010
Пользователь №: 2284

Спасибо сказали: 0 раз(а)




Репутация:   0  


граждане, только 2ой день с ANTLR знаком. Не пойму как компилятором сделать Си. На яве всё хорошо идёт, но только пишу, language = С, парсер и лексер переводятся в си, но вылазиит ошибка, что javac не видит файла __Test__.java. Сишный подобный файл не генерируется. В настройках компиляции стоит javac. Я не пойму, нужно выбрать какойнибудь сишный компилятор?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 20.12.2010, 14:39
Сообщение #22


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


точно сейчас не скажу, но примерно так:
1. в коде должно быть:
options 
{
...
    language    = C;
}

2. в переменной окружения CLASSPATH для жабы должны быть пути до пакетов ANTLR. система должна находить либо пакетник, который чего-то-там-full называется, либо развёрнутый пакет должен быть установлен в стандартные каталоги жабы. об этом написано в википедии ANTLR на их сайте (например, тут: http://www.antlr.org/wiki/pages/viewpage.action?pageId=728). плюс вроде бы для Си ему нужен ещё Java JDK (не только JRE).
3. <имя файла>.g должно быть таким же, как имя парсера (не знаю, зачем такая дурь, но вот требуется ему это).

рекомендую поставить ANTLRWorks, если ещё не поставил. в нём проще, он диагностирует всякие неполадки и выводит более-менее читабельные сообщения. к тому же в последнем ANTLRWorks дополнено некое подобие визарда для простейших проектиков.

Сообщение отредактировал Iron Bug - 20.12.2010, 14:42
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Балалайка
  опции профиля:
сообщение 20.12.2010, 17:00
Сообщение #23


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 20.12.2010
Пользователь №: 2284

Спасибо сказали: 0 раз(а)




Репутация:   0  


Ну language = C; я ставлю.

Дело в том, что с Java я знаком также второй день. И так, вот что я делал:
1) Я установил себе java-машину - sun jvm
2) Установил себе jdk
3) Скачал antlrworks-1.4.2.jar
4) в настройках компиляции antlrworks выбрал javac и указал путь до папки jdk1.6.0_18 (есть ещё папка jre6, но там нет файла javac)

У меня был тестовый проект antl, где всё работает (в antlrworks): лексер, парсер и вызов сем. подпрограмм написанных на java. Так что вроде бы всё работает.
После этого я создал лексер, парсер, и выбрал язык java. Жму debug (в antlrworks всё это) и всё нормально, дерево разбора создаётся, подключённый java файл генерирует файл (просто для теста).
Далее изменяю язык на Си: options { language = C;}, удаляю папку output и жму ещё раз degug и вылазеет ошибка и в консоле текст:
[19:54:53] warning(200): Pascal.g:71:4: Decision can match input such as "'else'" using multiple alternatives: 1, 2
Цитата
As a result, alternative(s) 2 were disabled for that input
[19:54:53] warning(200): D:\TR2_lab#7\Pascal.g:71:4: Decision can match input such as "'else'" using multiple alternatives: 1, 2
As a result, alternative(s) 2 were disabled for that input
[19:54:54] javac: file not found: D:\TR2_lab#7\output\PascalParser.java
[19:54:54] Usage: javac <options> <source files>
[19:54:54] use -help for a list of possible options


При этом в папке output создаётся парсер, лексер - всё на языке си.
Понять не могу, зачем требует antlrworks файл PascalParser.java?
Также не могу понять, зачем в меню Run пункт Edit *.g Test Rig for C
И кстати при компиляции на java создаётся файл __Test__.java, а при указании языка Си , аналогичный файл (__Test__.с) не создаётся

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V  < 1 2 3
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.12.2024, 23:15