2008-11-05 52 views
11

Tôi đang cố viết một ngữ pháp trong EBNF (viết một lý do thực sự tốt, nó phải là EBNF) và đang tìm một vài tiện ích cho nó - nếu có giao diện GUI có thể tạo sẽ là tuyệt vời, nhưng điều tôi đang tìm kiếm nhiều nhất là cái gì đó có thể kiểm tra ngữ pháp, ví dụ để xem nó là LALR (n), và nếu có, giá trị của n là gì. Các tiện ích như vậy có tồn tại không? Có bất kỳ công cụ viết ngữ pháp hữu ích nào khác mà tôi nên biết không (tôi không tìm kiếm trình tạo trình phân tích cú pháp).Công cụ viết ngữ pháp

+2

Trong trường hợp người khác tự hỏi: http://en.wikipedia.org/wiki/EBNF –

Trả lời

3

Lấy đề xuất của Steven Dee thêm một bước nữa, bạn có thể muốn xem ANTLRWorks, một công cụ phát triển GUI tương tác cho ngữ pháp ANTLR.

1

Để kiểm tra xem ngữ pháp có cho phép một thuật toán phân tích cú pháp nhất định hay không, chỉ cần đặt nó vào trình tạo trình phân tích cú pháp. Trong trường hợp LALR (1), chuyển ngữ pháp sang YACC để xem nó có phát hiện xung đột hay không.

0

ANTLR là trình tạo trình phân tích cú pháp GUI trong Java có khả năng phân tích ngữ pháp và bao thanh toán rộng rãi. Kiểm tra FAQ; nó có thể hỗ trợ những gì bạn đang tìm kiếm.

9

Sử dụng TinyPG! một C#/VB đang tuyệt vời all-in-one biên dịch biên dịch với một giao diện gọn nhẹ, nơi bạn xây dựng phân tích cú pháp của bạn với RegEx, EBNF, và viết nó để làm điều gì đó với cây phân tích cú pháp!

Dưới đây là tóm tắt ngắn gọn và cung cấp thông tin mà tôi đã làm trước đó, điều này cũng liên kết bạn với các bản tải xuống.


hiểu biết của tôi về TinyPG:

TinyPG cho phép bạn viết & phát triển:

Nó có IDE tích hợp, Chỉ Windows (được tạo trong C# .NET, mã nguồn mở).

Nó cho phép bạn thử & xem trước Cụm từ thông dụng sử dụng công cụ RegEx sẵn có . Cú pháp RegEx được hỗ trợ trong .NET có nghĩa là ngay cả mã số phân tích cú pháp đã xuất của bạn được xuất ra sử dụng Biểu thức chính quy của .NET.

Bạn viết EBNF để mô tả ngôn ngữ của sự lựa chọn của bạn(Dưới đây là một số tự do có sẵn BNF Grammers that describe modern programming languages (C, Java, JavaScript, C#, VB.NET, SQL-89)

Sử dụng TinyPG, bạn RegEx cùng với EBNF bạn kết quả đầu ra một phân tích cây(see this diagram).

Bây giờ bạn sẽ làm gì với những phân tích cây? bạn viết C#/VB code(trong TinyPG, theo quy tắc ngữ pháp BNF) cho Trình biên dịch/Phiên dịch/Biên dịch của bạn.(bên TinyPG, mở "đơn giản expression2.tpg" tập tin trong mẫu được cung cấp để xem một bản demo của một máy tính 'biên dịch')

TinyPG cho phép bạn Compile và Test bạn tokenizer + phân tích cú pháp + biên dịch, trong TinyPG IDE, và cuối cùng kết quả đầu ra mã nguồn phân tích cú pháp trong C# .NET hoặc VB.NET (lựa chọn của bạn), với sẵn sàng để sử dụng lớp.

Tuyệt vời Trình biên dịch biên dịch All-in-one cho công chúng. Thưởng thức!

PS: Đúng nếu tôi sai về bất kỳ điều nào trong số này.

+0

câu trả lời tuyệt vời, chúc mừng. –

1

CoCo/R C# bị thiếu trong danh sách. Nó là đơn giản để sử dụng, rất linh hoạt và đặc biệt hữu ích có máy phát điện mã cho một loạt các ngôn ngữ

Coco/R cho C#, Java, C++, F #, VB.Net, Oberon, các ngôn ngữ khác

[1 ] http://www.ssw.uni-linz.ac.at/Coco/

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