Описание тега ambiguous-grammar

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

PEGJS предикатная грамматика

Мне нужно создать грамматику с помощью предиката. Приведенная ниже грамматика не подходит для данного случая. startRule = a:namespace DOT b:id OPEN_BRACE CLOSE_BRACE {return {"namespace": a, "name": b}} namespace = id (DOT id)* DOT = '.'; OPEN_BRACE…
30 окт '14 в 12:22
1 ответ

Устранение неоднозначности грамматики

У меня есть такие правила грамматики; S -> S and S S -> S or S S -> (S) S -> true | false -- and , or , ( , ) , true ,false are terminals -- Я могу выяснить, что эта грамматика неоднозначна, но как я могу изменить эту грамматику, чтобы р…
1 ответ

Советы по работе с неоднозначным оператором в грамматике ANTLR 4

Я пишу файл грамматики antlr для базового диалекта. Большинство из них либо работает, либо я хорошо представляю, что мне делать дальше. Однако я совсем не уверен, что мне следует делать с символом '=', который используется как для проверки на равенс…
11 окт '14 в 13:10
1 ответ

Почему эта грамматика неоднозначна?

Я использую Antlr4. Вот моя грамматика: assign : id '=' expr ; id : 'A' | 'B' | 'C' ; expr : expr '+' term | expr '-' term | term ; term : term '*' factor | term '/' factor | factor ; factor : expr '**' factor | '(' expr ')' | id ; WS : [ \t\r\n]+ -…
05 ноя '17 в 13:03
0 ответов

Неоднозначность грамматики в отношении дизайна компилятора

Всегда ли для каждой неоднозначной грамматики мы можем преобразовать ее в однозначную грамматику?
1 ответ

Я получаю ошибку левой рекурсии в моей грамматике анализатора antlr

Я получаю ошибку [fatal] rule statement has non-LL(*) decision due to recursive rule invocations reachable from alts 6,7. Resolve by left-factoring or using syntactic predicates or using backtrack=true option. Я не знаю точно, какая часть моей грамм…
1 ответ

Правило не признается

Я написал грамматику, которая должна позволять мне определять переменные и массивы. Все работало нормально, пока я не разделил переменные на локальные и глобальные переменные. Теперь мой парсер больше не распознает массивы (он говорит, что это будет…
06 авг '14 в 20:27
0 ответов

Грамматика для выражений. Четыре уровня приоритета. LL(1)

Мне нужно знать, как сделать грамматику для выражений, чтобы создать синтаксический анализатор и аст. У меня есть четыре уровня приоритета: 1. ** ! 2. * / % & 3. + - ^ | 4. <= >= < > Я сделал это: Exps -> RExp4 RExp4 -> OpEq Ex…
1 ответ

Можно ли сделать эту грамматику YACC однозначной? expr: ... | expr expr

Я пишу простой калькулятор в yacc / bison. Грамматика для выражения выглядит примерно так: expr : NUM | expr '+' expr { $$ = $1 + $3; } | expr '-' expr { $$ = $1 - $3; } | expr '*' expr { $$ = $1 * $3; } | expr '/' expr { $$ = $1 / $3; } | '+' expr …
18 окт '15 в 10:20
1 ответ

Заставить менгира найти все альтернативы?

Я хотел бы изменить поведение вывода менгира следующим образом: я хочу, чтобы он посмотрел все грамматические альтернативы, если он найдет их, и поместил их в список и вернул мне эту неоднозначную интерпретацию. Это не должно уменьшать конфликты, пр…
09 июн '16 в 10:30
0 ответов

Неоднозначная грамматика в фазе разбора

Я хочу построить компилятор на своем родном языке, я написал грамматику и закончил фазу лексера. Мой вопрос в фазе синтаксического анализа - эта часть моего грамматика EBNF Statement → Block | Assignment | CallStatement | Declaration | inputStatemen…
0 ответов

Как убрать неоднозначность в следующей грамматике?

S -> Sa | SbSa | ε Я нашел похожий вопрос, но я не понимаю: http://automatasteps.blogspot.co.id/2007/08/unambiguous-grammar.html Как я могу изменить это на однозначный? Моя строка bbaaa
1 ответ

Контекстно-бесплатная грамматика неоднозначная?

Для следующей контекстно-свободной грамматики: S --> (S) | SS | A A --> a | A,A | E (E is the empty string) Формальное определение: G=(V,T,P,S) V={A,S} T={E;a; ( ; ) ; , } S=S P: S --> (S) S --> SS S --> A A -->a A -->A,A A --&g…
21 ноя '13 в 13:00
0 ответов

Преобразование неоднозначной в однозначную грамматику для арифметических выражений

Я пытаюсь придумать не двусмысленную грамматику для арифметических выражений, чтобы ускорить синтаксический анализатор Эрли, но у меня, похоже, возникли проблемы. Это заданная неоднозначная грамматика S -> E | S,S E -> E+E | E-E | E*E | (E) | …
1 ответ

От однозначной грамматики до неоднозначной

Я не знаю, если это правильный сайт, чтобы спросить это. Но мы изучаем неясности грамматики. Включая самый левый вывод и самый правый вывод. Моя проблема с практикой заключается в следующем: E -> E * E | E + E | N N -> 0N | 1N | Output: 0110 +…
2 ответа

Удаление конфиденциальных данных из Git. "роковой: двусмысленный аргумент" гм "

Я пытаюсь запустить эту команду: git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch filename.js' --prune-empty --tag-name-filter cat -- --all но я продолжаю получать эту ошибку: fatal: ambiguous argument 'rm': unknown revisio…
28 янв '14 в 00:23
1 ответ

Если тогда еще двусмысленность в CUP

Я создаю грамматику в CUP, и я столкнулся с препятствиями при определении операторов IF-THEN-ELSE. Мой код выглядел так: start with statements; /* Top level statements */ statements ::= statement | statement SEPARATOR statements ; statement ::= if_s…
30 апр '18 в 16:38
0 ответов

Левый фактор грамматики

Так что у меня есть эта грамматика (ниже), и мне нужно построить таблицу разбора. Мне нужно сделать это подходящим для прогнозирующего парсера. Я знаю, что первая мысль состоит в том, чтобы сделать его однозначным, но для меня это уже однозначно (та…
2 ответа

Если грамматика неоднозначна, то для каждой формы предложения существует ровно один дескриптор.

Может быть два производства, из которых мы можем сделать сокращение. После предоставления приоритета и ассоциаций, как требуется, будет только один дескриптор. Так это утверждение верно?
1 ответ

Неоднозначные грамматики (BNF NOTATION)

Учитывая эту грамматику: <Program> ::= <Stmt> | <Program>; <Stmt> <Conditional> ::= If <Bool> then <Program> <Bool> ::= true | false <Stmt> ::= <Conditional> | s1 | s2 Как мне доказать, что…
26 ноя '13 в 17:42