Любой IDE BNF с тестовыми функциями

Я работаю над новым языком и при записи грамматики, я хотел бы смочь протестировать грамматику на полноту, конфликты и подобный. Я не действительно озабоченность по поводу базового парсера-генератора (но один для.NET было бы предпочтительно),

Таким образом, список функций короче говоря был бы:

  • функциональность сборки текстового редактора
  • сообщение об ошибке syntax/sematics
  • создание отчетов конфликтов
  • тестовая функциональность грамматики (т.е. окно для записи кода в намеченной грамматике для проверки правильности определения грамматики)

Проект CodePlex под названием Ирония действительно имеет что-то simlar к тому, что я прошу, но не поддерживаю запись грамматики как BNF, который требуется.

11
задан Rune FS 16 January 2010 в 12:25
поделиться

3 ответа

Я бы порекомендовал ANTLR как парсер генератор. Это очень функция завершается и поддерживает C #, а также множество других целевых языков.

Для IDE есть плагин для Eclipse под названием IDE ANTLR и автономной IDE называется AntlRworks , оба из которых работают хорошо.

Обратите внимание, однако, что ANTLR использует алгоритм LL (*) вместо алгоритма LR (K). Тем не менее, это очень приятно, а AntlRworks может сделать большую часть необходимого левого факторинга.

7
ответ дан 3 December 2019 в 08:55
поделиться

Когда «работает на новом языке» и пытается получить ссылку BNF, вы, вероятно, не хотите предлагать свою справочную грамматику к любому конкретному генератору парсеров. Одним из проблем с написанием тестируемой грамматики для бизона (LALR (1)) или ANTLR (LL *) Вы только что именно это. Вы также не хотите, чтобы он был подвешен в «Как мне ввести правила BNF таким образом, чтобы сделать его на самом деле разбирать», по-видимому, потому что вы заинтересованы в работе на грамматике, не работая на генераторе парсера.

Итак, я бы порекомендовал использовать полный контекст бесплатный генератор парсера. Это позволит вам написать грамматику в самую естественную форму с наименьшими усилиями. Это может означать сдачу «Text Editor», «Editor Test Window», ... но в моем опыте (проверьте мой переполнение стека BiO), используя контекстный бесплатный анализатор генератора абсолютно полностью. Редактировать-анализ-анализ просто не принимает много усилий.

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

Наши DMS-программное обеспечение Reengineing Toolkit - это коммерческий, а также обеспечивает анализатор GLR, который использовался для реализации около 30+ полных ланга, включая C, C ++ и Cobol в ряде диалектов, а также более Современные языки, такие как Python, Ruby, PHP, ....

Разница между DMS и BISOCON заключается в том, что DMS предназначен для поддержки всех аспектов строительства полноценного анализатора / переводчика (Lexing Unicode, Parsing GLR с ошибкой Отчетность и восстановление, автоматическое строительство деревьев, конструкция таблицы символов, контроль и анализ потока данных, преобразования, преобразования, ...). Если вы хотите серьезно оценить вашу «новую Langauge», вы в конечном итоге должны делать все эти вещи, а Бизон - это всего лишь крошечный шаг вдоль этой дороги. DMS будет нести вас весь путь.

5
ответ дан 3 December 2019 в 08:55
поделиться

Посмотрите на BNFC, который может генерировать рабочий код и Makefile, от BNF-файла BNF, для ряда целевых языков, таких как: haskell, ocaml, c, c ++ и java. Вы получаете симпатичный принтер, абстрактный синтаксис Checker / Printer, скелет для вашего собственного компилятора или переводчика, а также языковая документация.

0
ответ дан 3 December 2019 в 08:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: