2011-12-21 14 views
5

Estoy usando ANTLR V3 para producir código C# para el lenguaje DSL.ANTLR para C# y atributo CLSCompliant

El código producido contiene el atributo CLSCompliant en las clases laxer y analizador que generan una advertencia porque mi proyecto no cumple con CLS.

  1. ¿Cómo puedo hacer que ANTLR produzca código sin el atributo CLSCompliant?
  2. ¿Es posible cambiar la plantilla de cadena de la gramática C# 3?

Respuesta

9

Supongo que ya ha resuelto la solución fácil que consiste en desactivar la advertencia correspondiente (y le evita manipular las plantillas).

sólo tiene que añadir lo siguiente a su archivo de gramática

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

HTH Gabriel

+0

parece correcto, lo intentaré. Gracias –

0

En lugar de suprimir las advertencias, es correcto afirmar explícitamente que el montaje no es compatible con CLS utilizando un atributo en AssemblyInfo.cs:

[assembly: CLSCompliant(false)] 

Esto eliminará las advertencias en la compilación también.