我正在使用 ANTLR V3 为 DSL 语言生成 C# 代码。
生成的代码在 laxer 和 parser 类上都包含属性 CLSCompliant,这会导致生成警告,因为我的项目不符合 CLS。
- 如何让 ANTLR 生成没有 CLSCompliant 属性的代码?
- 是否可以更改 C# 3 语法的字符串模板?
我正在使用 ANTLR V3 为 DSL 语言生成 C# 代码。
生成的代码在 laxer 和 parser 类上都包含属性 CLSCompliant,这会导致生成警告,因为我的项目不符合 CLS。
我猜你现在已经想出了一个简单的解决方法,它包括禁用相应的警告(并且让你免于摆弄模板)。
只需将以下内容添加到您的语法文件中
@parser::header {#pragma warning disable 3021}
@lexer::header {#pragma warning disable 3021}
HTH 加布里埃尔
与其抑制警告,不如使用以下属性明确声明程序集不符合 CLS 是正确的AssemblyInfo.cs
:
[assembly: CLSCompliant(false)]
这也将删除编译时的警告。