![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| fuckingniger |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 1.10.2010 Репутация: нет Всего: 1 |
помогите написать грамматику для условного оператора(например паскалевского оператора)
я навоял тут кое-что - но как-то не совсем правильно работает(не при всех у словиях) /
spc - любое количество(может быть и ноль) пробелов и табов в произвольном порядке l_s и r_s - скобки word - любое незарезервированное слово вроде остальное должно быть понятно Добавлено через 49 секунд P.S. это бизон |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Это не бизон - это жуть в полоску
В бизоне есть понятие приоритетов операций, не надо все расписывать поэлементно. И откуда у вас там пробелы взялись (spc) - они еще на этапе выделения лексем должны были быть удалены. Вот, кусок реального файла:
|
|||
|
||||
| fuckingniger |
|
||||||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 1.10.2010 Репутация: нет Всего: 1 |
нееееее....у меня бизон в паре с флексом работает. флекс делает лексический анализ исходного текста(распознать заданные некоторой грамматикой усовия), а бизон должен сделать синтаксический анализ.
Добавлено @ 22:00 могу весь код привести чтоб понятнее было. вот флексовская грамматика:
а вот бизоновская(то, что я сделал):
Добавлено через 10 минут и 42 секунды просто у меня не получается задать грамматику для условного оператора. вот например такая строка работает:
а такая нет - не понимаю, по каким -таким разным правилам это может выполняться:
Добавлено через 12 минут и 47 секунд разница в этих строках в этом месте:
там 2 таба.Если поставить пробел, то это ничего не поменяет Это сообщение отредактировал(а) fuckingniger - 29.3.2011, 22:01 |
||||||||||||
|
|||||||||||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
У вас пробелы (и табы) являются значимыми элементами грамматики. Если сможете внятно объяснить зачем - то возможно сможете и разницу в строках объяснить.
(Во 2й строке между r_s и men у вас вставлено spc - по этому и не работает) Да хоть с флюсом Именно, а не заниматься попутно вычесыванием мусора из потока лексем от флекса |
|||
|
||||
| fuckingniger |
|
||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 1.10.2010 Репутация: нет Всего: 1 |
Это крайне любопытно. то есть если я исключу из флекса(и из бизона соответственно ) пробелы, энтеры, табы, то бизон не будет выдавать ошибку???(если на входе в бизон будет строка с пробелами ....)
я расчитывал на то что
будет распознано как
Это сообщение отредактировал(а) fuckingniger - 31.3.2011, 13:00 |
||||||||
|
|||||||||
| fuckingniger |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 1.10.2010 Репутация: нет Всего: 1 |
всё таки пробелы нужны. Для того чтобы использовать символьные пременные, строки.
|
|||
|
||||
| fuckingniger |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 1.10.2010 Репутация: нет Всего: 1 |
объясните пожалуйста, в чем у меня ошибка и почему он не воспринимает
как
|
||||
|
|||||
| xvr |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Дайте bison'у ключик -v, при компиляции того, что получилось укажите дефайн YYDEBUG (в 1) и в где нибудь тексте
|
||||||
|
|||||||
| fuckingniger |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 1.10.2010 Репутация: нет Всего: 1 |
||||
|
||||
| fuckingniger |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 1.10.2010 Репутация: нет Всего: 1 |
|
|||
|
||||
| xvr |
|
||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Найдите, где у вас запускается bison и в командную строку добавьте -v
|
||||||||
|
|||||||||
| fuckingniger |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 1.10.2010 Репутация: нет Всего: 1 |
я делал с параметрами -d -o
в результате создавалось 2 файлика .cpp и .cpp.h и содержание .cpp.h очень-очень напоминает (даже полностью -v.h), клторый сделан был по вашему совету. написал
и ошибки пропали. только не понимаю как это мне поможет . Добавлено через 7 минут и 3 секунды Добавлено через 7 минут и 27 секунд ??? |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
||||
|
||||
| fuckingniger |
|
||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 1.10.2010 Репутация: нет Всего: 1 |
я с проектами напутал. на самом деле
в main.cpp написал
Добавлено через 4 минуты и 58 секунд не помогло
|
||||||||
|
|||||||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
без инициализации вы объявляете, а не определяете переменную |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |