GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/SMIE.html ・ emacs-doc.conao3.com

24.8.1 Simple Minded Indentation Engine

SMIEは、汎用的なナビゲーションおよびインデントエンジンを提供するパッケージです。演算子優先順位文法を用いた非常にシンプルなパーサーを基盤としており、メジャーモードがLispのsexpベースのナビゲーションを非Lisp言語にも拡張できるほか、使いやすく信頼性の高い自動インデント機能を提供します。

演算子優先順位文法は、コンパイラで用いられるより一般的な手法に比べると、構文解析において非常に原始的な技術です。これには次のような特徴があります。構文解析能力が極めて限定的であり、構文エラーの検出もほぼ不可能ですが、アルゴリズム的に効率的で、後方解析と同様に前方解析も行えるという利点があります。実際には、これによりSMIEは後方解析に基づくインデント処理に利用でき、forward-sexpとbackward-sexpの両方の機能を提供できるほか、特別な工夫をせずとも構文的に誤ったコードに対しても自然に動作します。欠点は、ほとんどのプログラミング言語をSMIEで正しく解析できないことであり、少なくとも何らかの特殊な手法を用いない限りは不可能です(Living With a Weak Parserを参照)。