2011-12-21 10 views
5

Sto usando ANTLR V3 per produrre codice C# per il linguaggio DSL.ANTLR per C# e attributo CLSCompliant

Il codice prodotto contiene l'attributo CLSCompliant su entrambe le classi laxer e parser che causano la generazione di un avviso perché il mio progetto non è conforme a CLS.

  1. Come posso fare ANTLR produrre codice senza l'attributo CLSCompliant?
  2. È possibile modificare il modello di stringa della grammatica C# 3?

risposta

9

Immagino che tu abbia capito la soluzione facile ora che consiste nel disabilitare l'avviso corrispondente (e ti evita di giocherellare con i modelli).

È sufficiente aggiungere il seguente al vostro file di grammatica

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

HTH Gabriel

+0

sembra giusto, ci proverò. Grazie –

0

Invece di sopprimere gli avvertimenti, è corretto affermare esplicitamente che l'assemblea non è compatibile con CLS utilizzando un attributo in AssemblyInfo.cs:

[assembly: CLSCompliant(false)] 

Questo rimuoverà anche gli avvisi alla compilazione.