Estoy escribiendo un modo principal para un lenguaje de programación que tiene una gramática bien definida: tiene un BNF, formalizado en algunos archivos felices .
En particular, no quiero volver a implementar el BNF como una serie de escaneos de expresiones regulares hacia adelante / hacia atrás (como lo hacen muchos modos principales), aunque no me opondría a traducirlo de forma manual o automática.
Soy consciente de SMIE , ¿hay alguna otra opción disponible para mí en Emacs lisp que me permita definir la gramática del lenguaje y generar la mayor cantidad automática posible, por ejemplo, rostros, comandos sexp, población imenu?
Me preocupa principalmente la simplicidad y la corrección del modo, en lugar de su rendimiento en bruto, pero ciertamente me gustaría tener una idea aproximada de cuáles son las compensaciones (obviamente, si el rendimiento es demasiado bajo, sería inutilizable y por lo tanto, no es apropiado para usar).
Esto está algo relacionado con la escritura de un modo mayor, aunque está más avanzado, ya que estoy al tanto de todo en "Modos principales" en el manual de Emacs Lisp.
ACTUALIZACIÓN : He estudiado y hablado con el autor de Semantic y no es capaz de generar los mensajes de correo electrónicofont-lock
, tiene el objetivo de proporcionar herramientas de nivel superior y no es algo que estoy buscando.