Описание тега marpa

Marpa - это новый алгоритм синтаксического анализа с многолетним наследием. Его происхождение начинается с алгоритма, изобретенного Джеем Эрли. Марпа является первым алгоритмом, который объединяет улучшения алгоритма Эрли, сделанные Джупом Лео, с обнаруженными Джоном Эйкоком и Р. Найджелом Хорспулом. "Ситуационная осведомленность" Марпы и разбор Ruby Slippers - это новая функция.
1 ответ

Внутренние изменения состояния после блока try{}

Я работаю с Marpa::R2 и пытаюсь отловить ошибки, используя Try:: Tiny. Я озадачен, потому что, когда я помещаю код разбора в try блок, результат value метод undef, Вот мой код: use strict; use warnings; use Marpa::R2; use Data::Dumper; use Try::Tiny…
19 июн '13 в 20:49
1 ответ

Соответствующие произвольные разделители

У меня был хороший успех при разборе сложных и глупых текстовых форматов с Марпой раньше, и я пытаюсь сделать это снова. Этот конкретный формат имеет сотни и сотни различных типов блоков "Начало" и "Конец", которые выглядят так: Begin BlahBlah asdf …
11 фев '16 в 16:04
1 ответ

Регистронезависимое сопоставление в Marpa

Связанный с моим предыдущим вопросом о регистрозависимом сопоставлении ключевых слов с использованием регулярных выражений. Можно ли сопоставлять строки без учета регистра в Marpa? Если так, то как? Предположим, у меня есть грамматика :start ::= scr…
08 июл '13 в 15:55
2 ответа

Можно ли использовать Perl Marpa Parser для публичного сетевого сервера?

Документация анализатора Perl Marpa содержит следующий раздел о испорченных данных: Marpa:: R2 существует, чтобы его входные данные могли гибко и эффективно изменять выполнение. Марпа не должен использоваться с ненадежным вводом. В Perl 's taint mod…
10 ноя '15 в 12:46
2 ответа

Разобрать строку в двойных кавычках, используя perl MARPA:: R2

