PLY - это реализация инструментов синтаксического анализа lex и yacc для Python.
1 ответ

Python PLY Lex неоднозначность

У меня проблема с неоднозначностью на уровне токенов. Проблема выглядит так. Мой код выглядит так, чтобы токен t_UN1 имел более высокий приоритет. t_ignore = ' \t\v\r' # whitespace .... def t_UN1(t): #NS_ r'NS\_' return t def t_IDENTIFIER(t): r'[a-z…
03 янв '13 в 21:26
1 ответ

Контекстно-бесплатная грамматика с неоднозначностью - небольшой компилятор, использующий генератор Ply lex/yacc

Я пишу небольшой компилятор, использующий генератор Ply lex/yaac для Python, для класса компилятора. Прямо сейчас мы погружаемся в фазу семантического анализа и вскоре к генерации кода. Но моя грамматика еще не завершена, так как я не могу написать …
29 апр '18 в 06:37
1 ответ

Использование PLY для разбора операторов SQL

Я знаю, что существуют другие инструменты для анализа операторов SQL, но я использую свои собственные в образовательных целях. Я застрял с моей грамматикой прямо сейчас.. Если вы можете обнаружить ошибку очень быстро, пожалуйста, дайте мне знать. SE…
08 сен '11 в 22:57
1 ответ

Бесконечная рекурсия, вызванная многократным появлением элемента синтаксического анализа YACC-PLY

