Вопросы по теме 'peg'
Для чего используется многоточие (пустая строка) в грамматике Treetop (PEG)?
веб-сайт Treetop дает следующее объяснение, которое я не понимаю
Многоточие Пустая строка соответствует любой позиции и не требует ввода. Это полезно, когда вы хотите рассматривать один символ как часть последовательности, например, когда...
137 просмотров
schedule
02.06.2024
Разбор зарезервированного слова в Parsing Expressive Grammar (PEG.js)
похожий вопрос и веб-сайт автора дает мне такие решения:
Identifier "identifier"
= !ReservedWord [A-Za-z_]+
ReservedWord
= "test"
/ "abc"
Это решение не может анализировать такой идентификатор, как этот...
676 просмотров
schedule
30.08.2022
Как я могу избежать левой рекурсии в вершине дерева без возврата?
У меня возникли проблемы с тем, чтобы избежать левой рекурсии в этом простом синтаксическом анализаторе выражений, над которым я работаю. По сути, я хочу разобрать уравнение «f x y» на два выражения «f x» и «(f x) y» (с неявными скобками). Как я...
279 просмотров
schedule
24.06.2023
Как преобразовать простую грамматику во что-то, что работает в PEG.js (ожидалось, но найдено)
Я только начал играть с PEG.js и у меня возникла проблема с грамматикой (значительно упрощенной для отладки):
start
= presingle single
/ preplural plural
presingle
= "a"
/ "b"
preplural
= "b"
/ "c"
single
= "d"
/ "e"
plural
=...
522 просмотров
schedule
21.07.2022
Почему эта грамматика привязки не распознает 42?
Использование грамматики
start
= b
/ a
a
= "4" "2"
b
= "4"
с peg.js распознает 4, но не 42, и в этом случае ошибка
«Строка 1, столбец 2: ожидается конец ввода, но найдено «2».
сообщается. Очевидно, синтаксический анализатор...
147 просмотров
schedule
24.01.2023
peg/leg — любопытное поведение спецификации PEG при разборе выражений
Недавно я узнал о грамматиках синтаксического анализа выражений. Прочитав некоторые материалы по нему путем поиска в сети, я, наконец, сел запачкать руки. Я подумал о реализации программы hoc из The Unix Programming Environment Кернигана и Пайка с...
223 просмотров
schedule
18.07.2022
Можно ли использовать несколько парсеров и сохранить номера строк?
Месяц назад я задал полусвязанный вопрос: в несколько проходов, общих для грамматик PEG? Я пытался выяснить, является ли хорошей идеей написать несколько грамматик, чтобы постепенно анализировать ввод некоторого текста в проходах. Для моего...
64 просмотров
schedule
24.12.2022
Парсер/интерпретатор строки управления доступом (ACS) с PEG.js
Предисловие
Я работаю над созданием строки A доступа C управления S строкой (или S системой) (ACS) Парсер/интерпретатор с PEG.js. Строки ACS обычно используются в системах досок объявлений (BBS) для проверки прав доступа к определенным...
296 просмотров
schedule
27.05.2023
Почему сгенерированный парсер работает так медленно?
Я играл с PEG.js , пытаясь создать парсер, способный взять строку и создать объект.
Например, возьмите строку «a&b» и создайте:
{type:"operator",value:operator, children:[a, b]}
Однако я достиг стадии, когда возврат результата может...
174 просмотров
schedule
30.06.2022
Сопоставление выражения ИЛИ с использованием Grappa (Java PEG Parser)
Я новичок в синтаксическом анализе PEG и пытаюсь написать простой синтаксический анализатор для анализа выражения типа: «term1 OR term2 Anotherterm», в идеале в AST, который будет выглядеть примерно так:
OR
-----------|---------
|...
371 просмотров
schedule
22.08.2023
Указание количества в PEG.js
Я играю с PEG.js
Как я могу разрешить вводить ровно 2 буквы?
Это мой подход:
start = word
word = [A-Za-z]{2}
Я использовал {2} из регулярного выражения, но, к сожалению, он не работает с PEG.js.
106 просмотров
schedule
03.09.2023
Элемент двух операторов взаимно ссылается с peg.js
определите блок следующим образом
compound_stat
= '{' decl exp_stat '}'
exp_stat
= exp ';'
decl
= decl_specs id ';'
decl_specs
= 'int'/'float'
id
=name:[a-z]+ {return name.join("");}
exp_stat
= left:multiplicative "+" right:exp_stat {...
53 просмотров
schedule
02.09.2022
Как грамматика из RFC 2396 (об URI) может быть выражена в PEG?
Я пытаюсь придумать грамматику PEG, которая будет анализировать имя хоста в соответствии со следующим BNF: RFC 2396
hostname = *( domainlabel "." ) toplabel [ "." ]
domainlabel = alphanum | alphanum *( alphanum | "-" ) alphanum...
153 просмотров
schedule
06.03.2023
Почему процесс синтаксического анализа Grako завершается сбоем, если моя грамматика содержит выражение, состоящее из множества соединенных по ИЛИ подвыражений?
Я использую Грако. В моей грамматике EBNF у меня есть выражение, состоящее из множества подвыражений, объединенных с помощью оператора ИЛИ, например:
expression = subexpressionA | subexpressionB | ... | subexpressionZ;
Процесс...
89 просмотров
schedule
18.02.2023
Как открывать файлы с помощью Peg.js?
Как я могу прочитать файл на моем языке?
Я пытаюсь понять, как работают языки. Я хотел бы знать, как создать простую грамматику для чтения файлов с помощью Peg.js . В Python это примерно так
f= open("testfile.txt","w+")
Пример...
103 просмотров
schedule
27.08.2023
Сложность написания грамматики рекурсивных выражений PEG с арпеджио
Мой входной текст может иметь простое утверждение, подобное этому:
aircraft
На своем языке я называю это имя , которое представляет собой набор экземпляров с различными свойствами. Это дает instance_set всех экземпляров самолетов в этом...
27 просмотров
schedule
23.06.2022