Tôi cần một trình phân tích cú pháp hoặc ngữ pháp cho C# 3.0 (giấy phép nguồn mở). Lựa chọn tốt nhất hôm nay là gì?Trình phân tích cú pháp tốt nhất cho C#?
Trả lời
Kiểm tra dự án ANTLR. http://www.antlr.org/
Bạn có thể nhận được C# ngữ pháp từ đây: http://www.antlr.org/grammar/list
Check-out Metaspec's C# parser:
Các Metaspec C# phân tích cú pháp là hoàn toàn phù hợp với ECMA-334 và ECMA-335 tiêu chuẩn. Ngoài ra, nó hỗ trợ tiện ích mở rộng dành riêng cho Microsoft. Để biết chi tiết về thư viện trình phân tích cú pháp C#, hãy xem tài liệu trực tuyến (C# hoặc ấn bản C++).
C# 3.0 hỗ trợ các tính năng:
loại
- mới C# 3.0 Thuật toán suy luận
- ngầm gõ các biến địa phương
- initializers đối tượng
- initializers bộ sưu tập
- tạo đối tượng ẩn danh biểu thức
- lambda biểu thức
- kiểu nặc danh
- phương pháp khuyến nông
- truy vấn biểu thức
- phương pháp phần
C# 2.0 hỗ trợ các tính năng:
- Generics
- loại nullable
- phương pháp vô danh
Có phải * nguồn mở * không? – skevar7
Tôi không chắc chắn - bạn sẽ cần liên hệ với Metaspec để lấy một bản sao giấy phép của họ. –
Phụ thuộc vào những gì bạn đang optimzing trên.
Nếu bạn đang tối ưu hóa khả năng chuyển đổi C#, xem C# Front End cho trình phân tích cú pháp xử lý C# 1.2, 2.0 và 3.0 (bao gồm cú pháp LINQ). Mặt trận C# được xây dựng trên đầu trang của DMS Software Reengineering Toolkit cung cấp phân tích cú pháp, xây dựng tự động các AST, hỗ trợ cho các bảng biểu tượng, chuyển đổi chương trình nguồn thành sử dụng cú pháp cấp nguồn với các mẫu và AST trở lại văn bản nguồn. Nếu bạn đang tìm kiếm để chuyển đổi mã C#, đây là công cụ để làm điều đó. (DMS cũng được sử dụng để phân tích và chuyển đổi mã trong Java, C, C++, JavaScript, COBOL và nhiều ngôn ngữ khác).
Nếu bạn đang tối ưu hóa nguồn mở, đây không phải là công cụ bạn muốn.
Tôi khuyên bạn ít nhất nên xem dự án LINQOverC# được lưu trữ trên codeproject.com.
URL: http://www.codeplex.com/LinqOverCSharp
Có một số (nhỏ?) các vấn đề đã biết và chưa được cập nhật kể từ tháng 1 năm 2008 (có thể là một vấn đề khá lớn), nhưng mã nguồn cho trình phân tích cú pháp C# 3.0 nhanh và 100%.
điều tôi yêu thích về phân tích cú pháp này:
Nó có thể tải một tập tin dự án Visual Studio (csproj) khá nhiều ra khỏi hộp, và phân tích toàn bộ công việc (bao gồm cả tài liệu tham khảo lắp ráp).
Bạn có thể truy vấn, liệt kê, lọc, vv, mô hình đối tượng được phân tích cú pháp (cây) bằng LINQ. Mà nó làm cho nó gần như tầm thường để đi qua lên và xuống và tất cả xung quanh bất cứ điều gì bạn đang phân tích cú pháp.
Dưới đây là một truy vấn LINQ mẫu cho việc tìm kiếm một biến hay tham số trong một phương pháp, nơi của biến name = VariableName:
variable = (from v in method.Variables
where string.Compare(v.Name, VariableName, false) == 0
select v as LanguageElement).Union(
from p in method.FormalParameters
where string.Compare(p.Name, VariableName, false) == 0
select p as LanguageElement).FirstOrDefault();
- 1. Trình phân tích cú pháp XML tốt nhất cho PHP
- 2. Trình phân tích cú pháp JSON tốt nhất cho Qt?
- 3. Cần trình phân tích cú pháp C++
- 4. Trình phân tích cú pháp tùy chọn cho C/C++?
- 5. Trình tạo trình phân tích cú pháp và trình phân tích cú pháp cho Common Lisp
- 6. Tạo trình phân tích cú pháp Brainfuck, phương pháp phân tích cú pháp vòng lặp tốt nhất là gì?
- 7. Cách tốt nhất/nhanh nhất để viết trình phân tích cú pháp trong C#
- 8. trình phân tích cú pháp html tốt nhất cho java là gì?
- 9. Kết hợp phân tích cú pháp phân tích cú pháp, phân tích cú pháp và phân tích cú pháp rừng
- 10. trình phân tích cú pháp asn.1 trong C/Python
- 11. Tìm kiếm trình phân tích cú pháp mã C#
- 12. Phương pháp phân tích cú pháp textfile tốt nhất trong C#?
- 13. Mã phân tích cú pháp C#
- 14. Trình phân tích cú pháp HTML cho GAE
- 15. Trình phân tích cú pháp Wiki nào?
- 16. Trình phân tích cú pháp HTML
- 17. Sự khác biệt giữa trình phân tích cú pháp SAX XML, Kéo trình phân tích cú pháp & Trình phân tích cú pháp DOM trong android
- 18. Điểm chuẩn cho trình phân tích cú pháp JSON?
- 19. Trình phân tích cú pháp JavaScript cho DOM
- 20. (La) Phân tích cú pháp toán học cho C/C++
- 21. Trình phân tích cú pháp CSS C/C++ tốt là gì?
- 22. Trình phân tích cú pháp C++ GLR với Bison
- 23. Phân tích html với trình phân tích cú pháp SAX
- 24. Trình phân tích cú pháp để đọc Mục tiêu-C
- 25. Trình phân tích cú pháp HTML DOM nào hoạt động tốt nhất trên Android?
- 26. Chọn trình phân tích cú pháp Haskell
- 27. Cách tốt nhất để tái sử dụng trình phân tích cú pháp Lua là gì?
- 28. Mã phân tích cú pháp cho .NET
- 29. Trình phân tích cú pháp SVG Python
- 30. Trình tạo trình phân tích cú pháp tốt cho php là gì?
Chỉ cần tò mò .. tại sao bạn muốn một? – RCIX
Thử nghiệm với các biến đổi mã. – skevar7
Nếu bạn sử dụng Visual Studio SDK, bạn có thể lấy mô hình đối tượng tài liệu đầy đủ của dự án C# để thực hiện các phép biến đổi đó. VS đã sử dụng nó để khúc xạ và intellisense và rất nhiều addins sử dụng quá. –