VGRINDEFS(5) — NEWS-OS Programmer’s Manual
名称
vgrindefs − vgrind の言語定義データベース
形式
/usr/lib/vgrindefs
解説
vgrindefs は、vgrind のためのすべての言語定義を含んでいます。このデータベースは、 termcap(5) に非常に類似しています。
フィールド
次の表は、各フィールドの名前および解説を示します。
名前タイプ解説
pbstrプロシージャ開始の正規表現
bbstr構文ブロック開始の正規表現
bestr構文ブロック終了の正規表現
cbstrコメント開始の正規表現
cestrコメント終了の正規表現
sbstr文字列開始の正規表現
sestr文字列終了の正規表現
lbstr文字定数開始の正規表現
lestr文字定数終了の正規表現
tlboolこれが存在する場合、プロシージャがトップレベル
でのみ定義されていることを意味する
ocboolこれが存在する場合、大文字も小文字も同等となる
kwstr空白で区切られたキーワードのリスト
例
C 言語を記述する次のようなエントリは、言語エントリの典型的なものです。
C|c::pb=^\d?∗?\d?\p\d??):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 言語は vgrind(1) によって “c” または “C” として指定され得ることになります。
エントリは、行の最後の文字として \ を使うことにより、複数行に わたって続けることができます。 vgrindefs 中の機能には、2つのタイプがあります。ブール(bool)機能は、 その言語がある特定の機能を有することを表します。 また文字列(str)機能は、正規表現またはキーワードリストを与えるものです。
正規表現
vgrindefs は、 ex(1) や lex(1) と非常によく似た正規表現を用います。文字 ^ 、 $ 、 : 、 および \ は予約文字です。これらの文字を通常の文字として含 める場合には、\ を前置しなければなりま せん。これらのメタシンボルとその意味は、次のとおりです。
$行の最後
^行の最初
\dデリミタ(空白、タブ、改行、行の始まり)
\a任意のシンボル文字列にマッチ(lex における .∗ のように)
\p任意の英数字にマッチ。プロシージャ定義(pb)中でこのシンボル にマッチする文字列は、プロシージャ名として使用される
()グループ化
|どちらか一方
?直前の項目がオプション
\e先行する任意の文字列。この文字列は、エスケープ文字(\)で先 行される入力文字にはマッチしない。これは、文字列デリミタをエ スケープする文字列 b 内に、文字列デリミタを含ませることのでき る(C のような)言語のために、よく用いられる
システム中の他の正規表現とは違い、これらは、文字ではなくワー ドにマッチします。従って、“(tramp|steamer)flies?” のような 例では、 “tramp”、 “steamer”、 “trampflies”、 “steamerflies” にマッチすることになります。
キーワードリスト
キーワードリストは、空白で区切られた、言語中のキーワードのリ ストです。“oc” フラグが指定されると、大文字および小文字が同 等であることになり、したがってすべてのキーワードは小文字で指 定されなければなりません。
関連ファイル
/usr/lib/vgrindefs端末記述を含んでいるファイル
関連事項
著者
Dave Presotto
NEWS-OSRelease 4.1C