Описание тега 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, а не "через" его деревья разбора?
Скажем, у меня хорошая двусмысленная грамматика Марпы и хорошая двусмысленная входная строка. Я могу разобрать строку с Марпой и в итоге разобрать лес. Я даже могу перебирать каждое дерево разбора в лесу. Но как я могу выполнить итерацию "вдоль" лес…
18 сен '14 в 02:09
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