Estou escrevendo um modo principal para uma linguagem de programação que possui uma gramática bem definida: ela possui um BNF, formalizado em alguns arquivos felizes .
Não quero particularmente reimplementar o BNF como uma série de varreduras regex para frente / trás (como muitos modos principais o fazem), embora eu não me oponha a traduzi-lo manual ou automaticamente.
Estou ciente do SMIE , existem outras opções disponíveis no Emacs lisp que me permitam definir a gramática do idioma e gerar o máximo possível automaticamente, por exemplo, rostos, comandos sexp, população imenu.
Preocupo-me principalmente com a simplicidade e a correção do modo, e não com o desempenho bruto, mas certamente gostaria de ter uma ideia aproximada do que são as compensações (obviamente, se o desempenho for muito baixo, seria inutilizável e portanto, não é apropriado usar).
Isso está um pouco relacionado ao modo de escrever um modo principal, embora mais avançado, pois já estou ciente de tudo em "Modos principais" no manual Emacs Lisp.
ATUALIZAÇÃO : Estudei e conversei com o autor da Semantic e não é capaz de gerar os font-lock
s, é mais objetivo fornecer ferramentas de nível superior e não é algo que estou procurando.