BNF расшифровывается как "Форма Бэкуса-Наура" или "Нормальная форма Бэкуса". Это форма записи для контекстно-свободных грамматик, которая часто используется (но не ограничивается) для описания синтаксиса языков программирования. Помимо языков программирования, он также используется для описания протоколов связи и форматов документов.
1 ответ

Грако покинул рекурсию

Я пытаюсь использовать грако для описания простой леворекурсивной грамматики, но у меня проблемы с этим. Правая рекурсия работает без проблем: symbol = /[a-z]/ ; condition = symbol "AND" condition | symbol ; start = condition $ ; Согласно всем найде…
21 дек '16 в 11:15
4 ответа

Синтаксис грамматики и лингвистика

Мне ДЕЙСТВИТЕЛЬНО нужно описание структуры английского предложения таким образом, чтобы ее можно было перевести машиной, и она строго основана на правилах (без статистических данных), она не должна быть грамматикой без контекста, но это было бы пред…
31 дек '09 в 11:40
0 ответов

Как правильно использовать группы EBNF в Jison

Я пытаюсь выяснить, как справиться с ситуацией, возникающей при использовании расширения EBNF в Jison (Jison по умолчанию поддерживает только BNF - вы можете активировать эту опцию по мере необходимости). Я пытаюсь написать простой парсер XML. В XML…
09 дек '13 в 19:41
0 ответов

Будет ли анализатор знать, содержит ли входная строка неполный синтаксис?

Предположим, у нас есть следующий синтаксис BNF для входной строки: <Directory> ::= <file><blank> <file> ::= <alpha><alphanumeric {0..8}> <blank> ::= 'b' и я хочу проверить следующее условие: файл не имеет а…
08 окт '17 в 17:51
2 ответа

Несжатая, минимальная грамматика для языка программирования C

Языки программирования определяются с помощью грамматики, например, Java определяется в JLS, см. Здесь Это минимальная "сжатая" грамматика, ни одна конструкция не используется дважды: результат - для меня - бесполезные грамматические описания, такие…
11 ноя '10 в 10:45
2 ответа

Возможно ли иметь программу Java в Eclipse для компиляции других языков, кроме Java?

В настоящее время я работаю над проектом, который должен скомпилировать файлы и дать диагностику найденных ошибок (синтаксис). Я был в состоянии заставить программу работать для файлов.java. Теперь я должен сделать то же самое для файлов, отличных о…
01 фев '13 в 09:31
1 ответ

Как описать условное утверждение (if-then-else) с помощью PEG

Я работаю над анализатором файлов проекта Qmake (проект с открытым исходным кодом). И у меня возникли проблемы с описанием варианта условного оператора qmake, называемого "областью действия" в документации. EBNF (упрощенно): ScopeStatement -> Con…
25 июн '17 в 18:27
0 ответов

Python цепочечная нотация грамматики

Было высказано предположение, что в цепочке присваивания, как a=b=4, a а также b два отдельных target_list s. Я пытаюсь согласовать это с грамматической нотацией BNF для общего оператора присваивания, который assignment_stmt ::= (target_list "=")+ (…
14 янв '19 в 09:57
1 ответ

Многозначные числа разделяются пробелами в NuGram?

Я вижу неожиданное поведение в плагине NuGram IDE Eclipse для разработки грамматики ABNF. Скажем, у меня есть правило, которое гласит: $fifties = 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 ; Генератор предложений находит совпадения 5 0, 5 1, 5 …
06 авг '12 в 23:51
2 ответа

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

Есть хороший способ сделать на Python: Проверка строки соответствует набору регулярных выражений Если да, верните соответствующие части в виде кортежей. По сути, я хочу простой способ ввести простые грамматики синтаксического анализатора / сканера и…
1 ответ

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

Я использую библиотеку OpenFST и хотел бы разработать преобразователи конечного состояния (FST) на более высоком уровне, описывая грамматику с помощью формы Бэкуса-Наура (BNF). Кто-нибудь был в состоянии скомпилировать грамматики BNF в OpenFST-потре…
0 ответов

Как разобрать Dot BNF с Eto.Parse?

Скажем, у нас есть такой файл.bnf, который описывает язык Dot (Graphviz). Мы можем попытаться проанализировать простой граф с помощью Eto следующим образом: // https://github.com/picoe/Eto.Parse // https://github.com/awalterschulze/gographviz/blob/m…
06 окт '17 в 02:40
3 ответа

Полная грамматика БНФ для HL7 2.5

Все, что мне было интересно, если бы кто-нибудь имел полный BNF для HL7 2.5? Я рассчитываю скомпилировать это с использованием механизма парсера золота, но был бы рад конвертировать из EBNF или конкретного поставщика BNF.
31 авг '10 в 20:54
4 ответа

Java: калькулятор, BNF, AST сложение и вычитание

Я пытаюсь написать метод, который делает сложение и вычитание используя indexOf(), lastIndexOf() например, строка s = "3 + 3" Я хочу разбить эту строку на две подстроки, затем выполнить определенную операцию. // for addition String s = "3 + 3"; int …
04 дек '12 в 10:00
1 ответ

Что такое форма Бэкуса-Наура?

Мне интересно, есть ли у Cypher (язык запросов Neo4j) форма Бэкуса-Наура. Если так, где я могу найти это? Если это не так, вы могли бы угадать один?
28 июл '15 в 18:58
1 ответ

Преобразование правил грамматики BNF в реальные функции / код C++

Я пытаюсь создать парсер рекурсивного спуска. Пока у меня есть все основы, мне просто нужно правильно реализовать несколько функций для применения грамматики. Я думал, что все было правильно, это выглядит, но я думаю, мой Aop, Expr, или же Term Функ…
13 апр '16 в 01:15
2 ответа

(E) Разбор BNF в XML

Существует ли какой-либо (E)BNF-парсер, способный генерировать XML-деревья AST? Перефразируя: какой самый быстрый способ скомпилировать (E)BNF-определенный язык в своего рода XML? Бонус: использование Javascript:-)
26 сен '09 в 14:03
1 ответ

Считается ли EBNF языком программирования

Я в замешательстве, можно ли считать EBNF языком программирования, который завершен?
15 ноя '15 в 09:46
3 ответа

Как использовать символы и списки в схеме для обработки данных?

Я новичок в схеме, и я нахожусь в процессе написания функции, которая проверяет парное разделение правил (пока что оно неполное), я использовал символы и списки для представления правил грамматики. Символ в верхнем регистре не является терминалом в …
11 май '15 в 10:56
1 ответ

Вызов функции без присвоения возвращаемого значения на основе синтаксической диаграммы

Из "Программирования в PASCAL" Питера Грогоно, Addison Wesley 1980, утверждение определяется как: На этой диаграмме я не вижу, как я могу вызвать функцию как оператор; единственный способ вызвать его - создать новую временную переменную, а затем при…
28 май '17 в 04:12