Недостающие классы в Antlr.Runtime для C # - PullRequest
4 голосов
/ 22 февраля 2011

Я пытаюсь заставить Antlr работать, используя NuGet.

Текущая версия Antlr.Runtime.dll, на которую я пытаюсь ссылаться, - 3.1.3.42154.

Проблема в том, что когда я пытаюсь собрать свои файлы Lexer и Parser .cs, я получаю много ошибок при сборке с отсутствующими типами.

например. Класс GrammarRuleAttribute не может быть найден. Я смотрю в Antlr.Runtime.dll и класс не там. Однако если вы посмотрите на проект Antlr на GitHub , вы увидите, что GrammarRuleAttribute действительно должен быть в Antlr.Runtime.dll.

Это ошибка или я что-то упустил?

Ответы [ 2 ]

4 голосов
/ 23 февраля 2011

Это несколько чувствительный ко времени Q / A, потому что цели C # для ANTLR (CSharp2 от Johannes Luber и CSharp3 от меня) меняются со временем.Я знаю, что у цели CSharp2 недавно были некоторые проблемы, над которыми работали.На момент написания этой статьи текущей версией цели CSharp3 является 3.3.1.

Вот ссылка на документацию цели CSharp3 , которая включает несколько ссылок на скачивание порта C #Инструмент ANTLR, среда выполнения CSharp3, поддержка MSBuild и некоторые инструменты для Visual Studio.Я периодически обновляю этот документ по мере выпуска новых версий.

Редактировать: Если при открытии файла грамматики возникают проблемы с отображением или сообщения об исключениях, необходимо удалить ANTLR 3, StringTemplate иРасширения Extensibility Framework из Extension Manager и переустановите их в соответствии с инструкциями в связанной документации.Я обновил расширения для решения проблемы.

0 голосов
/ 13 декабря 2012

У меня была эта проблема при использовании CSharp2 или CSharp3. Я строю в ANTLRWorks 1.5rc1.

Оказалось, что это связано с версией ANTLR. Я установил официальный пакет, используя NuGet, который был 3.1.x. После удаления и установки неофициального пакета 3.4.1 все заработало.

В моей тестовой грамматике все еще была небольшая проблема, связанная с каналом HIDDEN. Изменение его на Hidden (как определено в Antlr3.Runtime) решило проблему

...