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 |
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: Boolean capabilities which indicate that the language has some particular feature and string capabilities which give a regular expression or keyword list.
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".
/usr/share/misc/vgrindefs