2009-07-19 38 views
12

Tôi đang tìm một môi trường phát triển tốt để làm việc trên flex hoặc bison hoặc cả hai.IDE Flex/Bison?

Có IDE nào có các khả năng này và/hoặc phù hợp cho điều này không?

(Nếu không phải là câu hỏi chung nhất tiếp theo là đang có lexer/phân tích cú pháp máy phát điện với IDE?)

Cảm ơn ~ Alex

+1

crap. tôi vô tình cuộn lại một sự thay đổi khi tôi muốn bình luận. – machinaut

Trả lời

6

ANTLR có một số IDEs sẵn, bao gồm one I wrote. Theo số người dùng, ANTLRWorks có lẽ là được sử dụng nhiều nhất. Của tôi có ít tính năng tổng thể hơn, nhưng tôi sử dụng nó rộng rãi bởi vì nó tích hợp rất sạch sẽ với công việc Visual Studio của tôi. Cú pháp ngữ pháp của ANTLR là sạch và rất mạnh, tạo ra mã cho nhiều ngôn ngữ, và các lexers/parser được tạo ra của nó là mã sạch, có thể gỡ lỗi.

Chỉnh sửa để giải quyết mối quan tâm trong các ý kiến:

  • tài liệu thương mại cho ANTLR tồn tại và được khuyến cáo của nhiều người, nhưng chắc chắn là không cần thiết. Sản phẩm nFringe IDE (thương mại/nguồn đóng) Tôi đã sử dụng ANTLR rộng rãi và được phát triển hoàn toàn mà không cần sự trợ giúp của sách tham khảo ANTLR.
  • ANTLRWorks 1.x phát triển chậm, nhưng không dừng lại. Hiện tại có no open issues và hai vấn đề quan trọng là fixed since the latest 1.5 release.
  • ANTLRWorks 2 là một sản phẩm hoàn toàn khác và được viết từ đầu. A separate issue tracker có sẵn cho sản phẩm này.
+0

Tôi là một fan hâm mộ lớn của flex/bison, nhưng tôi phải nói rằng hình dung trong ANTLRWorks là một điểm thu hút HUUUGE. – machinaut

+0

Mọi người không đề cập đến tài liệu cho ANTLR là một sản phẩm thương mại. ANTLRWorks đã ngừng phát triển và bị lỗi. Các quyền này rõ ràng đã được mua bởi một công ty khác, vốn đã phát triển ANTLRWorks 2, thậm chí còn tồi tệ hơn. Là một người chỉ mới bắt đầu cố gắng tìm ra cách để làm một trình biên dịch, tôi đã bị dụ dỗ bởi ANTLR, đã thất vọng, và đã chuyển sang Bison và flex. – Brent

+1

@Brent Tôi đã cập nhật bài đăng của mình để giải quyết một số mục bạn đã đề cập. –

12

Vim có hỗ trợ đánh dấu cú pháp tuyệt vời cho các tệp flex/lex và bison/yacc. Vim dường như đoán từ phần mở rộng tập tin, do đó, miễn là các tập tin flex của tôi kết thúc bằng .l hoặc .lex và các tập tin bison của tôi kết thúc bằng .y, nó có vẻ hoạt động tốt. Tôi biết, nó chỉ là một IDE, nhưng tôi thấy cú pháp tô sáng là tính năng hữu ích nhất đối với tôi.

1

Nếu bạn cảm thấy thoải mái trong emacs, tôi sẽ đề nghị các chế độ:

http://ftp.lip6.fr/pub/emacs/elisp-archive/incoming/bison-mode.el.gz
http://ftp.lip6.fr/pub/emacs/elisp-archive/incoming/flex-mode.el

Hãy ghi nhớ rằng cả hai đều rất buggy, nhưng sau một thời gian tôi đã tìm ra hầu hết những khuyết tật để có được thụt đầu dòng.

Một emacs ví dụ mà tải các chế độ: http://www.elliotglaysher.org/emacs/

0

Chỉ cần tìm thấy VÀNG Hệ thống Phân tích cú pháp. Nó không phải là Flex/Bison, nhưng nếu một cái gì đó tương tự là chấp nhận được điều này có vẻ là một IDE tuyệt vời, và có tài liệu bắt đầu tuyệt vời trên trang web.

1

Cá nhân tôi sử dụng Gedit nó có một lex mẹ đẻ/flex yacc/bò rừng làm nổi bật

0

Visual studio đã hỗ trợ tốt cho flex/bò rừng bizon, https://sourceforge.net/p/winflexbison/wiki/Visual%20Studio%20custom%20build%20rules/

Nói tóm lại, bạn sẽ cần phải cài đặt win_flex_bison, các Cổng GNUWin của flex và bison, và thiết lập quy tắc xây dựng tùy chỉnh của studio trực quan bằng cách sử dụng tệp 'mục tiêu' cùng với cổng, đặt đường dẫn exe trong cài đặt thư mục VC++; sau đó nó được xây dựng và gỡ lỗi như các tệp cpp thông thường.

enter image description here

+0

Trong khi điều này về lý thuyết có thể trả lời câu hỏi, [nó sẽ là thích hợp hơn] (// meta.stackoverflow.com/q/8259) để bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. – dkackman