2012-10-24 33 views
7

Có ai biết thư viện Haskell có thể phân tích cú pháp các tập lệnh Bash tùy ý không?Thư viện Haskell để phân tích cú pháp các tập lệnh Bash?

Một tìm kiếm lướt qua về Hackage chỉ ra rằng có một gói gọi bash cho viết kịch bản, nhưng tôi không thấy bất cứ điều gì cho phân tích họ.

Về cơ bản, tôi vừa mới có một bộ sưu tập lớn các tập lệnh Bash bị đổ vào tôi, và tôi muốn thực hiện một số phân tích mã trên đó. Nhưng giai đoạn đầu tiên rõ ràng là có thể phân tích nội dung này.

Tôi không biết Bash rất cá nhân. Tôi cho rằng tôi có thể ngồi xuống và trả lương thông qua trang người đàn ông to lớn để có được ngữ pháp BNF hoàn chỉnh cho nó. (Tôi tưởng tượng nó rất phức tạp, vì lịch sử dài và tương thích ngược của vỏ.) Tôi chỉ tự hỏi liệu có ai khác đã làm công việc này cho tôi không ...

+4

Chúc bạn may mắn. Bạn sẽ cần nó nếu bạn sẽ tự viết trình phân tích cú pháp. – Satvik

+0

Tôi nghĩ bạn nên cố gắng xem mã bash và làm việc từ trình phân tích cú pháp ở đó. Khả năng có một trình phân tích cú pháp băm Haskell tồn tại có vẻ xa xôi. Có những thư viện mà bạn có thể sử dụng nguyên bản từ Haskell để có được một AST. Khả năng: [libbash] (http://dev.gentoo.org/~qiaomuf/libbash.html); [jBash] (http://code.google.com/p/jbash/); [một người khác muốn viết một trình phân tích cú pháp] (https://bbs.archlinux.org/viewtopic.php?id=101893), v.v. – Orbling

+0

Chúng có phải là các tập lệnh bash hay shell không? Vì cú pháp shell POSIX đơn giản hơn và thuật toán phân tích cú pháp được mô tả trong spec trên opengroup. – singpolyma

Trả lời

4

Có lẽ mở rộng language-sh.

Language.Sh là tập hợp các mô-đun để phân tích cú pháp và thao tác các biểu thức trong ngữ pháp trình bao. Đây là một phần của dự án lớn hơn, shsh. Xin lưu ý rằng API có phần không ổn định cho đến khi chúng tôi đạt được phiên bản 1.0.

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