vgrindefs(5)
NAME
vgrindefs - language definition data base for vgrind(1)
SYNOPSIS
vgrindefs
DESCRIPTION
- The vgrindefs file contains all language definitions for
- vgrind(1). The
data base is very similar to termcap(5).
FIELDS
The following table names and describes each field.
- Name Type Description
ab str regular expression for the start of an - alternate
- comment
- ae str regular expression for the end of an
- alternate
- comment
- pb str regular expression for start of a pro
- cedure
bb str regular expression for start of a lexi - cal 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
- constant
- le str regular expression for the end of a
- character
- constant
- nc str regular expression for a non-comment
- (see below)
tl bool present means procedures are only de - fined at the top
- lexical level
- oc bool present means upper and lower case are
- equivalent
kw str a list of keywords separated by spaces - Non-comments are required to describe a certain context
- where a sequence
that would normally start a comment loses its special mean - ing. A typical
example for this can be found in Perl, where comments are - normally starting with `#', while the string `$#' is an operator on an ar
- ray.
REGULAR EXPRESSIONS
- Vgrindefs uses regular expression 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:
- $ the end of a line
- ^ the beginning of a line
a delimiter (space, tab, newline, start of line)- matches any string of symbols (like .* in lex)
- matches any alphanumeric name. In a procedure definition (pb)
- the string that matches this symbol is used as the
- procedure
name. - () grouping
- | alternation
- ? last item is optional
preceding any string means that the string will not- match an
input string if the input string is preceded by anescape character (. This is typically used for languages (likeC) which can
include the string delimiter in a string by escapingit. - 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".
KEYWORD LIST
- 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
lower case.
FILES
- /usr/share/misc/vgrindefs File containing terminal descrip
- tions.
EXAMPLES
- The following entry, which describes the C language, is typ
- ical of a language entry.
- C|c::pb=^?*????:bb={:be=}:cb=/*:ce=*/:sb=":se=
- :lb=':le=':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:
- 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 character of a line. Capabilities in vgrindefs are of two
- types: Boolean
capabilities which indicate that the language has some par - ticular feature
and string capabilities which give a regular expression or - keyword list.
SEE ALSO
HISTORY
- The vgrindefs file format appeared in 4.2BSD.
- BSD June 6, 1993