次: Syntax Descriptors, 前: Syntax Tables, 上: Syntax Tables
構文テーブルは文字テーブル(see Char-Tables)です。 cで添字付けられる要素は、コードがcである文字について記述します。 要素の値は、当該文字の構文上の機能を符号化したリストです。
構文テーブルは、テキスト内を動き回るためにのみ使われ、 EmacsのLispリーダはこれを使いません。 Emacs LispがLisp式を読むときには、組み込みの構文規則を使います。 (入力構文を再定義する方法を与えるLispシステムもあるが、 単純であるようにEacs Lispではこの機能を省くことにした。)
各バッファには独自のメジャーモードがあり、 各メジャーモードはさまざまな文字の構文クラスを独自に扱います。 たとえば、lispモードでは文字`;'はコメントを始めますが、 Cモードでは文を終らせます。 このような多様性を扱うために、 Emacsは各バッファごとにローカルな構文テーブルを選びます。 典型的には、各メジャーモードに独自の構文テーブルがあり、 そのモードを使っているバッファに当該構文テーブルをインストールします。 この構文テーブルを変更すると、 同じモードのバッファだけでなく将来そのモードになったバッファでも 構文を変更してしまいます。 類似したモードでは1つの構文テーブルを共有することがあります。 構文テーブルの設定方法の例については、See Example Major Modes。
構文テーブルでは、標準の構文テーブルから文字のデータを継承し、 一方でその他の文字に独自の指定を行えます。 構文クラスの『継承』とは、 『標準の構文テーブルから当該文字の構文を引き継ぐ』ことです。 ある文字に対して標準の構文を変更すると、 それを継承するすべての構文テーブルに影響します。