Up: Auto-Indentation [Contents][Index]
SMIEは、一般的な操作とインデントを提供するエンジンです。これは“演算子順位文法(operator precedence grammar)”を使用する、非常にシンプルなパーサーにもとづいたエンジンであり、メジャーモードがLispのS式ベースの操作を非Lisp言語に拡張するのを助け、同様にシンプルに使用できるにも関わらず、信頼できる自動インデントを提供します。
演算子順位文法はコンパイラー内で使用されるより一般的なパーサーと比較すると非常に原始的なパーステクノロジーです。このパーサーには次のような特徴があります。このパーサーのパース能力は非常に限定的で構文エラーを大概は検出できません。しかしアルゴリズム的に前方パースと同様に後方パースを効果的に行うことが可能です。実際にそれはSMIEが後方パースにもとづくインデントを使用でき、forward-sexp
とbackward-sexp
の両方の機能を提供できるとともに、特別な努力を要さずに構文的に不正なコードにたいして自然に機能するであろうことを意味します。欠点はほとんどのプログラミング言語は、少なくとも何らかの特別なトリック(SMIE Tricksを参照)で再分類しなければSMIEを使用して正しくパースできないことをも意味することです。
• SMIE setup: | SMIEのセットアップと機能。 | |
• Operator Precedence Grammars: | 非常にシンプルなパース技術。 | |
• SMIE Grammar: | 言語の文法を定義する。 | |
• SMIE Lexer: | トークンの定義。 | |
• SMIE Tricks: | パーサー制限の回避策。 | |
• SMIE Indentation: | インデントルールの指定。 | |
• SMIE Indentation Helpers: | インデントルールにたいするヘルパー関数。 | |
• SMIE Indentation Example: | インデントルールの例。 | |
• SMIE Customization: | インデントのカスタマイズ。 |