unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (4.2BSD)
Page:
Section:
Apropos / Subsearch:
optional field

VGRINDEFS(5)                  File Formats Manual                 VGRINDEFS(5)



NAME
       vgrindefs - vgrind's language definition data base

SYNOPSIS
       /usr/lib/vgrindefs

DESCRIPTION
       Vgrindefs  contains all language definitions for vgrind.  The data base
       is very similar to termcap(5).

FIELDS
       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 constant
       le     str   regular expression for the end of a character constant
       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

       Example

       The following entry, which describes the C language, is  typical  of  a
       language entry.

       C|c:   :pb=^\d?*?\d?\p\d?a?: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:

       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: Bool-
       ean  capabilities  which indicate that the language has some particular
       feature and string capabilities which give a regular expression or key-
       word list.

       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

       \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
              name.

       ()     grouping

       |      alternation

       ?      last item is optional

       \e     preceding any string means that the string  will  not  match  an
              input  string if the input string is preceded by an escape char-
              acter (\).  This is typically used for languages (like C)  which
              can include the string delimiter in a string b 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".

       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/lib/vgrindefs  file containing terminal descriptions

SEE ALSO
       vgrind(1), troff(1)

AUTHOR
       Dave Presotto

BUGS
4th Berkeley Distribution      11 February 1981                   VGRINDEFS(5)