Описание тега dangling-else

1 ответ

Висячие еще в Котлине

У меня есть это сомнение, ребята, я не знаю; любой пример, чтобы понять, будет здорово. Страдает ли язык программирования Kotlin от проблемы "висящего другого"? Если проблема есть, то какова причина в этом случае?
03 дек '17 в 01:17
1 ответ

LL(1) грамматика для болтаться еще

В построении компилятора одна из главных проблем неоднозначности - еще одна проблема. Как уже упоминалось в книге "Компиляторы: принципы, методы и инструменты" Ахо, Лама, Сетхи и Уллмана, грамматика оборванного остального не может использоваться с а…
13 апр '12 в 23:19
1 ответ

Если оператор для представления дерева в ANTLR

У меня есть следующее выражение if, которое правильно анализирует: ifStatement : 'IF' expression 'THEN' statementBlock (options {greedy=true;} : 'ELSE' statementBlock)? ; Теперь я хочу разобрать это в AST. Вот как я это сделал: ifStatement : 'IF'^ e…
27 мар '11 в 22:21
2 ответа

Устранение неопределенности, вызванной висящим остальным для грамматик LL(1)

В случае с висячей остальной проблемой при проектировании компилятора, есть ли причина оставить это перед тем, как устранить неоднозначность? Мы преобразовываем CFG в грамматику LL(1), поэтому мой профессор просит нас сначала исключить рекурсию, зат…
0 ответов

Повисшая еще грамматика для Лекса и Яка

Я пишу небольшой синтаксический анализатор для распознавания подмножества Java, и я столкнулся с проблемой, которая, как мне кажется, называется "болтающаяся проблема". Моя грамматика для сопоставления операторов if-else началась примерно так: state…
14 апр '16 в 03:45
1 ответ

Как решить еще болтаться в Coco/R?

У меня в Коко / Р есть еще одна проблема. Я пытаюсь понять Руководство пользователя Coco/R и спрашиваю у Google, но не могу решить проблему самостоятельно. Я упростил мою задачу до следующей грамматики Коко / R (сохранена в new4.atg): COMPILER Expr …
12 сен '16 в 14:49
0 ответов

LL1 и однозначная грамматика для болтания

Я пытаюсь написать простой компилятор, использующий Flex для сканера и специальный инструмент PGen для определения грамматики. Теперь я пытаюсь разгадать однозначную грамматику для других. Я искал это. Это грамматика с еще одной проблемой: S → if E …
2 ответа

Повисший запрос (или упражнение по чтению неверного кода)

В книге, которую я читаю (C Как программировать с использованием C++ Global Edition, Deitel&Dietel;, 2016), приведен следующий код: Обратите внимание, что именно так книга представляет код в разделе упражнений, без использования фигурных скобок и от…
05 янв '18 в 16:09
1 ответ

Решение зависших if, elsif и else в Bison без объявлений ассоциативности

Я реализую синтаксический анализатор для языка, который имеет операторы if-elsif-else и не может сделать мою грамматику однозначной. Нашему классу компиляторов был предоставлен раздаточный материал по решению проблемы зависшего else для операторов i…
1 ответ

Bison Flex уменьшает / уменьшает конфликты при свисании еще с помощью среднего действия

В настоящее время я перемещаю свой забавный проект на bison/flex в качестве парсера, и у меня возникли проблемы с решением конфликта уменьшения / уменьшения: // https://github.com/X39/yaoosl/blob/master/code-gen/yaoosl.y#L761-L766 ifthen: YST_IF YST…
23 апр '20 в 21:13
1 ответ

Генератор синтаксического анализатора Beaver конфликты сдвига-уменьшения, связанные с зависанием else

Я загружаю (сгенерированную) грамматику в генератор парсера Beaver. Множественные конфликты shift-reduce вызваны, кажется, проблемой висящих else в этих правилах: Condition = IF LPAR Expression.expression RPAR Statement.trueStatement OptionalStateme…
1 ответ

Что на самом деле является проблемой висячего-другого в c?

Как может код работать так? Какие операторы if-else связаны друг с другом? Так почему же результат такой "$$$$$"? #include <stdio.h> int main() { int x = 11; int y = 9; if(x<10) if(y>10) puts("*****"); else puts("#####"); puts("$$$$$"); …
07 дек '19 в 23:35
0 ответов

Удаление сложного болтающегося зубра зубра

Я пытаюсь избавиться от лишнего в моей грамматике. Терминалы - это слова с заглавной буквы. У меня есть: statement: expression_statement (not important now ) | compound_statement (not important now ) | selection_statement | iteration_statement (not …
11 ноя '21 в 20:35
1 ответ

Как последний ANTLR4 разрешает двусмысленность "висящего остального"?

Я использую antlr 'org.antlr:antlr4:4.9.2'и натолкнулись на проблему двусмысленности "висящее остальное"; см. следующую грамматику IfStat.g4. // file: IfStat.g4 grammar IfStat; stat : 'if' expr 'then' stat | 'if' expr 'then' stat 'else' stat | expr …
3 ответа

Фигурные скобки (область действия) связаны с неожиданным выводом цикла if-elseif в C++

Я использовал обычную лестницу для обновления некоторых переменных в зависимости от условий. Условие может быть либоa,bилиc. Вот почему я использую лестницу. Но когда я используюif-elseifлестницу без фигурных скобок, я не получаю требуемого результа…
08 май '23 в 20:16