Инструменты лексического анализатора/синтаксического анализатора

Вам нужен NUnit Engine - это часть проекта, которая предназначена для использования внешними программами-бегунами для запуска тестов.

Вы должны взять пакет nunit.engine NuGet. Единственная сборка, на которую должен ссылаться ваш бегун, должна быть nunit.engine.api.dll - это поддерживаемый интерфейс, который будет означать, что ваш бегун продолжит работать с будущими версиями движка.

Здесь есть некоторая документация по процессу: https://github.com/nunit/docs/wiki/Test-Engine-API

Ваш бегун должен не [ 114] ссылается на пакет NUnit NuGet. Этот пакет содержит тестовую среду, на которую должны ссылаться все тестовые сборки, но не бегуны.

Надеюсь, это поможет - удачи!

7
задан lesmana 6 May 2013 в 11:26
поделиться

6 ответов

Обновлено 05.01.2015:

Мой исходный ответ , указывающий на теперь удаленный вопрос:

На этот вопрос уже есть несколько хороших ответов в Какой генератор парсеров вы рекомендуете

Итак, я взял список элементов из удаленного ответа на archive.org с помощью at минимум 1 голос здесь:

5
ответ дан 7 December 2019 в 03:21
поделиться

Я использовал ЗОЛОТУЮ систему парсинга (http://www.devincook.com/goldparser) с очень хорошими результатами. Мой проект является маленьким, система парсинга для файлов NC в C. Но я думаю, что инструмент может обработать более сложные проекты также.

0
ответ дан 7 December 2019 в 03:21
поделиться

Я не знаю то, что Вы ищете точно, но я думаю, что на Повышение Xpressive стоит посмотреть...

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

0
ответ дан 7 December 2019 в 03:21
поделиться

Плохая новость заключается в том, что большинство настоящих компьютерных языков не являются "LALR (1)", а это означает, что вам придется прибегнуть к серьезным хакерским приемам, чтобы заставить YACC анализировать реальные языки.

Если вы разрабатываете DSL, вы можете без особых проблем использовать любые генераторы синтаксического анализатора LALR именно потому, что вы можете изменить грамматику вашего DSL, когда генератор синтаксического анализатора кричит. Генераторы парсеров LL в основном работают и здесь по той же причине, но отсутствие левой рекурсии может быть настоящей болью.

Если вам не нравится ваш синтаксис, парсеры GLR безоговорочно победят. Мы используем их в DMS Software Reengineering Toolkit и создали качественные парсеры для около 30+ языков, включая C ++, который, согласно народной теореме, практически невозможно разобрать. Народная теорема была начата людьми, которые использовали парсеры LL и LALR, чтобы попытаться справиться с C ++. GLR делает это легко.

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

Последний Bison утверждает, что выполняет неограниченный просмотр вперед, (фактически) выполняя несколько синтаксических анализов одновременно. Если у вас уже есть инвестиции в bison, возможно, стоит попробовать это, а не переходить на другой пакет.

http://www.gnu.org/software/bison/manual/bison.html#GLR-Parsers

Я сам не использовал эту функцию.

Что касается других систем, я использовал ANTLR. Мне он не особо понравился (документация была не очень хорошей, и нужно вручную разложить грамматику, чтобы учесть приоритет операторов), но это действительно сработало, и многие клянутся им, что на него, безусловно, стоит взглянуть.

0
ответ дан 7 December 2019 в 03:21
поделиться

ANTLR упрощает неограниченный просмотр вперед, используя опцию «backtrack». Он также может соответствовать вашим критериям «самый простой в использовании, самый быстрый», поскольку он имеет ANTLRWORKS, который позволяет вам визуализировать и отлаживать вашу грамматику.

Еще одно преимущество состоит в том, что он упрощает сборку AST благодаря встроенной поддержке построения AST, которая отсутствует в bison.

После публикации двух книг - «ANTLR: Definitive guide» и «Language design patterns», он это один из хорошо документированных доступных инструментов. У вас также есть очень активный список рассылки.

1
ответ дан 7 December 2019 в 03:21
поделиться
Другие вопросы по тегам:

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