ошибка при генерации в ANTLRWorks 1.3.1 |
Здравствуйте, гость ( Вход | Регистрация )
ошибка при генерации в 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. в коде должно быть:
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__.с) не создаётся |
|
|
Текстовая версия | Сейчас: 23.12.2024, 4:03 |