Используйте тег [tatsu] для всех вопросов, связанных с генераторами парсеров TatSu или Grako.
2 ответа

Можно ли использовать другой лексер?

Я хотел бы использовать другой лексер для tatsu, но использовать парсер tatsu. Это возможно? Например, в грамматике: expr = NUM | ID | (expr '+' expr) ; Можно ли использовать альтернативный лексер для обеспечения NUM а также ID?
20 июл '17 в 09:35
1 ответ

Как сопоставить шаблон в Tatsu без учета регистра

Кто-нибудь знает, как распознать шаблон в Tatsu без учета регистра? Документация гласит: "Используйте (? I) в шаблонах, которые должны игнорировать регистр". но на самом деле я не понял, как использовать (?i) в моем правиле: graph = [ STRICT ] ( GRA…
25 фев '18 в 16:01
2 ответа

Нужна помощь, начиная с Тацу, чтобы разобрать грамматику

Я получаю ошибку Тацу "tatsu.exceptions.FailedExpectingEndOfText: (1:1) Ожидается конец текста" запустить тест, используя предоставленную мною грамматику - не ясно, в чем проблема. По сути, оператор, вызывающий синтаксический анализатор: ast = parse…
21 фев '19 в 20:42
1 ответ

Синтаксический анализ кода с ключевым словом case с помощью Tatsu / grako

Я пытаюсь разобрать код Фортрана по ключевому слову, которое без Tatsu h! Есть ли более умный способ определения ключевого слова без учета регистра, чем эти: @@ keyword :: integer INTEGER etc... Спасибо
29 июн '18 в 22:25
1 ответ

Как определить правило по умолчанию в EBNF/Tatsu?

У меня есть проблема в моей реализации EBNF и Tatsu извлечь грамматику EBNF для Tatsu: define ='#define' constantename [constante] ; constante = CONSTANTE ; CONSTANTE = ( Any | ``true`` ) ; Any = /.*/ ; constantename = (/[A-Z0-9_()]*/) ; Когда я про…
08 ноя '18 в 13:17
0 ответов

Посвятите производство с Javacc

Я пытаюсь написать грамматику javacc для анализа файла, содержащего такие выражения, как: "key_1" = "my value"; "key_2" = "value"; По сути, я хочу соответствовать <KEY> "=" <VALUE> ";" где: <KEY> соответствует регулярному выражению…
05 окт '18 в 10:15
1 ответ

Как мне обработать отрицательные числа в грамматике PEG?

Я пытаюсь написать простой синтаксический анализатор выражений int, используя tatsu, генератор синтаксических анализаторов Python на основе PEG. Вот мой код: import tatsu grammar = r''' start = expression $ ; expression = add | sub | term ; add = ex…
19 авг '17 в 22:13
1 ответ

Tatsu Parsing Performance

Я реализовал грамматику в Tatsu для разбора описания квантовой программы Quipper ASCII ( ссылка). Парсер работает, но медленно для файлов, которые я смотрю (размер около 10 КБ-1 МБ, см. resources каталог). Для анализа некоторых файлов требуется прим…
27 фев '18 в 19:30
1 ответ

Как заставить ModelRenderer разрешить мои занятия?

Я пытаюсь использовать генерацию кода Тацу для создания перевода. Пример программы "calc" правильно работает в моей системе. Когда я запускаю следующий код из примера с добавленной печатью, он печатает следующее: def parse_and_translate(): grammar =…
28 окт '18 в 15:14
0 ответов

Python - разбор грамматики Tatsu

В настоящее время я пытаюсь создать абстрактное синтаксическое дерево на основе моей грамматики, используя библиотеку синтаксического анализа грамматики tatsu и строку, содержащую логические операторы: простой пример: test = 'OR(functionA("valueA", …
19 окт '18 в 09:55
1 ответ

Как получить краткие сообщения об ошибках синтаксиса от grako/TatSu

Если вход в парсер, сгенерированный grako/tatsu, имеет синтаксическую ошибку, такую ​​как 3 + / 3 к примерам calc.py можно получить длинный список вызывающих последовательностей Python в дополнение к соответствующим 3 + / 3 ^ Я мог бы использовать t…
27 фев '18 в 09:46
1 ответ

Невозможно определить приоритет правила в грамматике грако для обработки специальных токенов

Я пытаюсь проанализировать некоторые документы с помощью грамматики, сгенерированной с помощью Grako, которая должна анализировать простые предложения для дальнейшего анализа, но сталкивается с некоторыми трудностями с некоторыми специальными токена…
22 дек '16 в 10:47
0 ответов

Возможная ошибка в примере Calc

Когда я даю строку 3 + 5 ( 10 - 20 ) к примеру Tatsu Calc parser принимает и возвращает ['3', '+', ['(', ['10', '-', '20'], ')']], Я не думаю, что эта строка должна быть принята. Не могли бы вы помочь мне увидеть, что мне здесь не хватает? Ура! Полн…
15 окт '18 в 20:35
1 ответ

Как включить буквальное "#" в грамматику тацу?

Я не могу заставить Тацу разобрать грамматику, которая включает в себя буквальное "#". Вот минимальный пример: G = r''' atom = /[0-9]+/ | '#' atom ; ''' p = tatsu.compile(G) p.parse('#345', trace=True) Анализ разбрасывает исключение FailedParse. Тра…
30 май '19 в 01:28
2 ответа

Буквы алфавита, не распознаваемые при разборе татсу

Я определил очень простую грамматику, но тацу ведет себя не так, как ожидалось. Я добавил правило "start" и завершил его символом "$", но я все еще вижу то же поведение. Если я определяю правило "аппликатуры" с помощью регулярного выражения (digit =…
20 апр '19 в 00:38
0 ответов

Как построить препроцессорное решение с Tatsu?

Я пишу транспортер для кода Tiny C в код Python, но мне нужно построить решение препроцессора, чтобы заменить #define и управляйте директивой C компилятора (#ifdef, #else, #define...) Я решил использовать модуль pcpp в Python, но безуспешно... возмо…
03 июл '19 в 14:22
1 ответ

AttributeError: объект 'tuple' не имеет атрибута 'asjson'

Когда я хочу проверить свою грамматику EBNF, я получаю ошибку: AttributeError: объект 'tuple' не имеет атрибута 'asjson' Код: if not filename or filename == '-': text = sys.stdin.read() else: with open(filename) as f: text = f.read() grammarname = '…
13 май '20 в 14:13
1 ответ

TatSu: yaml.presenter.RepresenterError при выгрузке в YAML

У меня есть объектная модель, созданная TatSu после успешного синтаксического анализа. Модель выгружается на стандартный вывод с использованием формата JSON OK. Но когда я пытаюсь сбросить его в YAML, я получаю исключение RepresenterError. Я не знаю…
23 ноя '19 в 02:55
1 ответ

Тацу: порядок правил

Я играю с Татсу, чтобы реализовать парсер для языка, используемого в полупроводниковой промышленности. Этот язык требует, чтобы переменные были определены перед использованием. Так например: SignalGroup { A: In; B: Out}; Pattern { V {A=1, B=1 } V {A…
08 ноя '19 в 04:37
2 ответа

TatSu: Как оптимизировать следующую грамматическую логику, чтобы ускорить синтаксический анализ?

У меня в Татсу следующая грамматика. Чтобы сократить время синтаксического анализа, я реализовал операции вырезания (т. Е. Фиксацию определенной опции правила, когда конкретный токен виден). Тем не менее, я все еще вижу длительное время автономной р…
19 ноя '19 в 07:37