Tôi đang viết một chế độ chính cho một ngôn ngữ lập trình có ngữ pháp được xác định rõ: nó có BNF, được chính thức hóa trong một số tệp hạnh phúc .
Tôi đặc biệt không muốn triển khai lại BNF như một loạt các lần quét regex tiến / lùi (như nhiều chế độ chính làm), mặc dù tôi sẽ không phản đối việc dịch nó bằng tay hoặc tự động.
Tôi biết về SMIE , có bất kỳ tùy chọn nào khác có sẵn cho tôi trong Emacs lisp cho phép tôi xác định ngữ pháp của ngôn ngữ và có càng nhiều tự động được tạo ra càng tốt, ví dụ như khuôn mặt, lệnh sexp, dân số imothy.
Tôi quan tâm chủ yếu đến sự đơn giản và chính xác của chế độ, hơn là hiệu năng thô của nó, nhưng tôi chắc chắn muốn có một ý tưởng sơ bộ về sự đánh đổi là gì (rõ ràng nếu hiệu suất quá thấp thì không thể sử dụng được và do đó không thích hợp để sử dụng).
Điều này có phần liên quan đến việc Viết Chế độ chính mặc dù đã được nâng cao hơn nữa, vì tôi đã nhận thức được mọi thứ trong "Chế độ chính" trong hướng dẫn sử dụng Emacs Lisp.
CẬP NHẬT : Tôi đã nghiên cứu và nói chuyện với tác giả của Semantic và nó không thể tạo ra font-lock
s, nó nhằm mục đích cung cấp các công cụ cấp cao hơn và đó không phải là thứ tôi đang tìm kiếm.