0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 25
|
|
1 | |
Грамматика22.04.2013, 01:53. Показов 1113. Ответов 1
Метки нет (Все метки)
Здравствуйте. Помогите, пожалуйста, составить грамматику для языка логических выражений. Выражения языка состоят из переменных, констант, операций AND, OR, NOT, а также отношений (отношения определены только для чисел и переменных). Например: a AND (b<10). Я написал генератор SLR-анализаторов, но никак не могу составить адекватную грамматику (для примеров из книжки работает). Сижу вот боюсь, что вдруг для этого языка нельзя построить SLR-грамматику...
Добавлено через 54 минуты Эта грамматика порождает логические операции со скобками, над переменными и константами булевского типа. Символ V здесь обозначает как раз переменную, рассматривается как терминальный символ, так как я сначала токенизирую строку. Код
E->e e->e|t e->t t->t&f t->f f->(e) f->!f f->0 f->1 f->v
0
|
22.04.2013, 01:53 | |
Ответы с готовыми решениями:
1
КС-грамматика Однозначная грамматика без правой и левой рекурсии Формальная грамматика Грамматика в программировании |
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 25
|
|
24.04.2013, 10:30 [ТС] | 2 |
Вообщем, для будущих соискателей. Решил проблему на этапе лексического анализа, а именно предварительно транслировал все сравнения в переменные.
Если вы не хотите пользоваться таким костылём как я, то скорее всего вам придётся модернизировать ваш анализатор, чтобы он предпросматривал не 1 символ (токен) входной последовательности, как мой, а два или больше. Это нужно для корректного распознавания сравнений, ведь если мы видим на входе переменную, для однозначного определения соответствующей продукции нужно знать, в каком контексте переменная употреблена, т.е. является ли она операндом сравнения либо логической операции.
0
|
24.04.2013, 10:30 | |
24.04.2013, 10:30 | |
Помогаю со студенческими работами здесь
2
Чем отличается однозначная грамматика от неоднозначной? LR(1)-грамматика Грамматика Недоделанная грамматика Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |