ANTLR для атрибута C # и CLSCompliant - PullRequest
7 голосов
/ 21 декабря 2011

Я использую ANTLR V3 для создания кода C # для языка DSL.

Созданный код содержит атрибут CLSCompliant как для классов laxer, так и для классов синтаксического анализатора, которые вызывают генерирование предупреждения, поскольку мой проект не совместим с CLS.

  1. Как заставить ANTLR создавать код без атрибута CLSCompliant?
  2. Можно ли изменить шаблон строки грамматики C # 3?

Ответы [ 2 ]

11 голосов
/ 03 января 2012

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

Просто добавьте следующее в файл грамматики

@parser::header {#pragma warning disable 3021}
@lexer::header {#pragma warning disable 3021}

HTH Габриэль

2 голосов
/ 29 января 2018

Вместо подавления предупреждений правильно прямо указать, что сборка несовместима с CLS, используя атрибут в AssemblyInfo.cs:

[assembly: CLSCompliant(false)]

Это также удалит предупреждения при компиляции.

...