문제

I'm using ANTLR V3 to produce C# code for DSL language.

The produced code contain the attribute CLSCompliant on both laxer and parser classes which cause a warning to be generated because my project is not CLS compliant.

  1. How can I make ANTLR produce code without the CLSCompliant attribute?
  2. Is it possible to change the string template of C# 3 grammar?
도움이 되었습니까?

해결책

I guess you've figured out the easy workaround by now which consists in disabling the corresponding warning (and saves you from fiddling with the templates).

Simply add the following to your grammar file

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

HTH Gabriel

다른 팁

Instead of suppressing the warnings, it's correct to explicitly state that the assembly is not CLS compliant using an attribute in AssemblyInfo.cs:

[assembly: CLSCompliant(false)]

This will remove the warnings at compilation as well.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top