vgrindefs(5)




NAME

     vgrindefs - vgrind's language definition data base


SYNOPSIS

     /usr/lib/vgrindefs


DESCRIPTION

     vgrindefs contains all language definitions  for  vgrind(1).
     Capabilities in vgrindefs are of two types: Boolean capabil-
     ities which indicate that the language has  some  particular
     feature and string capabilities which give a regular expres-
     sion or keyword list. Entries  may  continue  onto  multiple
     lines  by  giving a \ as the last character of a line. Lines
     starting with # are comments.

  Capabilities
     The following table names and describes each capability.

     _______________________________________________________________
      Name     Type     Description
     _______________________________________________________________
      ab       str      Regular expression  for  the  start  of  an
                        alternate form comment
     _______________________________________________________________
      ae       str      Regular expression for the end of an alter-
                        nate form comment
     _______________________________________________________________
      bb       str      Regular expression for the start of a block
     _______________________________________________________________
      be       str      Regular expression for the end of a lexical
                        block
     _______________________________________________________________
      cb       str      Regular expression for the start of a  com-
                        ment
     _______________________________________________________________
      ce       str      Regular expression for the end of a comment
     _______________________________________________________________
      id       str      String giving characters other than letters
                        and  digits that may legally occur in iden-
                        tifiers (default `_')
     _______________________________________________________________
      kw       str      A list of keywords separated by spaces
     _______________________________________________________________
      lb       str      Regular expression for the start of a char-
                        acter constant
     _______________________________________________________________
      le       str      Regular expression for the end of a charac-
                        ter constant
     _______________________________________________________________
      oc       bool     Present means  upper  and  lower  case  are
                        equivalent
     _______________________________________________________________
      pb       str      Regular expression for start of a procedure
     _______________________________________________________________
      pl       bool     Procedure definitions  are  constrained  to
                        the lexical level matched by the `px' capa-
                        bility
     _______________________________________________________________
      px       str      A match for this regular  expression  indi-
                        cates  that procedure definitions may occur
                        at  the  next  lexical  level.  Useful  for
                        lisp-like   languages  in  which  procedure
                        definitions  occur  as  subexpressions   of
                        defuns.
     _______________________________________________________________
      sb       str      Regular  expression  for  the  start  of  a
                        string
     _______________________________________________________________
      se       str      Regular expression for the end of a string

     _______________________________________________________________
    | tc    |  str    | Use the named entry as  a  continuation  of|
    |       |         | this one                                   |
    |_______|_________|____________________________________________|
    | tl    |  bool   | Present means procedures are  only  defined|
    |       |         | at the top lexical level                   |
    |_______|_________|____________________________________________|

  Regular Expressions
     vgrindefs uses regular expressions 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 identifier. In a procedure definition (the
           `pb'  capability)  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 character (\).  This  is  typically  used
           for  languages  (like  C)  that can include 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'.  Contrary to some forms of
     regular  expressions,  vgrindef   alternation   binds   very
     tightly.  Grouping parentheses are likely to be necessary in
     expressions involving alternation.

  Keyword List
     The keyword list is just a list of keywords in the  language
     separated by spaces. If the `oc' boolean is specified, indi-
     cating that upper and lower case are  equivalent,  then  all
     the keywords should be specified in lower case.


EXAMPLES

     Example 1: A sample program.

     The following entry, which describes the C language, is typ-
     ical of a language entry.

          C|c|the C programming language:\
              :pb=^\d?*?\d?\p\d?(\a?\)(\d|{):bb={:be=}:cb=/*:ce=*/:sb=":se=\e":\
              :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 void while #define\
              #else #endif #if #ifdef #ifndef #include #undef # define endif\
              ifdef ifndef include undef defined:

     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'.


FILES

     /usr/lib/vgrindefs
           file containing vgrind descriptions


SEE ALSO

     ex(1), lex(1), troff(1), vgrind(1)


Man(1) output converted with man2html