diff options
Diffstat (limited to 'usr/src/man/man7/vgrindefs.7')
-rw-r--r-- | usr/src/man/man7/vgrindefs.7 | 255 |
1 files changed, 255 insertions, 0 deletions
diff --git a/usr/src/man/man7/vgrindefs.7 b/usr/src/man/man7/vgrindefs.7 new file mode 100644 index 0000000000..4ec0ee9db7 --- /dev/null +++ b/usr/src/man/man7/vgrindefs.7 @@ -0,0 +1,255 @@ +'\" te +.\" Copyright (c) 1994, Sun Microsystems, Inc. All Rights Reserved. +.\" Copyright (c) 1983 Regents of the University of California. All rights reserved. The Berkeley software License Agreement specifies the terms and conditions for redistribution. +.TH VGRINDEFS 7 "Aug 10, 1994" +.SH NAME +vgrindefs \- vgrind's language definition data base +.SH SYNOPSIS +.LP +.nf +\fB/usr/lib/vgrindefs\fR +.fi + +.SH DESCRIPTION +.sp +.LP +\fBvgrindefs\fR contains all language definitions for \fBvgrind\fR(1). +Capabilities in \fBvgrindefs\fR 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 \e as the last character of a line. Lines starting +with # are comments. +.SS "Capabilities" +.sp +.LP +The following table names and describes each capability. +.sp + +.sp +.TS +box; +c | c | c +l | l | l . +Name Type Description +_ +\fBab\fR \fBstr\fR T{ +Regular expression for the start of an alternate form comment +T} +_ +\fBae\fR \fBstr\fR T{ +Regular expression for the end of an alternate form comment +T} +_ +\fBbb\fR \fBstr\fR T{ +Regular expression for the start of a block +T} +_ +\fBbe\fR \fBstr\fR T{ +Regular expression for the end of a lexical block +T} +_ +\fBcb\fR \fBstr\fR T{ +Regular expression for the start of a comment +T} +_ +\fBce\fR \fBstr\fR T{ +Regular expression for the end of a comment +T} +_ +\fBid\fR \fBstr\fR T{ +String giving characters other than letters and digits that may legally occur in identifiers (default `_') +T} +_ +\fBkw\fR \fBstr\fR A list of keywords separated by spaces +_ +\fBlb\fR \fBstr\fR T{ +Regular expression for the start of a character constant +T} +_ +\fBle\fR \fBstr\fR T{ +Regular expression for the end of a character constant +T} +_ +\fBoc\fR \fBbool\fR T{ +Present means upper and lower case are equivalent +T} +_ +\fBpb\fR \fBstr\fR T{ +Regular expression for start of a procedure +T} +_ +\fBpl\fR \fBbool\fR T{ +Procedure definitions are constrained to the lexical level matched by the `px' capability +T} +_ +\fBpx\fR \fBstr\fR T{ +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 subexpressions of defuns. +T} +_ +\fBsb\fR \fBstr\fR T{ +Regular expression for the start of a string +T} +_ +\fBse\fR \fBstr\fR T{ +Regular expression for the end of a string +T} +_ +\fBtc\fR \fBstr\fR T{ +Use the named entry as a continuation of this one +T} +_ +\fBtl\fR \fBbool\fR T{ +Present means procedures are only defined at the top lexical level +T} +.TE + +.SS "Regular Expressions" +.sp +.LP +\fBvgrindefs\fR uses regular expressions similar to those of \fBex\fR(1) and +\fBlex\fR(1). The characters `^', `$', `:', and `\e' are reserved characters +and must be `quoted' with a preceding \e if they are to be included as normal +characters. The metasymbols and their meanings are: +.sp +.ne 2 +.na +\fB\fB$\fR\fR +.ad +.RS 7n +The end of a line +.RE + +.sp +.ne 2 +.na +\fB\fB^\fR\fR +.ad +.RS 7n +The beginning of a line +.RE + +.sp +.ne 2 +.na +\fB\fB\ed\fR\fR +.ad +.RS 7n +A delimiter (space, tab, newline, start of line) +.RE + +.sp +.ne 2 +.na +\fB\fB\ea\fR\fR +.ad +.RS 7n +Matches any string of symbols (like `.*' in lex) +.RE + +.sp +.ne 2 +.na +\fB\fB\ep\fR\fR +.ad +.RS 7n +Matches any identifier. In a procedure definition (the `pb' capability) the +string that matches this symbol is used as the procedure name. +.RE + +.sp +.ne 2 +.na +\fB\fB()\fR\fR +.ad +.RS 7n +Grouping +.RE + +.sp +.ne 2 +.na +\fB\fB|\fR\fR +.ad +.RS 7n +Alternation +.RE + +.sp +.ne 2 +.na +\fB\fB?\fR\fR +.ad +.RS 7n +Last item is optional +.RE + +.sp +.ne 2 +.na +\fB\fB\ee\fR\fR +.ad +.RS 7n +Preceding any string means that the string will not match an input string if +the input string is preceded by an escape character (\e). This is typically +used for languages (like C) that can include the string delimiter in a string +by escaping it. +.RE + +.sp +.LP +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, \fBvgrindef\fR alternation binds very tightly. Grouping +parentheses are likely to be necessary in expressions involving alternation. +.SS "Keyword List" +.sp +.LP +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. +.SH EXAMPLES +.LP +\fBExample 1 \fRA sample program. +.sp +.LP +The following entry, which describes the C language, is typical of a language +entry. + +.sp +.in +2 +.nf +C|c|the C programming language:\e + :pb=^\ed?*?\ed?\ep\ed?(\ea?\e)(\ed|{):bb={:be=}:cb=/*:ce=*/:sb=":se=\ee":\e + :le=\ee':tl:\e + :kw=asm auto break case char continue default do double else enum\e + extern float for fortran goto if int long register return short\e + sizeof static struct switch typedef union unsigned void while #define\e + #else #endif #if #ifdef #ifndef #include #undef # define endif\e + ifdef ifndef include undef defined: +.fi +.in -2 +.sp + +.sp +.LP +Note that the first field is just the language name (and any variants of it). +Thus the C language could be specified to \fBvgrind\fR(1) as `c' or `C'. + +.SH FILES +.sp +.ne 2 +.na +\fB\fB/usr/lib/vgrindefs\fR\fR +.ad +.RS 22n +file containing vgrind descriptions +.RE + +.SH SEE ALSO +.sp +.LP +.BR ex (1), +.BR lex (1), +.BR troff (1), +.BR vgrind (1) |