Простой механизм отступов
SMIE — это пакет, предоставляющий универсальный механизм навигации и расстановки отступов. Он основан на очень простом анализаторе, использующем грамматику операторного предшествования, и позволяет основным режимам расширять навигацию на основе sexp, применяемую в Lisp, на языки, не относящиеся к Lisp, а также предоставляет простую в использовании, но надежную автоматическую расстановку отступов.
Грамматика операторного предшествования — очень примитивная технология синтаксического анализа по сравнению с некоторыми более распространенными методами, используемыми в компиляторах. Она обладает следующими характеристиками: ее возможности синтаксического анализа очень ограничены, и она в значительной степени не способна обнаруживать синтаксические ошибки, но ее преимущество заключается в алгоритмической эффективности и способности анализировать текст вперед так же хорошо, как и назад. На практике это означает, что SMIE может использовать ее для расстановки отступов на основе обратного синтаксического анализа, предоставлять функциональность forward-sexp и backward-sexp, а также естественным образом работать с синтаксически некорректным кодом без каких-либо дополнительных усилий. Недостаток в том, что большинство языков программирования невозможно корректно анализировать с помощью SMIE, по крайней мере без специальных приемов (см. Работа со слабым анализатором).
Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/SMIE.html