2011-08-24 51 views
22

Bất cứ ai có thể vui lòng hướng dẫn tôi về mục đích sử dụng các dll ANTLR trong một dự án ASP.Net, C#.Khi nào chúng ta sử dụng ANTLR

Tôi chỉ nhận thấy antlr.runtime, Antlr3.Runtime, Antlr3.Utlility hội đang được tham chiếu trong một số dự án.

Sẽ tuyệt vời nếu có thể trích dẫn một số ví dụ thực tế hoặc bất kỳ liên kết nào đến trang web sẽ hữu ích.

+1

Tôi không biết tại sao và từ đâu nhưng antlr3 này hiện diện trong dự án ASP.NET Web API của tôi. Tôi có thể xóa nó không? – Tohid

Trả lời

2

Bạn sẽ cần các dll này nếu bạn đang phân tích cú pháp bất kỳ văn bản nào trong thời gian chạy bằng ngữ pháp antlr.

Thường có hai bước.

1) chạy trình phân tích cú pháp antlr java trên tệp .g của bạn để tạo C# lexer, C# ngữ pháp và có thể là C# tree walkers.

2) Xây dựng các tệp đó vào ứng dụng của bạn. Các tệp đó sẽ hoạt động kết hợp với dll antlr.runtime, hoặc dll antlr3.runtime nếu bạn đang sử dụng phiên bản ANTLR 3.

Chương trình C# của bạn bây giờ có thể phân tích các tệp văn bản bằng ngữ pháp mà bạn đã biên dịch ở bước 1.

7

ANTLR là trình tạo trình phân tích cú pháp có thể tạo các trình phân tích cú pháp bằng nhiều ngôn ngữ bao gồm C#. Trang chủ ANTLR là here.

Tác giả Terence Parr cũng đã xuất bản một cuốn sách, The Definitive ANTLR Reference.

+0

Cảm ơn bạn đã trả lời. Tôi vẫn tự hỏi nếu tôi cần phải thêm tài liệu tham khảo cho nó nếu tôi tạo ra một ứng dụng C# ASP.Net. Khác trong những trường hợp nào tôi cần tham khảo ANTLR? – iniki

+0

Bạn có đang sử dụng ANTLR để tạo một Trình phân tích cú pháp/phân tích cú pháp không? Nếu vậy bạn sẽ có một tệp định nghĩa ngữ pháp (có thể là tệp ".g"). Nếu không thì bạn sẽ có thể loại bỏ các tham chiếu đến các DLL. – luketorjussen

37

Gói Antlr được gói WebGrease sử dụng. Gói WebGrease được gói ASP.NET Web Optimization sử dụng.

Nếu bạn muốn loại bỏ Antlr, hãy xóa gói ASP.NET Web Optimization. Nó sẽ lần lượt loại bỏ 2 gói khác.

Nó không ảnh hưởng đến hiệu suất nhiều, miễn là bạn đã thiết kế ứng dụng của mình đúng cách.

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