【问题标题】:ANTLR for C# and CLSCompliant attributeC# 和 CLSCompliant 属性的 ANTLR
【发布时间】:2011-12-21 13:16:05
【问题描述】:

我正在使用 ANTLR V3 为 DSL 语言生成 C# 代码。

生成的代码在 laxer 和 parser 类中都包含属性 CLSCompliant,这会导致生成警告,因为我的项目不符合 CLS。

  1. 如何让 ANTLR 生成没有 CLSCompliant 属性的代码?
  2. 是否可以更改C# 3 语法的字符串模板?

【问题讨论】:

    标签: antlr3 cls-compliant


    【解决方案1】:

    我猜你现在已经找到了一个简单的解决方法,它包括禁用相应的警告(并且让你免于摆弄模板)。

    只需将以下内容添加到您的语法文件中

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

    HTH 加布里埃尔

    【讨论】:

    • 我相信@header {#pragma warning disable 3021} 会将编译指示添加到解析器和词法分析器文件中,而不是需要两个单独的行。
    【解决方案2】:

    使用AssemblyInfo.cs 中的属性明确声明程序集不符合 CLS 是正确的:

    [assembly: CLSCompliant(false)]
    

    这也将删除编译时的警告。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多