| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
m4は入力を読み込むと、それをトークン(token)に分割します。
トークン(token)は名前(name)、クォートされた文字列(quoted string)、
それらの構成要素にはならない単独の文字のどれか1つの種類に属します。
また、m4への入力にはコメントを含めることができます。
| 2.1 入力トークン: マクロ名 | ||
| 2.2 入力トークン: クォートされた文字列 | ||
| 2.3 入力トークン: その他 | ||
| 2.4 コメント | m4への入力中のコメント |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
名前(name)はアルファベット、数字、_(アンダースコア) を自由に並べたもののうち、先頭の文字が数字でないものです。 名前にマクロの定義が存在するときは、マクロの呼び出しとして認識され、 展開の対象となります(see section 3. マクロを呼び出す方法)。
正しい名前(name)の例を挙げると`foo', `_tmp', `name01'などがあります。
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
クォートされた文字列(quoted string)は、 引用符`と'に囲まれた文字列のうち、 文字列の内部で開始引用符`と終了引用符'の数が釣り合っているものです。 クォートされた文字列(quoted string)のトークンとしての値は、 いちばん外側にある引用符を一対だけ取った文字列です。 したがって、
`' |
の値は空文字列です。そして、
``quoted'' |
の値は次の文字列になります。
`quoted' |
引用符を表す文字は、組み込みマクロchangequoteを使って、
いつでも替えることができます。
詳細はSee section 7.2 引用符(quote characters)を変更するを参照してください。
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
名前(name)とクォートされた文字列(quoted string)の構成要素にならない 文字はすべて、それ自身で一つのトークンとなります。
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
m4では通常`#'と改行文字で区切られた部分がコメントとなります。
これらコメントデリミタ(comment delimiters)の間にあるすべての文字は
処理の対象とならず無視されます。
しかし、コメントデリミタ(comment delimiters)を含むコメント全体は、
出力へそのまま流されて行きます。
つまりm4においてコメントは破棄されません。
コメントを入れ子にすることはできません。したがって、`#'の後の 最初の改行文字でコメントは終りとなります。 コメント開始文字をクォートすることによって、 コメント開始文字としての働きを抑制できます。
コメントデリミタ(comment delimiters)は組み込みマクロchangecomを
使って、いつでも好きな文字列に変更できます。
詳細はSee section 7.3 コメントデリミタ(comment delimiters)を変更するを参照してください。
| [ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |