スポンサーリンク

VGRINDEFS(5) FreeBSD ファイルフォーマットマニュアル VGRINDEFS(5)

名称

vgrindefsvgrind(1) のための言語定義データベース

書式

vgrindefs

解説

vgrindefs ファイルは vgrind(1) が用いるすべての言語定義を含んでいます。こ のデータベースは termcap(5) に非常によく類似しています。

フィールド

以下の表は、各フィールドの名称と意味を解説しています。

名称 型 解説
ab 文字列 代替コメントの始まりを示す正規表現
ae 文字列 代替コメントの終りを示す正規表現
pb 文字列 手続きの始まりを示す正規表現
bb 文字列 字句的ブロックの始まりを示す正規表現
be 文字列 字句的ブロックの終りを示す正規表現
cb 文字列 コメントの始まりを示す正規表現
ce 文字列 コメントの終りを示す正規表現
sb 文字列 文字列の始まりを示す正規表現
se 文字列 文字列の終りを示す正規表現
lb 文字列 文字列定数の始まりを示す正規表現
le 文字列 文字列定数の終りを示す正規表現
nc 文字列 非コメントを示す正規表現 (下記参照)
tl bool 指定した場合、字句上のトップレベル以外では手続きが定 義されないことを意味する
oc bool 指定した場合、大文字と小文字が等価であることを意味す る
kw 文字列 スペースで区切られたキーワードのリスト

非コメントは、通常はコメントの始まりを示すシーケンスがその特殊な意味を失 うような特別な状況を記述するのに必要です。この典型的な実例は、 Perl にお いて、通常コメントを ‘#’ で始めるのに対し、文字列 ‘$#’ が配列に対するオペ レータである例に見ることができます。

使用例

以下のエントリは C 言語を記述するもので、言語エントリの典型例です。

C|c::pb=^\d?*?\d?\p\d?\(\a?\):bb={:be=}:cb=/*:ce=*/:sb=":se=\e":\
:lb=’:le=\e’:tl:\
:kw=asm auto break case char continue default do double else enum\
extern float for fortran goto if int long register return short\
sizeof static struct switch typedef union unsigned while #define\
#else #endif #if #ifdef #ifndef #include #undef # define else endif\
if ifdef ifndef include undef:

最初のフィールドは単に言語名 (とそのすべての変種) を示すに過ぎないことに 注意して下さい。この場合、C言語は "c" か "C" という名前で vgrind(1) に指 定することができます。

行の最後の文字として \ を与えることにより、エントリは複数行に続けることが できます。 vgrindefs のケーパビリティは 2 つの型に分かれます。すなわち、 言語に特定の機能が備わっていることを示すブール型のケーパビリティと、正規 表現またはキーワードのリストを示す文字列のケーパビリティです。

正規表現

vgrindefsex(1)lex(1) の正規表現に非常によく似たものを用います。文 字 ‘^’, ‘$’, ‘:’ および ‘\’ は予約された文字なので、これらが通常の文字と して含まれる場合は ‘\’ を直前に置くことによって "クォート" しなければなり ません。メタシンボルとそれらの意味は、以下のとおりです。

       $

行末

^
行頭

\d
デリミタ (スペース、タブ、改行、行の始まり)

\a
シンボルからなるすべての文字列にマッチする (lex での .* と同じ)

\p
すべての英数字からなる名前にマッチする。手続き定義の内部 (pb) で はこのシンボルにマッチする文字列が手続きの名前として用いられま す。

()
グループ化

|
選択

?
直前の項目が省略可能である

\e
文字列の前に置くことにより、その文字列と、先頭がエスケープ文字 (\) である入力文字列とはマッチしなくなります。文字列デリミタをエ スケープすることにより文字列中に含むことが可能な (C のような) 言 語で使用されるのが、典型的な使用法です。

その他のシステム内の正規表現と異なり、これらは文字単位ではなく単語単位で マッチします。ですから、 "(tramp|steamer)flies?" のような場合は "tramp", "steamer", "trampflies", または "steamerflies" にマッチします。

キーワードリスト

キーワードリストは言語におけるキーワードをスペースで区切って単純に列挙し たものです。もし "oc" ブール値フラグが指定されていれば、これは大文字と小 文字が等価であることを示すので、すべてのキーワードは小文字で指定するべき です。

関連ファイル

       /usr/share/misc/vgrindefs

端末記述を含むファイル

関連項目

troff(1), vgrind(1)

歴史

vgrindefs ファイルフォーマットは 4.2BSD で登場しました。

FreeBSD 10.0 June 6, 1993 FreeBSD 10.0

スポンサーリンク