Если вам не удалось протестировать с тем, что предлагал @NirMH, я настоятельно рекомендую вам сначала попробовать со средой исполнения Java , поскольку Java является первым гражданином в проекте ANTLR;https://github.com/antlr/antlr4/blob/master/doc/targets.md
Какую бы целевую грамматику вы не выбрали (в вашем случае C #), для генерации результата ANTLR4 со средой исполнения Java стабильнее, чем с любым другим языком. Я тестировал с JS, C # и генератором Python, но все они были недостаточно стабильны. stable означает, что у вас может быть вечный цикл при синтаксическом анализе не-Java.
Конечно, вы можете анализировать файл C#
во время выполнения Java ANTLR. Чтобы сгенерировать файлы лексера / анализатора, пройдите учебник . Сгенерированные результаты представляют собой простые .java
файлы, поэтому вы должны создать из них свой собственный файл библиотеки jar.
Я согласен, что весь процесс не является одним щелчком мыши, но языковая обработка всегда грязная.
Чтобы вызвать jar
в WinForm, вы можете использовать пакет IKVM nuget для преобразования jar
в dll
, как показано ниже, а затем добавить dll
вПроект WinForm.
C:\ikvmc.exe -target:library csharp-lexer-parser.jar