VGRINDEFS(5) OpenBSD Programmer's Manual VGRINDEFS(5)
vgrindefs - language definition database for vgrind(1)
The vgrindefs file contains all the language definitions for vgrind(1).
The database is very similar to termcap(5).
The following table names and describes each field:
Name Type Description
pb str regular expression for start of a procedure
bb str regular expression for start of a lexical block
be str regular expression for the end of a lexical block
cb str regular expression for the start of a comment
ce str regular expression for the end of a comment
sb str regular expression for the start of a string
se str regular expression for the end of a string
lb str regular expression for the start of a character
le str regular expression for the end of a character
tl bool present means procedures are only defined at the top
oc bool present means upper and lower case are equivalent
kw str a list of keywords separated by spaces
The following entry, which describes the C language, is typical of a lan-
: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:
Note that the first field is just the language name (and any variants of
it). Thus the C language could be specified to vgrind(1) as "c" or "C".
Entries may continue onto multiple lines by giving a \ as the last char-
acter of a line. Capabilities in vgrindefs are of two types: Boolean ca-
pabilities which indicate that the language has some particular feature
and string capabilities which give a regular expression or keyword list.
vgrindefs uses regular expressions which are very similar to those of
ex(1) and lex(1). The characters `^', `$', `:', and `\' are reserved
characters and must be ``quoted'' with a preceding `\' if they are to be
included as normal characters. The metasymbols and their meanings are:
$ End of a line.
^ Beginning of a line.
\d A delimiter (space, tab, newline, start of line).
\a Matches any string of symbols (like .* in lex).
\p Matches any alphanumeric name. In a procedure definition (pb)
the string that matches this symbol is used as the procedure
? Last item is optional.
\e Preceding any string means that the string will not match an in-
put string if the input string is preceded by an escape character
(\). This is typically used for languages (like C) which can in-
clude the string delimiter in a string by escaping it.
Unlike other regular expressions in the system, these match words and not
characters. Hence something like ``(tramp|steamer)flies?'' would match
``tramp'', ``steamer'', ``trampflies'', or ``steamerflies''.
The keyword list is just a list of keywords in the language separated by
spaces. If the ``oc'' boolean is specified, indicating that upper and
lower case are equivalent, then all the keywords should be specified in
/usr/share/misc/vgrindefs file containing terminal descriptions
The vgrindefs file format appeared in 4.2BSD.
OpenBSD 3.6 June 6, 1993 2