Я имею дело с Yacc (сгибом), и я не знаю, как сделать больше вхождений элемента разбора, не вызывая сбой программы из-за бесконечной рекурсии. Допустим, у меня есть: def p_Attribute(p): ''' Attribute : STRING | NUMBER | Attribute | empty ''' [do stu…
02 авг '13 в 09:15
0 ответов

Пользовательские ошибки синтаксиса Ply

Я создаю парсер с использованием PLY в Python. Пока все идет хорошо, но проблема в том, что я не знаю, как использовать пользовательский p_error для каждого оператора. В настоящее время у меня есть оператор p_error: в нижней части файла синтаксическ…
17 мар '14 в 14:30
1 ответ

Регулярные выражения в коде yacc с PLY

Я пишу регулярные выражения с помощью PLY, но, похоже, он не ведет себя как yacc. Я написал это: def p_expression_TYPE (p): ''' TYPE : [' Discrete ', ' Continuous ' ] ''' чтобы выразить тот факт, что ТИП может принимать только эти значения: дискретн…
16 май '14 в 06:19
1 ответ

Использование ply.lex в строковом списке объектов json

У меня есть строковый список Python объектов JSON, которые я частично лексировал. но у меня остались токены, такие как "u'Grimsby" или "u'Amsterdam", и я изо всех сил стараюсь избавиться от предшествующих вам u, не повреждая токены слов, которые фак…
26 окт '12 в 23:16
1 ответ

Python/YACC: разрешение сдвига / уменьшение конфликта

Я использую PLY. Вот одно из моих состояний из parser.out: state 3 (5) course_data -> course . (6) course_data -> course . course_list_tail (3) or_phrase -> course . OR_CONJ COURSE_NUMBER (7) course_list_tail -> . , COURSE_NUMBER (8) cou…
30 май '10 в 18:52
0 ответов

Пакет обновления ply не проходит

Я хочу обновить ply так что я бегу - pip install ply --upgrade и я получаю ошибку (отмечен **) - Collecting ply Using cached https://files.pythonhosted.org/packages/a3/58/35da89ee790598a0700ea49b2a66594140f44dec458c07e8e3d4979137fc/ply-3.11-py2.py3-…
01 сен '18 в 18:18
2 ответа

Проблемы с PLY LEX и YACC

Я пытаюсь запустить первую часть простого примера PLY, но я сталкиваюсь со странной ошибкой. Когда я запускаю следующий код, он выдает ошибку, касающуюся lex.lex() Кто-нибудь знает, в чем проблема? import ply.lex as lex tokens = [ 'NAME','NUMBER','P…
22 фев '16 в 22:52
1 ответ

Вопросительный знак в зарезервированном ключевом слове

Я пытаюсь написать парсер для LOLCODE GOD, что я делаю??? (на всякий случай объяснить эти странные слова =)) Итак, мне нужны токены для O RLY? а также YA RLY, Я пытаюсь сделать так: reserved = { ..., 'O': 'IF_O', 'RLY?': 'IF_RLY', 'YA': 'THEN_YA', '…
24 окт '17 в 18:37
1 ответ

Как сделать калькулятор со строками и числами в качестве смешанного ввода, используя парсер Python Ply

Я хотел бы попросить помощи для упражнения на калькулятор, который распознает английские слова и цифры в Python, но теперь использует PLY (Python Lex-Yacc) Числа и операторы могут быть заданы в двух формах, записанных в виде строки с использованием …
14 сен '13 в 13:27
1 ответ

PLY YACC синтаксический анализ IF-ELSE IF-ELSE вложенных операторов

Может ли кто-нибудь помочь мне с написанием правильных правил грамматики для вложенных операторов if? На моем языке я могу написать такие конструкции: (IF CONDITION) some statements (IF CONDITION) some statements (ELSE IF CONDITION) some statements …
12 июл '12 в 16:35
1 ответ

Невозможно построить PLY лексер с помощью ideone

Я пытаюсь создать MCVE для вопроса, который собираюсь задать позже, но у меня возникла проблема с онлайновой IDE, которую я пытаюсь использовать, ideone. Код по ссылке ниже прекрасно работает, если я запускаю его в своем локальном интерпретаторе Pyt…
30 мар '16 в 20:23
2 ответа

Python parser ply соответствует неправильному регулярному выражению

Я пытаюсь создать парсер с помощью Ply, но столкнулся со странной ошибкой. Вот MCVE, где происходит ошибка соответствия: лексер import ply.lex as lex tokens = ( 'IDENTIFIER', 'NAME', 'EQUALS' ) def t_IDENTIFIER(t): r'\* *[a-zA-Z_]+' print("identifie…
07 окт '16 в 19:01
1 ответ

Почему PLY обрабатывает регулярные выражения иначе, чем Python/re?

Немного предыстории: Я пишу парсер для извлечения информации с сайтов на языке разметки. Стандартные библиотеки, такие как wikitools, ... не работают для меня, потому что мне нужно быть более конкретным, и адаптация их к моим потребностям ставит сло…
22 фев '14 в 22:03
2 ответа

PLY lex yacc: обработка ошибок

Я использую PLY для разбора файла. Я должен напечатать сообщение пользователю, когда у меня есть ошибка в строке. Сообщение как Error at the line 4, def p_error(p): flag_for_error = 1 print ("Erreur de syntaxe sur la ligne %d" % (p.lineno)) yacc.err…
08 июл '14 в 09:10
0 ответов

Извлекать выражение как строку в правилах грамматики вместо того, чтобы сопоставлять ее с другими правилами грамматики выражения python ply

def abc_expression(p): expression : abc ( expression ) Я хочу извлечь термин p[3] как есть, вместо того, чтобы сопоставлять его с другими правилами грамматики. Например, мой ввод: abc(def(hello)) я хочу извлечь "def(hello)"используя правило abc ( ex…
12 дек '18 в 23:19
1 ответ

Зацикливание шага разбора в PLY Python 3

В настоящее время я использую Python 3 для анализа языка программирования, который я делаю. Мне интересно, как я могу сделать цикл правила синтаксического анализа. Это может быть неясно, поэтому вот пример. У меня есть код: def c_parse(): def p_prog…
31 дек '18 в 16:46
0 ответов

Ply - отлов лексических ошибок

Мне трудно понять, есть ли ошибка в моем коде или Ply не может поймать некоторые лексические ошибки. Я пишу небольшой компилятор на Python для класса моих компиляторов в университете, я написал несколько лексических анализаторов с использованием lib…