Next: , Previous: Syntax Descriptors, Up: Syntax Tables


34.3 構文テーブル向け関数

本節では、構文テーブルを作成/参照/変更するための関数について述べます。

— Function: make-syntax-table

この関数は、新たな構文テーブルを作成する。 英文字やコントロール文字の構文は標準の構文テーブルから継承する。 他の文字の構文は標準の構文テーブルからコピーする。

ほとんどのメジャーモードの構文テーブルはこのように作成する。

— Function: copy-syntax-table &optional table

この関数は、構文テーブルtableのコピーを作成しそれを返す。 tableを指定しないと(あるいはnil)、 現在の構文テーブルのコピーを返す。 tableが構文テーブルでないとエラーを通知する。

— コマンド: modify-syntax-entry char syntax-descriptor &optional 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
— Function: char-syntax character

この関数は、文字characterの構文クラスを指定子で表したもので返す。 これは構文クラスのみを返し、釣り合う文字や構文フラグは返さない。

charが文字でないとエラーを通知する。

つぎの例はCモードにあてはまる。 最初の例は、空白の構文クラスが(空白で表現される)白文字であることを示す。 2番目の例は、‘/’の構文が句読点であることを示す。 これは、この文字がコメント開始/終了の一部分でもあることは示さない。 3番目の例は、開き括弧は開き括弧クラスであることを示す。 これは、この文字に釣り合う文字が‘)’であることは示さない。

          (string (char-syntax ?\ ))
               ⇒ " "
          
          (string (char-syntax ?/))
               ⇒ "."
          
          (string (char-syntax ?\())
               ⇒ "("

ここでは、char-syntaxが返す文字を 見やすくするためにstringを用いた。

— Function: set-syntax-table table

この関数は、tableをカレントバッファの構文テーブルにする。 tableを返す。

— Function: syntax-table

この関数は、現在の構文テーブル、つまり、 カレントバッファの構文テーブルを返す。