unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Page:
Section:
Apropos / Subsearch:
optional field

vgrindefs(5)          Standards, Environments, and Macros         vgrindefs(5)



NAME
       vgrindefs - vgrind's language definition data base

SYNOPSIS
       /usr/lib/vgrindefs

DESCRIPTION
       vgrindefs  contains  all language definitions for vgrind(1).  Capabili-
       ties in vgrindefs are of two types: Boolean capabilities which indicate
       that  the  language has some particular feature and string capabilities
       which give a regular expression 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.


       tab() allbox; lw(0.597222i)| lw(0.638889i)|  lw(4.263889i).   NameType-
       Description  abstrT{  Regular  expression for the start of an alternate
       form comment T} aestrT{ Regular expression for the end of an  alternate
       form  comment T} bbstrT{ Regular expression for the start of a block T}
       bestrT{ Regular expression for the end of a lexical  block  T}  cbstrT{
       Regular  expression  for  the  start  of  a  comment T} cestrT{ Regular
       expression for the end of a comment T} idstrT{ String giving characters
       other  than  letters  and  digits that may legally occur in identifiers
       (default `_') T} kwstrT{ A list of  keywords  separated  by  spaces  T}
       lbstrT{  Regular  expression  for  the start of a character constant T}
       lestrT{ Regular expression for the  end  of  a  character  constant  T}
       ocboolT{  Present  means upper and lower case are equivalent T} pbstrT{
       Regular expression for start of a procedure T} plboolT{ Procedure defi-
       nitions  are constrained to the lexical level matched by the `px' capa-
       bility T} pxstrT{ A match for this regular  expression  indicates  that
       procedure  definitions  may occur at the next lexical level. Useful for
       lisp-like languages in which procedure definitions occur as  subexpres-
       sions  of  defuns.   T}  sbstrT{  Regular expression for the start of a
       string T} sestrT{ Regular expression for the end of a string T} tcstrT{
       Use  the  named entry as a continuation of this one T} tlboolT{ Present
       means procedures are only defined at the top lexical level T}


   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  delim-
                       iter 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, indicating 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 typical 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)



SunOS 5.10                        10 Aug 1994                     vgrindefs(5)