2011-12-21 10 views
5

私はANTLR V3を使ってDSL言語のC#コードを生成しています。ANTLR for C#とCLSCompliant属性

生成されたコードには、プロジェクトがCLSに準拠していないため、警告が生成される原因となるlaxerクラスとparserクラスのCLSCompliant属性が含まれています。

  1. ANTLRでCLSCompliant属性を使用しないコードを生成するにはどうすればよいですか?
  2. C#3文法の文字列テンプレートを変更することはできますか?

答えて

9

あなたは、これまでの簡単な回避策を考え出しました。これは、対応する警告を無効にして、テンプレートを手に入れないようにします。

は、単にあなたの文法ファイルに

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

HTH ガブリエル

+0

私はそれを試してみましょう。ありがとう –

0

代わりに警告を抑制し、それが明示的AssemblyInfo.csで属性を使用してアセンブリがCLSに準拠していない状態には、正しいだのを次の行を追加します。

[assembly: CLSCompliant(false)] 

これにより、コンパイル時の警告も削除されます。