Ich schreibe einen Hauptmodus für eine Programmiersprache mit einer genau definierten Grammatik: Sie hat eine BNF, die in einigen glücklichen Dateien formalisiert ist .
Ich möchte das BNF nicht besonders als eine Reihe von Vorwärts- / Rückwärts-Regex-Scans erneut implementieren (wie es viele Hauptmodi tun), obwohl ich nicht dagegen wäre, es entweder manuell oder automatisch zu übersetzen.
Mir ist SMIE bekannt. Gibt es in Emacs lisp noch andere Optionen, mit denen ich die Grammatik der Sprache definieren und so viel wie möglich automatisch generieren kann, z. B. Gesichter, Sexp-Befehle, Imenu-Population?
Ich befasse mich hauptsächlich mit der Einfachheit und Korrektheit des Modus und nicht mit seiner rohen Leistung, aber ich würde sicherlich gerne eine ungefähre Vorstellung davon haben, was die Kompromisse sind (offensichtlich wäre es unbrauchbar und unbrauchbar, wenn die Leistung zu niedrig wäre daher nicht geeignet zu verwenden).
Dies hängt etwas mit dem Schreiben eines Hauptmodus zusammen, obwohl es weiter fortgeschritten ist, da mir bereits alles unter "Hauptmodi" im Emacs Lisp-Handbuch bekannt ist.
UPDATE : Ich habe mit dem Autor von Semantic studiert und gesprochen und es ist nicht in der Lage, das font-lock
s zu generieren . Es zielt eher darauf ab, übergeordnete Tools bereitzustellen, und es ist nicht etwas, wonach ich suche.