Описание тега superpower
SuperPower - это библиотека комбинаторов парсеров, основанная на Sprache. Superpower генерирует более понятные сообщения об ошибках благодаря поддержке парсеров на основе токенов.
0
ответов
Левые рекурсивные определения (БНФ)
Я пытаюсь создать парсер ANSI C с использованием Superpower, но я много борюсь с некоторыми парсерами, особенно рекурсивными. Например, грамматика ANSI C, которую я придерживаюсь, определяет: <unary-expression> ::= <postfix-expression> |…
21 дек '18 в 11:02
0
ответов
Дерево унарных операторов
Я хочу разобрать выражения как ++ A ++ ++ A ++ ++ ++++ Оператор предварительного увеличения имеет приоритет над оператором последующего увеличения. У меня есть парсеры: public static readonly TokenListParser<LangToken, UnaryOperator> Increment…
21 дек '18 в 12:17
1
ответ
Получить строку из ключевого слова в SuperPower
Я работаю над простым языком сценариев для рабочего проекта, и мне нужно создать определение определения формы type name = value, Я следовал примеру SuperpowerSimpleSql и создал токенизатор, который корректно токенизирует входные данные. Проблема за…
19 июл '18 в 13:40
1
ответ
Парсер сверхдержав для представления вложенных строк дерева объектов
Я изо всех сил пытаюсь понять, как рекурсивный анализ работает в Superpower. Я изучил сообщения в блоге и примеры на github, но до сих пор не понимаю. Может кто-нибудь сказать мне, как из Tokenizer, который я написал, я мог восстановить AST с предло…
10 янв '19 в 14:00
0
ответов
Разбор сложной текстовой грамматики с помощью Superpower
Я пытаюсь создать парсер с Superpower. Я уже посмотрел образцы, которые я нашел в репо, но их немного сложно понять, по крайней мере, для такого начинающего, как я. Input String : GF1M1_9.00um_86bu_994x1015x1004 Tokens : FileName : GF1M1 //All char …
02 мар '19 в 11:16
1
ответ
Superpower: сопоставлять строку с токенизатором, только если она начинается строкой
Когда токенизируешь в супердержаве, как сопоставить строку, только если это первое, что есть в строке (примечание: это другой вопрос, чем этот)? Например, предположим, что у меня есть язык только с 4 следующими символами (' ', ':', 'X', 'Y'), каждый…
28 окт '18 в 07:43
1
ответ
Сверхсильный парсер для сбалансированных вложенных скобок
Я изо всех сил пытаюсь придумать парсер сверхдержавы для набора частичных входов ниже (вложенные сбалансированные скобки с разделителем '|'). Произвольный текст может входить в паренсы, включая пробелы, другие токены и "()". Только '|', '(', ')', до…
01 окт '18 в 08:17
3
ответа
Superpower: сопоставлять строку с парсером, только если она начинается строкой
Разбирая в супердержаве, как сопоставить строку, только если она является первой в строке? Например, мне нужно сопоставить двоеточие A в "A: Hello Goodbye\n", но не в "Goodbye A: Hello\n"
08 окт '18 в 16:31
2
ответа
Разбор простой текстовой грамматики с Superpower
Я пытаюсь создать парсер с Superpower. Я уже посмотрел образцы, которые я нашел в репо, но их немного сложно понять, по крайней мере, для такого начинающего, как я:) Так что я пришел с этим небольшим испытанием. Я изобрел очень простую грамматику, ч…
10 дек '17 в 16:37
0
ответов
Superpower разбор списка строк с разделителями
У меня проблема с анализом списка строк: syntax: "stringlist intersects ('string1','string2')" Это токенизировано для: Token.Identifier, Token.Intersects, Token.LParen Token.StringValue, Token.Comma, Token.StringValue Token.RParen Мой парсер выгляди…
11 дек '17 в 20:52
2
ответа
Superpower: соответствует любому небелому персонажу, кроме токенизатора
Я хотел бы использовать Nuget пакет Superpower соответствовать всем небелым символам, если это не токенизированное значение. Например, var s = "some random text{variable}"; Должно привести к: ["some", "random", "text", "variable"] Но то, что я имею …
04 июл '19 в 21:31
1
ответ
Существует ли библиотека CLL-синтаксических анализаторов в C# / Java?
Мне действительно интересны комбинаторы парсеров, особенно те, которые могут иметь дело с леворекурсивными и неоднозначными грамматиками. Я знаю невероятную сверхдержаву Николаса Блюмхардта, но она не в состоянии справиться с этим видом грамматики. …
04 июн '19 в 13:31
1
ответ
Попытка построить TextParser<string []> с одинаковыми символами открытия / закрытия / разделителя
Я работаю над созданием парсера с библиотекой SuperPower. Вот пример исходного ввода, который я хочу проанализировать: |ABC|xyz|1 3|~~~| Первый | это OpeningPipe, Последний | это ClosingPipe, 2-й, 3-й и 4-й | являются разделителями. В конечном счете…
28 июл '19 в 21:25
1
ответ
Разбор списка списков с помощью Superpower
Я хотел бы разобрать книги библиотеки, представленные в таком формате: #Book title 1 Chapter 1 Chapter 2 #Book title 2 Chapter 1 Chapter 2 Chapter 3 Как видите, заголовкам загрузки предшествует символ #, а главы каждой книги - это следующие строки. …
18 окт '19 в 00:40
0
ответов
Как игнорировать токены до тех пор, пока не будет найден определенный шаблон токена в Superpower C#?
Я пытаюсь анализировать объекты, которые перемежаются функциями, и я хочу пропустить эти функции. Состав такой: /datum/chemical_reaction/reagent_explosion name = "Generic explosive" id = "reagent_explosion" var/strengthdiv = 10 var/modifier = 0 /dat…
16 янв '20 в 16:23
1
ответ
Невозможно объединить 2 Superpower TextParser с или с Span
У меня есть 2 Superpower TextParser - каждая цель для анализа определенного ввода - различается префиксом и параметрами. Я пытаюсь создать комбинированный синтаксический анализатор, который выдает результат, когда любой из TextParser может анализиро…
19 ноя '19 в 14:18
0
ответов
Сверхмощный синтаксический анализатор, аксессуар в стиле синтаксической скобки
Я пытаюсь создать синтаксический анализатор в библиотеке синтаксического анализатора Superpower C# для синтаксического анализа рекурсивного / связанного метода доступа в стиле скобок. Вот пример того, что я хочу разобрать: indentifier.identifier[exp…
17 дек '19 в 20:30
0
ответов
Моделирование связанных выражений в AST
Предисловие Я впервые пытаюсь написать интерпретатор / компилятор. Токенизация и синтаксический анализ - это уже то, что я, кажется, понял. Я все еще борюсь, потому что есть некоторые языковые конструкции, которые сложно смоделировать. См. Пример ко…
18 фев '20 в 11:17
4
ответа
Есть ли способ упростить оператор LINQ с помощью оператора if-else в С #
У меня есть выражение LINQ, которое работает, но я хотел сделать его проще и чище. var tryCatchTerminator = true; return tryCatchTerminator ? from varKeyword in MatchToken(SyntaxKind.VarKeyword) from declarations in ParseVarDeclarationClause.AtLeast…
09 дек '19 в 01:30
1
ответ
Исключение времени выполнения анализатора SuperPower: значение не может быть нулевым. Имя параметра: парсер
Меня попросили создать парсер Superpower для логических операторов, состоящих из 3 типов операторов (AND, AND_NOT, OR), скобок для группировки и значений данных. Значения данных имеют целочисленный формат, но являются идентификаторами. Это больше по…
08 окт '20 в 20:25