Có khung JavaScript cho phép xác định ngữ pháp phân tích cú pháp bằng cú pháp JavaScript hay không, tương tự như cách Irony thực hiện cho C#?Có một khuôn khổ để xác định các trình phân tích cú pháp trong JavaScript không?
Trả lời
Tôi không biết nhiều về cách Irony hoạt động, nhưng Chris Double có thư viện cho phép bạn xác định ngữ pháp trong JavaScript tại đây: http://www.bluishcoder.co.nz/2007/10/javascript-parser-combinators.html. Mã này là available on GitHub.
Đó là thư viện "trình kết hợp phân tích cú pháp" có nghĩa là bạn kết hợp các trình phân tích cú pháp cho từng sản xuất trong ngữ pháp của bạn thành một trình phân tích cú pháp lớn hơn phân tích toàn bộ nội dung. Mỗi "ngữ pháp phụ" chỉ là một hàm mà bạn tạo ra bằng cách gọi các hàm thư viện.
Đây không phải chính xác những gì bạn cần nhưng this article thực hiện việc tạo một trình phân tích cú pháp gốc đệ quy trong javascript cho chính javascript.
Đó thực sự là ưu tiên hàng đầu của nhà điều hành. Tôi nghĩ rằng nó cũng được tìm thấy trong một chương của cuốn sách, "Beautiful Code". – Nosredna
đệ quy gốc là trên xuống - "gốc" ngụ ý trên xuống và "đệ quy" có nghĩa là sản xuất quy tắc như chức năng tự gọi mình. ưu tiên toán tử đề cập đến cách nhìn về phía trước được giải quyết. – eulerfx
Tôi đã tạo một phân tích cú pháp JavaScript DSL được gọi là Chevrotain.
Nguồn:https://github.com/SAP/chevrotain
online Playground:http://sap.github.io/chevrotain/playground/
Đó là không một combinator Parser như Irony, nhưng nó rất giống vì nó cho phép bạn "xác định một phân tích cú pháp ngữ pháp sử dụng cú pháp JavaScript " mà không có bất kỳ giai đoạn tạo mã nào.
Sử dụng nó cũng tương tự như "xây dựng tay" một phân tích cú pháp phong nha đệ quy, chỉ mà không hầu hết các cơn đau đầu như:
- tạo chức năng lookahead (quyết định thay thế cho mất)
- Automatic Lỗi phục hồi .
- Phát hiện đệ quy trái
- Phát hiện mơ hồ.
- Thông tin vị trí.
- ...
khi Chevrotain xử lý tự động.
PEG.js có thể là một giải pháp.
PEG.js là trình tạo trình phân tích cú pháp đơn giản cho JavaScript tạo ra các trình phân tích cú pháp nhanh với báo cáo lỗi tuyệt vời. Bạn có thể sử dụng nó để xử lý dữ liệu phức tạp hoặc ngôn ngữ máy tính và xây dựng máy biến thế, thông dịch viên, trình biên dịch và các công cụ khác một cách dễ dàng.
Tính năng
Đơn giản và biểu ngữ pháp cú pháp Tích hợp cả phân tích từ vựng và cú pháp parsers có lỗi xuất sắc báo cáo ra khỏi hộp Dựa trên phân tích biểu ngữ pháp hình thức - mạnh mẽ hơn LL truyền thống (k) và Bộ phân tích LR (k) Có thể sử dụng từ trình duyệt của bạn, từ dòng lệnh hoặc qua API JavaScript
- 1. Trình phân tích và phân tích cú pháp JavaScript trong C# .NET 4.5
- 2. Trình phân tích cú pháp Markdown trong Javascript
- 3. Trình phân tích cú pháp JavaScript trong Python
- 4. Phân tích cú pháp đánh dấu wikimedia - các trình phân tích cú pháp dựa trên EBNF có phù hợp không?
- 5. 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
- 6. Trình phân tích cú pháp phân tích cú pháp của scala có phân tích cú pháp các tệp nhị phân không?
- 7. Phân tích cú pháp các mảng javascript trong PHP
- 8. 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
- 9. Trình phân tích cú pháp phân tích cú pháp Haskell để gặp phải [...]
- 10. Phân tích cú pháp XML với các không gian tên không xác định trong Oracle SQL
- 11. Trình phân tích cú pháp JavaScript cho DOM
- 12. Thư viện trình phân tích cú pháp toán học Javascript
- 13. Trình phân tích cú pháp Java được viết bằng JavaScript
- 14. Lỗi trình phân tích cú pháp XML: thực thể không được xác định
- 15. Trình phân tích cú pháp Wiki nào?
- 16. Có trình phân tích cú pháp PDF cho PHP không?
- 17. Chọn trình phân tích cú pháp Haskell
- 18. Khuôn khổ mẫu Javascript
- 19. Có một trình phân tích cú pháp/cách nào có sẵn để phân tích cú pháp các tệp kết xuất Wikipedia bằng cách sử dụng Python không?
- 20. PHPExcel, Ngày được phân tích cú pháp không chính xác
- 21. Sử dụng JavaScript để phân tích cú pháp tệp XML
- 22. Có trình phân tích cú pháp JSDoc nguồn mở nào được viết bằng Javascript không?
- 23. Chuỗi định dạng phân tích cú pháp
- 24. 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
- 25. Phân tích cú pháp không đúng định dạng XML
- 26. Cần trình phân tích cú pháp C++
- 27. Javascript không phân tích cú pháp số lớn trong JSON chính xác
- 28. Trình phân tích cú pháp SVG Python
- 29. Trình phân tích cú pháp HTML
- 30. Phân tích html với trình phân tích cú pháp SAX
Cảm ơn, đó có vẻ là điều tôi đang tìm kiếm, tôi sẽ xem xét kỹ hơn. –