Ищу интерактивную утилиту для создания грамматик синтаксического анализатора - PullRequest
4 голосов
/ 16 мая 2009

Мне нужна утилита, с помощью которой я могу дать фрагмент текста (в текстовом поле) и поэкспериментировать с грамматикой синтаксического анализатора (путем редактирования BNF аналогичного) и структурой токена, в то время как я могу видеть, как будет выглядеть дерево разбора и если он не сможет разобрать текст, используя мою текущую грамматику, я бы увидел, где он остановился).

Ключевое слово - интерактивность. Я мог бы сделать это, например, используя flex и bison, но мне постоянно приходилось бы заново создавать свой лексер и парсер.

Есть что-нибудь подобное? Я не нашел ни одного. В идеале он должен работать в Linux и быть бесплатным, если это не вариант, он все еще представляет интерес.

Ответы [ 3 ]

5 голосов
/ 16 мая 2009

вы можете пообщаться с pyBison и друзьями, используя GTKSourceView

Я ничего не видел, но вы можете написать программу для этого, если хотите. Я бы либо перенес источник Bison на DSO, чтобы вы могли загрузить его, запустить BNF и вытащить таблицы автоматов. Затем присоедините оценку к текстовому полю GTK-source-view

- или -

Создайте внешний интерфейс (GTKSourceView снова кажется хорошим) и присоедините его к некоторым системным вызовам, чтобы записать ваши flex.c и bison.c и сформировать некоторый общий объект output.so, который затем загружается и выгружается в приложение, которое вы можете затем пропустите какой-нибудь источник.

При разработке грамматики я обычно использую pyBison и другие инструменты языка высокого уровня для увеличения скорости разработки. Затем используйте C / Flex / Bison с файлами .l и .y позже. GTK должен быть действительно простым в использовании в Python для достижения вышеупомянутого без необходимости в DSO и dlopen () fandango.

Очень похоже на цикл Read-Eval-Print, в котором BNF и тестовый синтаксис находятся в цикле с некоторыми внутренними генераторами D / NFA

через некоторое время

Я нашел это, отвечая на другой вопрос:

http://jscc.jmksf.com/jscc_on_web.png

Это JavaScript-Yacc / Bison-подобный инструмент для генерации парсеров в JavaScript. Вы можете легко использовать это для отладки ваших грамматик C, так как они все равно BNF! Я обязательно буду его использовать.

4 голосов
/ 15 октября 2009

ANTLRWORKS (http://www.antlr.org/works/index.html) - лучшая интерактивная среда разработки грамматики, которую я когда-либо видел. Она позволяет вам визуализировать и отлаживать грамматики LL (*), написанные на ANTLR.

1 голос
/ 13 января 2010

Посмотрите на VisualBNF

...