aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man5/vgrindefs.5
blob: b3266f219f827d07794fa1493e3ce3146c677890 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
.\" Copyright (c) 1989, 1991, 1993
.\"	The Regents of the University of California.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"     @(#)vgrindefs.5	8.1 (Berkeley) 6/6/93
.\" jpman %Id: vgrindefs.5,v 1.3 1998/07/30 15:29:11 horikawa Stab %
.\" WORD: lexical	字句上の(的な)、字句(複合語の場合)
.\" WORD: optional	省略可能な
.\"
.Dd June 6, 1993
.Dt VGRINDEFS 5
.Os BSD 4.2
.Sh 名称
.Nm vgrindefs
.Nd
.Xr vgrind 1
のための言語定義データベース
.Sh 書式
.Nm vgrindefs
.Sh 解説
.Nm vgrindefs
ファイルは
.Xr vgrind 1
が用いるすべての言語定義を含んでいます。
このデータベースは
.Xr termcap 5
に非常によく類似しています。
.Sh フィールド
以下の表は、各フィールドの名称と意味を解説しています。
.Pp
.Bl -column Namexxx Tpexxx
.Sy 名称	型	解説
.It "ab	文字列	代替コメントの始まりを示す正規表現"
.It "ae	文字列	代替コメントの終りを示す正規表現"
.It "pb	文字列	手続きの始まりを示す正規表現"
.It "bb	文字列	字句的ブロックの始まりを示す正規表現"
.It "be	文字列	字句的ブロックの終りを示す正規表現"
.It "cb	文字列	コメントの始まりを示す正規表現"
.It "ce	文字列	コメントの終りを示す正規表現"
.It "sb	文字列	文字列の始まりを示す正規表現"
.It "se	文字列	文字列の終りを示す正規表現"
.It "lb	文字列	文字列定数の始まりを示す正規表現"
.It "le	文字列	文字列定数の終りを示す正規表現"
.It "nc	文字列	非コメントを示す正規表現 (下記参照)"
.It "tl	bool	指定した場合、字句上のトップレベル以外では手続きが定義されないことを意味する"
.It "oc	bool	指定した場合、大文字と小文字が等価であることを意味する"
.It "kw	文字列	スペースで区切られたキーワードのリスト"
.El
.Pp
非コメントは、通常はコメントの始まりを示すシーケンスがその特殊な意味を
失うような特別な状況を記述するのに必要です。この典型的な実例は、 Perl 
において、通常コメントを
.Ql # 
で始めるのに対し、文字列
.Ql $#
が配列に対するオペレータである例に見ることができます。
.Sh 使用例
以下のエントリは C 言語を記述するもので、言語エントリの典型例です。
.Bd -literal
C|c:\
:pb=^\ed?*?\ed?\ep\ed?\e(\ea?\e):bb={:be=}:cb=/*:ce=*/:sb=":se=\ee":\e
:lb=':le=\ee':tl:\e
:kw=asm auto break case char continue default do double else enum\e
extern float for fortran goto if int long register return short\e
sizeof static struct switch typedef union unsigned while #define\e
#else #endif #if #ifdef #ifndef #include #undef # define else endif\e
if ifdef ifndef include undef:
.Ed
.Pp
最初のフィールドは単に言語名 (とそのすべての変種) を示すに過ぎないことに
注意して下さい。この場合、C言語は "c" か "C" という名前で
.Xr vgrind 1
に指定することができます。
.Pp
行の最後の文字として \e を与えることにより、
エントリは複数行に続けることができます。
.Nm vgrindefs
のケーパビリティは 2 つの型に分かれます。すなわち、
言語に特定の機能が備わっていることを示すブール型のケーパビリティと、
正規表現またはキーワードのリストを示す文字列のケーパビリティです。
.Sh 正規表現
.Nm vgrindefs
は
.Xr ex 1
や
.Xr lex 1
の正規表現に非常によく似たものを用います。
文字 `^', `$', `:' および `\e'
は予約された文字なので、これらが通常の文字として含まれる場合は
.Ql \e
を直前に置くことによって "クォート" しなければなりません。
メタシンボルとそれらの意味は、以下のとおりです。
.Bl -tag -width indent
.It $
行末
.It \&^
行頭
.It \ed
デリミタ (スペース、タブ、改行、行の始まり)
.It \ea
シンボルからなるすべての文字列にマッチする (lex での .* と同じ)
.It \ep
すべての英数字からなる名前にマッチする。手続き定義の内部 (pb) では
このシンボルにマッチする文字列が手続きの名前として用いられます。
.It ()
グループ化
.It \&|
選択
.It ?
直前の項目が省略可能である
.It \ee
文字列の前に置くことにより、その文字列と、
先頭がエスケープ文字 (\e) である入力文字列とはマッチしなくなります。
文字列デリミタをエスケープすることにより文字列中に含むことが可能な
(C のような) 言語で使用されるのが、典型的な使用法です。
.El
.Pp
その他のシステム内の正規表現と異なり、これらは文字単位ではなく単語単位で
マッチします。ですから、 "(tramp|steamer)flies?" のような場合は
"tramp", "steamer", "trampflies", または "steamerflies" にマッチします。
.Sh キーワードリスト
キーワードリストは言語におけるキーワードをスペースで区切って単純に
列挙したものです。もし "oc" ブール値フラグが指定されていれば、これは
大文字と小文字が等価であることを示すので、すべてのキーワードは小文字で
指定するべきです。
.Sh 関連ファイル
.Bl -tag -width /usr/share/misc/vgrindefs -compact
.It Pa /usr/share/misc/vgrindefs
端末記述を含むファイル
.El
.Sh 関連項目
.Xr troff 1 ,
.Xr vgrind 1
.Sh 歴史
.Nm
ファイルフォーマットは
.Bx 4.2
で登場しました。