Описание тега petitparser
PetitParser - это среда синтаксического анализа для Smalltalk, Java и Dart.
1
ответ
Как сопоставить `\b` в регулярных выражениях в PetitParserDart?
\b такое "мировая граница" в регулярном выражении, как сопоставить ее с PetitParserDart? Я старался: pattern("\b") & word().plus() & pattern("\b") Но это ничего не соответствует. Паттен выше я хочу это \b\w+\b в регулярном выражении. Моя нас…
02 июл '13 в 14:21
1
ответ
Самореферентные PPCompositeParsers PetitParser
У меня есть грамматика языка программирования, которую я хотел бы разбить на несколько подклассов PPCompositeParser (например, один класс будет обрабатывать инструкции, другой класс будет обрабатывать выражения, другой класс с обработкой структуры п…
13 мар '13 в 16:05
3
ответа
@ переопределение кода дротика
Я заметил, что PetitParserDart имеет много @override в коде, но я не знаю, как они проверяются? Я попробовал IDEA dart-plugin для @override, но это никак не влияет. Как мы можем использовать @override с дартсом?
09 июл '13 в 14:00
2
ответа
Определение левоассоциативного парсера с помощью PetitParser
В http://pharobooks.gforge.inria.fr/PharoByExampleTwo-Eng/latest/ определяется ExpressionGrammar. Тем не менее, это право ассоциативно parser parse: '1 + 2 + 6'. ======> #(1 $+ #(2 $+ 6)) Как я могу сделать его левоассоциативным, чтобы parser par…
28 янв '13 в 13:33
1
ответ
Как выполнить сбой и генерировать исключения, когда правило не может быть полностью сопоставлено в PetitParserDart?
Я определил некоторые правила с PetitParserDart: def("start", ref("rule").separatedBy(char('\n'), includeSeparators: false); def("rule", char('(').seq(word().plus()).seq(char(')'))); Таким образом, следующий текст будет соответствовать: (aaa) (bbbbb…
11 июл '13 в 02:59
1
ответ
Лучшее решение для "Делать что-то, когда анализ не удается"?
Я не могу что-то сделать, когда парсер не работает, в petitparser. Мое решение: var parser = string("hello").or( epsilon().map((_) { // do something }).seq(failure()) ); Я хочу знать, есть ли лучшее решение?
23 фев '14 в 15:01
1
ответ
Как создать анализатор, который является пробелом, но не разделителем строк, в PetitParser?
Есть встроенный whitespace() парсер в PetitParserDart, который проверяет символ в: (9 <= value && value <= 13) || (value == 32) || (value == 160) || (value == 5760) || (value == 6158) || (8192 <= value && value <= 8202) |…
28 июн '13 в 14:22
1
ответ
Запретить токен для разбора лишних пробелов
Теперь идея такова: в Java для octalIntegerLiteral У меня есть правило octalNumeral, (integerTypeSuffix optional) Но я хочу получить числа в качестве токена, поэтому я использовал: octalNumeral javaToken, (integerTypeSuffix optional) Проблема в том,…
20 мар '13 в 13:32
2
ответа
Как определить переменные Паскаля в PetitParser
Вот (упрощенный) раздел EBNF, который я пытаюсь реализовать в PetitParser: variable :: component / identifier component :: indexed / field indexed :: variable , $[ , blah , $] field :: variable , $. , identifier Что я сделал, чтобы добавить все эти …
15 янв '19 в 22:43
1
ответ
Неподдерживаемая операция: ссылки не могут быть проанализированы
static const String tabChar = '\u0009'; Parser tab() => ref(token, tabChar); expect(tab().accept(tabChar), isTrue); с token метод из https://github.com/petitparser/dart-petitparser/blob/master/example/dart/src/grammar.dart (по умолчанию trim анал…
29 янв '18 в 11:39
1
ответ
Парсинг комментариев с PetitParser в Pharo
Есть ли более простой способ разбора однострочных комментариев, чем этот? comment ^ '//' asParser , (#any asParser starLazy: (#newline asParser)) , #newline asParser ==> [ :result | nil "Ignore comments" ] program ^ (comment / instruction) star =…
12 фев '13 в 12:40
1
ответ
Пользовательские переменные экземпляра и инициализация с PetitParser
Насколько я знаю, PetitParser инициализирует каждую переменную экземпляра производственным методом с тем же именем. Что нужно сделать, чтобы добавить пользовательскую переменную экземпляра и инициализировать ее в initialize метод например?
22 мар '13 в 13:43
1
ответ
Как использовать petitparser для написания JSON форматера?
Насколько я знаю, PetitParser - это парсер, с помощью которого мы можем определять грамматики и действия для разбора некоторого текста. Я успешно использую его встроенный анализатор JSON для анализа какой-либо строки JSON, но я хочу сделать больше. …
21 июн '13 в 16:31
1
ответ
Как бы я создал парсер, который потребляет символ, который также находится в начале и в конце
Как бы я создал парсер, который позволяет символу, который также совпадает с символом начала / конца. Используя следующий пример: 'Isn't it hot' Вторая одинарная кавычка должна приниматься как часть содержимого, которое находится между начальной и к…
23 ноя '16 в 20:59
1
ответ
Есть ли математический парсер для petitparser?
Есть ли дротик lib, который может анализировать математические строки, такие как (3+4)/4.5? Я пытался создать базовый парсер с помощью petitparser, но я сейчас нахожусь над ним, и это просто метод проб и ошибок:) Есть ли где-нибудь реализация petitp…
20 сен '13 в 19:32
1
ответ
Как правило разбора PetitParser может сигнализировать об ошибке?
Я хочу правило разбора, которое распознает только числа от 0 до 32767. Я пробовал что-то вроде: integerConstant ^ (#digit asParser min: 1 max: 5) flatten ==> [ :string | | value | value := string asNumber. (value between: 0 and: 32767) ifTrue: [ …
12 мар '13 в 20:20
1
ответ
Почему *any* не возвращается в этом примере?
Я пытаюсь понять, почему в следующем примере я не получаю совпадение на f2. Сравните это с f1, который успешно, как и ожидалось. импорт 'package: petitparser / petitparser.dart'; импорт 'package: petitparser / debug.dart'; main() { showIt(p, s, [tag…
23 авг '15 в 12:40
1
ответ
Как просто обрезать влево или вправо в PetitParserDart
E сть trim() метод, который создаст парсер для обрезки строки с обеих сторон. Как создать тот, который просто обрезает влево или вправо?
02 июл '13 в 16:10
4
ответа
Поиск токенов в строке Smalltalk с помощью PetitParser
Я хочу разобрать 'This,is,an,example,text' как в findTokens 'This,is,an,example,text' findTokens: $, an OrderedCollection('This' 'is' 'an' 'example' 'text') но не могу понять, как это сделать с PetitParser, delimitedBy: и separaBy: мне не помогло, я…
18 окт '11 в 07:15
1
ответ
Как использовать debug() с парсером undefined()
Я пытаюсь отладить undefined парсер в петитпарсер. Смотрите код без debug первый: import "package:petitparser/petitparser.dart"; main() { var mynum = undefined(); var parser = string("abc").map((s) { mynum.set(string("888")); return s; }) & mynu…
22 фев '14 в 07:14