Next: Syntax Properties, Previous: Syntax Descriptors, Up: Syntax Tables
本節では、構文テーブルを作成/参照/変更するための関数について述べます。
この関数は、新たな構文テーブルを作成する。 英文字やコントロール文字の構文は標準の構文テーブルから継承する。 他の文字の構文は標準の構文テーブルからコピーする。
ほとんどのメジャーモードの構文テーブルはこのように作成する。
この関数は、構文テーブルtableのコピーを作成しそれを返す。 tableを指定しないと(あるいは
nil
)、 現在の構文テーブルのコピーを返す。 tableが構文テーブルでないとエラーを通知する。
この関数は、文字charの構文指定を 構文記述子syntax-descriptorとする。 構文テーブルtableにおいてのみ構文を変更し、 他の構文テーブルは変更しない。 tableのデフォルトはカレントバッファの構文テーブルである。 syntax-descriptorで望みの構文を指定する。 これは、クラス指定子で始まり、 必要に応じて釣り合う文字とフラグを含む文字列である。 see Syntax Descriptors。
この関数はつねに
nil
を返す。 当該構文テーブルにおけるこの文字に対する古い構文情報は破棄される。構文記述子の最初の文字が12個の構文クラス指定子の1つでないとエラーを通知する。 charが文字でなくてもエラーを通知する。
【例】
;; 空白文字をクラス白文字にする (modify-syntax-entry ?\ " ") nil ;; ‘$’を開き括弧文字にする ;; 対応する閉じる文字は‘^’である (modify-syntax-entry ?$ "(^") nil ;; ‘^’を閉じ括弧文字にする ;; 対応する開く文字は‘$’である (modify-syntax-entry ?^ ")$") nil ;; ‘/’を句読点文字にする ;; コメント開始列の最初の文字、および、 ;; コメント終了列の2番目の文字にもする ;; これはCモードで用いられる (modify-syntax-entry ?/ ". 14") nil
この関数は、文字characterの構文クラスを指定子で表したもので返す。 これは構文クラスのみを返し、釣り合う文字や構文フラグは返さない。
charが文字でないとエラーを通知する。
つぎの例はCモードにあてはまる。 最初の例は、空白の構文クラスが(空白で表現される)白文字であることを示す。 2番目の例は、‘/’の構文が句読点であることを示す。 これは、この文字がコメント開始/終了の一部分でもあることは示さない。 3番目の例は、開き括弧は開き括弧クラスであることを示す。 これは、この文字に釣り合う文字が‘)’であることは示さない。
(string (char-syntax ?\ )) " " (string (char-syntax ?/)) "." (string (char-syntax ?\()) "("ここでは、
char-syntax
が返す文字を 見やすくするためにstring
を用いた。