以下の一覧は、構文クラス、そのクラスを表す文字(指定子)、 そのクラスの意味、その使用例です。
白文字(‘ ’か‘-’で指定)は、 シンボルや単語を互いに区切る。 典型的には、白文字には他の構文上の意味はなく、 複数個の白文字は1つの白文字と構文的には等価である。 ほとんどすべてのメジャーモードでは、 空白、タブ、改行、ページ送りは白文字である。
単語構成文字(‘w’で指定)は普通の英単語の一部分であり、 典型的には、プログラムの変数やコマンド名に使われる。 すべての大英文字、小英文字、数字文字は、典型的には単語構成文字である。
シンボル構成文字(‘_’で指定)は、 単語構成文字に加えて、変数やコマンド名に使われる追加の文字である。 たとえば、英単語の一部分ではないがシンボル名に使える特定の文字を指定 するために、Lispモードではシンボル構成文字クラスを使う。 このような文字は‘$&*+-_<>’である。 標準のCでは、単語構成文字でなくてシンボルに使える唯一の文字は 下線(‘_’)である。
句読点文字(‘.’で指定)は、 英文の句読点として使われたり、 プログラム言語でシンボルを区切るために使われる文字である。 emacs-lispモードを含むほとんどのプログラム言語向けモードでは、 シンボル構成文字でも単語構成文字でもない少数の文字には別の用途があるため、 このクラスの文字はない。
— 構文クラス: 閉じ括弧文字(close parenthesis character)
開き/閉じ括弧文字は、文や式を囲む相異なる対として使われる文字である。 そのようなグループ化は、開き括弧文字で始まり閉じ括弧文字で終る。 各開き括弧文字は特定の閉じ括弧文字に対応し、その逆もいえる。 Emacsは、通常、閉じ括弧文字を挿入すると 対応する開き括弧文字を短時間指し示す。 see Blinking。
開き括弧文字クラスは‘(’で指定し、 閉じ括弧文字クラスは‘)’で指定する。
英文向けのテキスト(text)モードとCモードでは、 括弧の対は、‘()’、‘[]’、‘{}’である。 Emacs Lispでは、リストとベクトルの区切り(‘()’と‘[]’)は、 括弧文字としてクラス分けされる。
文字列クォート文字(‘"’で指定)は、 LispやCを含む多くの言語で文字列定数を区切るために使われる。 同じ文字列クォート文字が文字列の最初と最後に現れる。
Emacsの構文解析機能では、文字列を1つの字句とみなす。 文字列内の文字の普通の構文的な意味は抑制される。
lisp向けのモードには文字列クォート文字が2つ、 ダブルクォート(‘"’)と縦棒(‘|’)がある。 ‘|’はEmacs Lispでは使わないがCommon Lispで使う。 Cにも2つの文字列クォート文字、 文字列用のダブルクォートと文字定数用のシングルクォート(‘'’)がある。
英文はプログラム言語ではないので、英文には文字列クォート文字はない。 英文でも引用符は用いるが、その内側の文字の普通の構文的な属性を 抑制したくないのである。
エスケープ文字(‘\’で指定)は、 Cの文字列や文字定数で使われるようなエスケープシーケンスを開始する。 CとLispでは、文字‘\’はこのクラスに属する。 (Cではこの文字は文字列の内側だけで使われるが、 Cモードでつねにこのように扱っても問題ないことがわかった。)
words-include-escapes
がnil
以外であると、 このクラスの文字は単語の一部分と解釈される。 see Word Motion。
文字クォート文字(‘/’で指定)は、 後続の1文字をクォートし、通常の構文上の意味を抑制する。 直後の1文字のみに影響するという点で、エスケープ文字と異なる。
words-include-escapes
がnil
以外であると、 このクラスの文字は単語の一部分と解釈される。 see Word Motion。このクラスは、TeXモードのバックスラッシュに使われる。
対になった区切り文字(‘$’)は文字列クォート文字と同様であるが、 区切り文字のあいだにある文字の構文上の属性を抑制しない点が異なる。 現在、対になった区切りはTeXモードのみで使い、 数学モードに出入りする‘$’である。
式前置演算子(‘'’)は、式のまえに現れると 式の一部であるとみなされる構文上の演算子に使われる。 lisp向けのモードでは、(クォートする)アポストロフ‘'’、 (マクロで使う)コンマ‘,’、 (ある種のデータの入力構文に使われる)‘#’の文字がそうである。
コメント開始文字とコメント終了文字は、 さまざまな言語でコメントを区切るために用いられる。 これらのクラスは、それぞれ、‘<’と‘>’で指定する。
英文にはコメント文字はない。 Lispでは、セミコロン(‘;’)でコメントが始まり、 改行かページ送りで終る。
汎用コメント区切り文字は、特別な種類のコメントを 始めて終える文字である。 任意の汎用コメント区切り文字は 任意の汎用コメント区切り文字に対応するが、 普通のコメント開始文字/コメント終了文字には対応しない。 汎用コメント区切り文字同士のみで対応する。
この構文クラスは、主にテキスト属性
syntax-table
(see Syntax Properties)で使うことを意図したものである。 任意の範囲の文字がコメントを形成すると印を付けるには、 その範囲の先頭と末尾の文字にそれらが汎用コメント区切りであることを 識別する属性syntax-table
を与える。
汎用文字列区切り文字は、文字列を始めて終える。 このクラスは文字列クォートクラスと異なり、 汎用文字列区切りは他の汎用文字列区切りに対応し、 普通の文字列クォート文字には対応しない。
この構文クラスは、主にテキスト属性
syntax-table
(see Syntax Properties)で使うことを意図したものである。 任意の範囲の文字が文字列定数を形成すると印を付けるには、 その範囲の先頭と末尾の文字にそれらが汎用文字列区切りであることを 識別する属性syntax-table
を与える。