Я реализую парсер с помощью MARPA::R2. у меня есть G1 rule лайк: PARAM ::= STRING | REGEX_STRING а также L0 rule лайк: STRING ~ [^ \/\(\),&:\"~]+ -----> works fine REGEX_STRING ~ [\"([^:]*?)\"] -----> doesn't work С помощью REGEX_STRINGЯ п…
20 мар '18 в 23:58
1 ответ

Форсирование пробелов между словами в грамматике Марпы

Я пытаюсь настроить грамматику, которая требует, чтобы [\w] символы не могут появляться непосредственно рядом друг с другом, если они не находятся в одной лексеме. То есть слова должны быть отделены друг от друга пробелом или пунктуацией. Рассмотрим…
08 сен '13 в 23:21
2 ответа

Как сделать правила последовательности Марпы жадными?

Я работаю над Marpa::R2 грамматика, которая группирует элементы в тексте. Каждая группа может содержать только элементы определенного вида, но без явного разделения. Это вызывает проблемы, потому что x...x (где . представляет элемент, который может …
31 авг '14 в 15:05
1 ответ

Автоматическое обнаружение / синтаксический анализ таблиц в Python

Я должен проанализировать большую часть вывода CLI UNIX, в большинстве случаев вывод представляет собой таблицу, но они всегда различаются по количеству столбцов / формату... и т. Д., Я должен продолжать изменять свой код синтаксического анализа для…
13 авг '15 в 20:03
1 ответ

Какие аргументы передаются в действие Marpa::R2?

На странице cpan в Marpa :: R2 я понимаю BNF (форму Бэкуса-Наура), но я совершенно потерян с обратными вызовами действий. В этом примере ниже я понимаю, что два, левый и правый члены передаются do_multiply, У меня нет проблем с этим. Проблема в том,…
03 июл '15 в 06:31
1 ответ

Как определить и извлечь простые вложенные токены с помощью лексера BNF?

Я понятия не имею, как получить документацию об этом. Я только что обнаружил, что большинство компиляторов используют форму Бэкуса-Наура для описания языка. От Marpa::R2 Пакет Perl, получите этот простой пример, который разбирает арифметические стро…
30 июн '15 в 11:24
2 ответа

Отменить и пропустить неструктурированный текст с Perl Marpa?

Я использую Marpa::R2::Scanless::G для анализа устаревшего формата текстового файла. Формат файла имеет хорошо структурированный раздел вверху, за которым следует плохо структурированный беспорядок текста и uuencoded вещи. Последние вещи можно полно…
12 сен '14 в 04:33
1 ответ

Неправильный токенизация с Marpa

У меня довольно большая грамматика Марпы (для разбора XPath), и я столкнулся с проблемой с токенизацией. Я создал минимальный пример взлома ниже: use strict; use warnings; use Marpa::R2; my $grammar = Marpa::R2::Scanless::G->new( { source => \…
20 июн '13 в 00:51
2 ответа

Как выполнить итерацию "вдоль" леса разбора Marpa, а не "через" его деревья разбора?

Скажем, у меня хорошая двусмысленная грамматика Марпы и хорошая двусмысленная входная строка. Я могу разобрать строку с Марпой и в итоге разобрать лес. Я даже могу перебирать каждое дерево разбора в лесу. Но как я могу выполнить итерацию "вдоль" лес…
2 ответа

Как разобрать / идентифицировать строку в двойных кавычках из большого выражения, используя MARPA:R2 perl

Проблема в разборе / идентификации строки в двойных кавычках из большого выражения. use strict; use Marpa::R2; use Data::Dumper; my $grammar = Marpa::R2::Scanless::G->new({ default_action => '[values]', source => \(<<'END_OF_SOURCE'),…
22 мар '18 в 00:02
1 ответ

Краткий способ составить список длины 0+ в грамматике Марпы?

Я новичок в Марпа. Я попробовал несколько способов описать список из 0 или более терминов в моей грамматике, и я хочу избежать нескольких деревьев разбора. В моем языке будет ровно 1 компонент, а затем 0+ подкомпонентов: package => component-rule…
30 июл '13 в 22:09
1 ответ

Marpa::R2 теряет память

Я использую последнюю версию marpa::r2 (Marpa-R2-2.065_002), и она, кажется, очень быстро съедает всю память. Я написал ниже сценарий, чтобы проверить это. use strict; use warnings FATAL => 'all'; use Marpa::R2; use Data::Dumper; my $grammar = Ma…
28 июл '13 в 20:48
1 ответ

Поддерживает ли библиотека анализатора Marpa исправление ошибок?

Я знаю, что в парлере Perl "Marpa" Earley есть очень хорошие сообщения об ошибках. Но я не могу найти в его документации или через Google, есть ли у него восстановление после ошибок. Например, большинство компиляторов C/C++ имеют исправление ошибок,…
06 сен '14 в 07:55
1 ответ

Проблема разделения правил G0 и G1 в грамматике

Я пытаюсь получить то, что похоже на основную грамматику Марпы. Код, который я использую ниже: use strict; use warnings; use Marpa::R2; use Data::Dumper; my $grammar = Marpa::R2::Scanless::G->new( { source => \(<<'END_OF_SOURCE'), :start…
17 июн '13 в 20:56
2 ответа

Марпа: Могу ли я явно запретить ключевые слова как идентификаторы?

Я внедряю новый DSL в Marpa и (из Regexp::Grammars) я более чем доволен. Мой язык поддерживает несколько унарных и двоичных операторов, объекты с идентификаторами в стиле C и вызовы методов с использованием знакомых точечных обозначений. Например: f…
24 ноя '14 в 16:47
3 ответа

Разобрать строку в одинарных кавычках, используя Marpa:r2 perl

Как разобрать строку в одинарных кавычках, используя Marpa:r2? В приведенном ниже коде строки в одинарных кавычках добавляются при синтаксическом анализе. Код: use strict; use Marpa::R2; use Data::Dumper; my $grammar = Marpa::R2::Scanless::G->new…
30 апр '18 в 21:38