Описание тега shift-reduce-conflict

Shift Reduce - это парадигма парсера LR. Конфликт сдвига / уменьшения возникает при неоднозначности анализируемой грамматики.
1 ответ

Как решить бизон уменьшить / уменьшить конфликт в моем коде?

Я новичок в бизоне... Я написал грамматическое правило для оператора if, else if и else... Я получил уменьшить конфликт, хотя... Кто-нибудь может помочь? Я перепробовал все, что нашел, но, как я уже сказал, я новичок, и я точно не понимаю, что проис…
2 ответа

Решение уменьшить / уменьшить конфликты

У нас есть грамматика CFG, и мы строим таблицу разбора LR(1). Мы видим, что в одной ячейке таблицы синтаксического анализа есть конфликт "уменьшить - уменьшить". Можно ли решить этот конфликт, используя больше входных символов прогнозирования на каж…
1 ответ

Сдвиг / уменьшение конфликта несмотря на правила приоритета

Язык, для которого я пишу парсер, имеет три соответствующие конструкции: ord оператор, представленный TOK_ORD, который преобразует символьные выражения в целочисленные выражения, и [ ] а также ., которые используются для индекса и доступа к полю, со…
20 май '15 в 01:04
3 ответа

Как решить сдвиг / уменьшить конфликт?

Я использую CUP для создания парсера, который мне нужен для моей диссертации. У меня есть конфликт сдвига / уменьшения в моей грамматике. У меня есть это правило производства: command ::= IDENTIFIER | IDENTIFIER LPAREN parlist RPAREN; и у меня есть …
02 июл '10 в 17:11
0 ответов

Ирония сдвиг уменьшить проблемы

Я пытался выяснить, как исправить некоторые сдвиги, чтобы уменьшить конфликты, которые у меня есть. Я осмотрелся и нашел разные темы по ее устранению, но, кажется, что независимо от того, что я делаю, я просто не могу найти способ исправить эти проб…
1 ответ

Разрешить конфликт в грамматике бизонов с помощью разделенных пробелами списков выражений + if/then/else

У меня есть следующая грамматика yacc/bison/happy: %token if TokenIf then TokenThen else TokenElse true TokenTrue false TokenFalse %left APP %right IF %% Hungry : NoHungry | Hungry NoHungry %prec APP | if Hungry then Hungry else Hungry %prec IF NoHu…
1 ответ

Сдвиг / уменьшение конфликта с оператором if ... else

Я пытаюсь создать синтаксический анализатор для языка, похожего на Java, но с помощью оператора else возникает конфликт сдвига / уменьшения. Я пробовал бизона bison_file.y --report=state и результат о конфликте: Состояние 62 31 заявление: if_stateme…
29 авг '13 в 18:54
1 ответ

Как парсер решает сдвиг / уменьшение конфликта?

У меня есть грамматика для арифметического выражения, которая решает количество выражений (по одному на строку) в текстовом файле. При компиляции YACC я получаю сообщение 2 shift уменьшить конфликты. Но мои расчеты верны. Если парсер выдает правильн…
14 фев '17 в 19:55
1 ответ

Я пытаюсь создать синтаксический анализатор для мини-Java, где я получаю сдвиг / уменьшение конфликтов в части грамматики выражения. Я не могу разрешить этот конфликт

Это часть файла y.ouput состояние 65 15 Выражение: Выражение. Выражение "&&" 16 | Выражение "<" Выражение 17 | Выражение "+" Выражение 18 | Выражение "-" Выражение 19 | Выражение Выражение "*" 20 | Выражение "[" Выражение "]" 21 | Выражение "" "Длин…
05 сен '13 в 14:33
1 ответ

Уменьшить / уменьшить конфликт в CUP

Я реализую парсер для подмножества Java с использованием Java CUP. Грамматика похожа vardecl ::= type ID type ::= ID | INT | FLOAT | ... exp ::= ID | exp LBRACKET exp RBRACKET | ... stmt ::= ID ASSIGN exp SEMI Это отлично работает, но когда я добавл…
0 ответов

