Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Синтаксический анализ логического выражения, сложность с алгоритмом 
V
    Опции темы
dAlex
Дата 5.7.2008, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 3.8.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 2



Проблема такая:
нужно посчитать логическое выражение и проанализировать его, чтобы потом создать XML на его основе.
Выражение типа такого: 
true or a or (not false and true)

Все это надо сделать на Яве. Проблема в алгоритме - ясно, что надо создать синтаксическое дерево, но как? Нужно ли переводить такое выражение в префиксную форму? И как вообще все это проще сделать? С явой сталкиваюсь в первый раз, раньше только на С++ писала, а там работу с деревьями писала только вручную

Это сообщение отредактировал(а) dAlex - 5.7.2008, 10:11
--------------------
eof()
PM WWW ICQ GTalk Jabber   Вверх
rimidal
Дата 5.7.2008, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 25.9.2007

Репутация: 1
Всего: 1



Ну вообще можно обойтись и без всяких деревьев.
Есть такая замечательная вещь как БНФ (Форма Бэкуса—Наура). Вам нужно составить правила в нотации БНФ ну а затем просто сгенерировать код (либо ручками, либо с помощью программы). Лично я пользовался CocoR for Java - преобразует код в нотации БНФ в исходный текст парсера (или интерпритатора - все зависит от задачи), есть даже плагин под Eclipse. Здесь можно поискать другие средства для написания парсера или интерпритатора.
PM MAIL   Вверх
dAlex
Дата 6.7.2008, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 3.8.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 2



Написала, используя постфиксную форму записи и стек +)
Есть только одна проблема - с выводом в файл.
У меня при создании XML формируется строка, а которой между тегами надо вставить перевод строки. Пишу туда "\n", а в файле вместо перевода строки квадратики +) Что нужно использовать для перевода строки? Построчно в файл выводить не могу, потому что у меня одна длинная строка.

Добавлено через 3 минуты и 21 секунду
в соседней теме прочитала про \r\n - помогло =)

Добавлено через 9 минут и 48 секунд
о, а System.getProperty("line.separator") - еще лучше =)
--------------------
eof()
PM WWW ICQ GTalk Jabber   Вверх
ElKa
Дата 9.7.2008, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 1.2.2006

Репутация: 2
Всего: 4



я использовала JavaCC и JJTree 
посмотрите мои последние темы про транслятор 

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0453 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.