Не могу снова интегрировать antlr 4 в проект C # - PullRequest
0 голосов
/ 08 мая 2018

У меня проблема с проектом, использующим инструмент синтаксического анализа языка antlr. Сначала, когда я создал проект и установил antlr4, он был успешно интегрирован с файлом грамматики ECMAScript.g4, но как только я добавил рамку antlr3 и под этим еще одним файлом грамматики JSDeobfucs.g, и после этого я попытался интегрировать это в существующий проект Затем проект прекратил сборку и файлы лексера, парсера, слушателя и т. д. и больше не создаются, что выводит ошибки компиляции:

[Ошибка] Файл 'C: \ Users \ Dima \ Desktop \ Projects \ C # \ JsAstVisitor \ JsAstVisitor \ OBJ \ Debug \ ECMAScriptBaseListener.cs' не найдено. [Ошибка] Файл 'C: \ Users \ Dima \ Desktop \ Projects \ C # \ JsAstVisitor \ JsAstVisitor \ OBJ \ Debug \ ECMAScriptLexer.cs' не найдено. [Ошибка] Файл 'C: \ Users \ Dima \ Desktop \ Projects \ C # \ JsAstVisitor \ JsAstVisitor \ OBJ \ Debug \ ECMAScriptListener.cs' не найдено. [Ошибка] Файл 'C: \ Users \ Dima \ Desktop \ Projects \ C # \ JsAstVisitor \ JsAstVisitor \ OBJ \ Debug \ ECMAScriptParser.cs' не найден.

Для интеграции antlr3 в Visual Studio 2017 я следовал следующей инструкции .

Хотя странно, что подобная инструкция не создана для Visual Studio 2017, так как сборка проекта antlr по цели отличается не только от зависимости от версии фреймворка antlr

, но в версии Visual Studio. Кроме того, то, что в последней версии Visual Studio antlr 3 и 4 не поддерживается через графический менеджер пакетов nuget, но только через консоль диспетчера nuget, я могу установить их. Вот ссылка на мой проект (я не могу прикрепить архив с проектом здесь, потому что stackoverflow не поддерживает все типы файлов, как я думаю).

Поэтому, пожалуйста, скажите мне:

  1. В чем проблема может быть здесь?

  2. Как решить?

  3. Действительно ли это в Visual Studio в одном C # спроектировать две разные версии конфликта и будет конфликтовать друг с другом ???

  4. Если две версии antlr конфликтуют в одном проект, то как сделать теперь, когда antlr4 снова работает в моем текущем проект по крайней мере, и в то же время я не буду делать проект изначально, если это возможно, конечно ???

p.s. Я нашел похожую проблему с генерацией исходного кода antlr в C # target здесь:

Используйте ANTLR для разбора C ++ с C #

Как я понимаю, что я могу использовать IKVM , но я не понимаю: как это помогает мне в моей общей проблеме интеграции antlr в проект C #. В любом случае, помогите мне, пожалуйста.

...