Как написать CFG для парсера Shift Reduce?

Я пытался написать CFG для использования в реализации NLTK анализатора Shift-Reduce. Для простого примера, скажем, я хочу разобрать эти два предложения: "Она любит Джона" "Джон любит ее" Грамматика была бы довольно простой - Джон может быть первым и…
26 дек '18 в 13:58
0 ответов

Как решить сдвиг-уменьшить конфликт в YACC

Я написал компилятор с-минор с yacc и теперь он говорит, что имеет 2 сдвига-уменьшения конфликта, и это показывает эти 2 строки: строка имеет переменную '-=' строка имеет переменную '+=' expression : var '=' expression |var '+=' expression |var '−='…
26 янв '19 в 07:19
1 ответ

Сдвиг / уменьшение конфликта с неоднозначной грамматикой

Я застрял с некоторой неоднозначной грамматикой на некоторое время, поскольку yacc сообщает о 6 конфликтах сдвига / уменьшения. Я посмотрел в файле y.output и попытался понять, как смотреть на состояния и выяснить, что делать, чтобы исправить неодно…
18 фев '19 в 21:16
2 ответа

Как переписать грамматику для устранения конфликта сдвига-уменьшения (в анализаторе Haskell Happy)

Я пытаюсь определить грамматику для методов (как Java) с помощью генератора парсера Happy LALR 1. MD ::= some_prefix { list(VD) list(S) } 2. VD ::= T I 3. S ::= I = E | I [ E ] = E | etc... 4. T ::= I | byte | int | etc... 5. E ::= INT | E + E | etc…
1 ответ

Зубр - сдвиг / уменьшение идентификатора конфликта

У меня есть 1 сдвиг / уменьшение конфликта в состоянии 19. Я думаю, что могут быть проблемы с разными вхождениями "идентификатора", но я изо всех сил пытаюсь понять отчет о зубрах и разрешить конфликт. Ниже моя грамматика, за которой следует отчет о…
1 ответ

Проблемы с анализатором, поиск конца параметра, сдвиг / уменьшение возникающих конфликтов

Я пытаюсь настроить свой парсер, чтобы найти конец определенного параметра, распознав, что запятой нет, поэтому я в основном настроил его, чтобы найти такой параметр, как этот параметр: конец_параметра запятая (Этот тип данных является просто списко…
13 сен '12 в 15:52
1 ответ

Сдвиг / уменьшение конфликта с аргами и кваргами - PLY

Я пишу парсер для Python-подобного языка, который позволяет передавать функции двух типов аргументов (позиционные и именованные). И, как и в Python, именованный аргумент должен передаваться после позиционного. Я написал для нее грамматику, но в ней …
25 окт '17 в 04:57
1 ответ

Как убрать сдвиг-уменьшить конфликт в грамматике yacc?

У меня есть следующая грамматика: Expression : SimpleExpression {$$ = $1;}; | SimpleExpression LTnum SimpleExpression { MkLeftC($1, $2); $$ = MkRightC($3, $2); } | SimpleExpression LEnum SimpleExpression { MkLeftC($1, $2); $$ = MkRightC($3, $2); } |…
24 мар '16 в 00:43
1 ответ

Сдвиг / уменьшение конфликтов в грамматике арифметического выражения с n-ю суммами / произведениями

Разобрать двоичные суммы / продукты легко, но у меня проблемы с определением грамматики, которая разбирает a + b * c + d + e как sum(a, prod(b, c), d, e) Моя первоначальная (наивная) попытка вызвала 61 конфликт сдвига / уменьшения. Я использую java …
18 фев '10 в 12:39
3 ответа

Как написать PLY грамматику для разбора путей?

Я пытаюсь написать грамматику с PLY, которая будет анализировать пути в файле. Я сталкиваюсь со сдвигом, уменьшающим конфликты, и я не уверен, как изменить грамматику, чтобы исправить это. Вот пример файла, который я пытаюсь разобрать. Путь / имя фа…
28 сен '15 в 03:01