Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OpenBSD-3.6)
Apropos / Subsearch:
optional field

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
                          lexical level
     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-
     guage entry:

     :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

     ()      Grouping.

     |       Alternation.

     ?       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
     lower case.

     /usr/share/misc/vgrindefs  file containing terminal descriptions

     troff(1), vgrind(1)

     The vgrindefs file format appeared in 4.2BSD.

OpenBSD 3.6                      June 6, 1993                                2