![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
ElKa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.2.2006 Репутация: 2 Всего: 4 |
пишу транслятор для формального языка.. целевой код - язык понятный модель чекеру
парсер создается с помощью JavaCC, а потом JJTree выстраивает синтаксическое дерево ... транслятор должен не только и не столько переводить язык, сколько использовать данные для создания функций.. причем данные обрабатываются в сложном порядке.. посоветуйте мне пожалуйста какую-нибудь модель, а то я уже несколько испробовала и сомневаюсь, что правильно у исходного кода структура примерно такая: -типы данных -класс 1 ---каналы ---процесс ---операции ... -класс N ---каналы ---процесс ---операции у целевого кода структура следующая: -интерфейс системы: каналы всех классов -класс 1 ---список операций имена ---функции входящих и исходящих переменных операций ---процесс ---каналы процесса ---функции с переменными операций ... -класс N ---список операций имена ---функции входящих и исходящих переменных операций ---процесс ---каналы процесса ---функции с переменными операций - спецификация системы в общем надо иметь быстрый доступ к данным классов, чтобы потом их преобразовывать в целевой код как это все лучше реализовать? сейчас я заношу еще во время парсинга все нужные данные в классы узлов потом синтаксическое дерево будет пробегаться Visitorom он достанет нужные данные из узлов и занесет в специальные классы для данных - один класс для всей системы и по одному на каждый класс потом Builder будет использовать эти классы и создавать целевой код может быть у кого-нибудь есть идея получше? |
|||
|
||||
ElKa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.2.2006 Репутация: 2 Всего: 4 |
ответа не дождалась..
решила использовать два посетителя: один для записи данных, другой для генерации кода первый пробегает синтаксическое дерево и записывает данные из одних узлов в другие а второй еще раз пробегает дерево и из этих данных генерит код ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |