2011-12-21 29 views
5

Tôi đang sử dụng V3 ANTLR để tạo mã C# cho ngôn ngữ DSL.ANTLR cho thuộc tính C# và CLSCompliant

Mã được tạo ra chứa thuộc tính CLSCompliant trên cả hai lớp laxer và parser gây ra cảnh báo được tạo vì dự án của tôi không tuân thủ CLS.

  1. Làm cách nào để làm cho ANTLR tạo mã mà không có thuộc tính CLSCompliant?
  2. Có thể thay đổi mẫu chuỗi của ngữ pháp C# 3 không?

Trả lời

9

Tôi đoán bạn đã tìm ra giải pháp thay thế dễ dàng bằng cách tắt tính năng cảnh báo tương ứng (và giúp bạn không gặp phải các mẫu).

Đơn giản chỉ cần thêm dòng sau vào tập tin văn phạm của bạn

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

HTH Gabriel

+0

có vẻ đúng, tôi sẽ thử. Cảm ơn –

0

Thay vì đàn áp những lời cảnh báo, đó là đúng một cách rõ ràng nêu rằng lắp ráp là không CLS phù hợp sử dụng một thuộc tính trong AssemblyInfo.cs:

[assembly: CLSCompliant(false)] 

Điều này cũng sẽ xóa cảnh báo khi biên dịch.

Các vấn đề liên quan