2011-12-21 22 views
5

DSL dili için C# kodu üretmek için ANTLR V3 kullanıyorum.C# ve CLSCompliant özniteliği için ANTLR

Üretilen kod, projem CLS uyumlu olmadığından bir uyarı üretilmesine neden olan hem laxer hem de ayrıştırıcı sınıflarında CLSCompliant özniteliğini içerir.

  1. ANTLR'yi CLSCompliant özniteliği olmadan nasıl üretebilirim?
  2. C# 3 dilbilgisi dize şablonunu değiştirmek mümkün mü?

cevap

9

Şimdi, ilgili uyarıyı devre dışı bırakmayı içeren (ve sizi şablonlarla uğraşmaktan kurtarmanızı sağlayan) kolay çözümü anladığınızı tahmin ediyorum.

Basitçe dilbilgisi dosyasına

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

HTH Gabriel

+0

doğru görünüyor, bir deneyeyim. Teşekkürler –

0

yerine uyarıları bastırmak, açıkça AssemblyInfo.cs bir özelliğini kullanarak montaj CLS uyumlu değil belirtmek doğru olup aşağıdaki ekleyin:

[assembly: CLSCompliant(false)] 

Bu, uyarıları derlemede de kaldıracaktır.