|
|
1.1 ! root 1: .\" Copyright (c) 1989 The Regents of the University of California. ! 2: .\" All rights reserved. ! 3: .\" ! 4: .\" Redistribution and use in source and binary forms are permitted provided ! 5: .\" that: (1) source distributions retain this entire copyright notice and ! 6: .\" comment, and (2) distributions including binaries display the following ! 7: .\" acknowledgement: ``This product includes software developed by the ! 8: .\" University of California, Berkeley and its contributors'' in the ! 9: .\" documentation or other materials provided with the distribution and in ! 10: .\" all advertising materials mentioning features or use of this software. ! 11: .\" Neither the name of the University nor the names of its contributors may ! 12: .\" be used to endorse or promote products derived from this software without ! 13: .\" specific prior written permission. ! 14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED ! 15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF ! 16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 17: .\" ! 18: .\" @(#)vgrindefs.5 6.5 (Berkeley) 6/23/90 ! 19: .\" ! 20: .tr || ! 21: .TH VGRINDEFS 5 "June 23, 1990" ! 22: .UC 5 ! 23: .SH NAME ! 24: vgrindefs \- vgrind's language definition data base ! 25: .SH SYNOPSIS ! 26: .B /usr/share/misc/vgrindefs ! 27: .SH DESCRIPTION ! 28: .I Vgrindefs ! 29: contains all language definitions for vgrind. The data base is ! 30: very similar to ! 31: .IR termcap (5). ! 32: .SH FIELDS ! 33: The following table names and describes each field. ! 34: .PP ! 35: .nf ! 36: .ta \w'k0-k9 'u +\w'Type 'u ! 37: \fBName Type Description\fR ! 38: pb str regular expression for start of a procedure ! 39: bb str regular expression for start of a lexical block ! 40: be str regular expression for the end of a lexical block ! 41: cb str regular expression for the start of a comment ! 42: ce str regular expression for the end of a comment ! 43: sb str regular expression for the start of a string ! 44: se str regular expression for the end of a string ! 45: lb str regular expression for the start of a character constant ! 46: le str regular expression for the end of a character constant ! 47: tl bool present means procedures are only defined at the top ! 48: lexical level ! 49: oc bool present means upper and lower case are equivalent ! 50: kw str a list of keywords separated by spaces ! 51: .fi ! 52: .PP ! 53: .B Example ! 54: .PP ! 55: The following entry, which describes the C language, is ! 56: typical of a language entry. ! 57: .PP ! 58: .nf ! 59: C|c:\ ! 60: :pb=^\ed?*?\ed?\ep\ed?\(\ea?\):bb={:be=}:cb=/*:ce=*/:sb=":se=\ee":\e ! 61: :lb=':le=\ee':tl:\e ! 62: :kw=asm auto break case char continue default do double else enum\e ! 63: extern float for fortran goto if int long register return short\e ! 64: sizeof static struct switch typedef union unsigned while #define\e ! 65: #else #endif #if #ifdef #ifndef #include #undef # define else endif\e ! 66: if ifdef ifndef include undef: ! 67: .fi ! 68: .PP ! 69: Note that the first field is just the language name (and any variants ! 70: of it). Thus the C language could be specified to ! 71: .IR vgrind (1) ! 72: as "c" or "C". ! 73: .PP ! 74: Entries may continue onto multiple lines by giving a \e as the last ! 75: character of a line. ! 76: Capabilities in ! 77: .I vgrindefs ! 78: are of two types: ! 79: Boolean capabilities which indicate that the language has ! 80: some particular feature ! 81: and string ! 82: capabilities which give a regular expression or ! 83: keyword list. ! 84: .PP ! 85: .B REGULAR EXPRESSIONS ! 86: .PP ! 87: .I Vgrindefs ! 88: uses regular expression which are very similar to those of ! 89: .IR ex (1) ! 90: and ! 91: .IR lex (1). ! 92: The characters `^', `$', `:' and `\e' ! 93: are reserved characters and must be ! 94: "quoted" with a preceding \e if they ! 95: are to be included as normal characters. ! 96: The metasymbols and their meanings are: ! 97: .IP $ ! 98: the end of a line ! 99: .IP ^ ! 100: the beginning of a line ! 101: .IP \ed ! 102: a delimiter (space, tab, newline, start of line) ! 103: .IP \ea ! 104: matches any string of symbols (like .* in lex) ! 105: .IP \ep ! 106: matches any alphanumeric name. In a procedure definition (pb) the string ! 107: that matches this symbol is used as the procedure name. ! 108: .IP () ! 109: grouping ! 110: .IP | ! 111: alternation ! 112: .IP ? ! 113: last item is optional ! 114: .IP \ee ! 115: preceding any string means that the string will not match an ! 116: input string if the input string is preceded by an escape character (\e). ! 117: This is typically used for languages (like C) which can include the ! 118: string delimiter in a string by escaping it. ! 119: .PP ! 120: Unlike other regular expressions in the system, these match words ! 121: and not characters. Hence something like "(tramp|steamer)flies?" ! 122: would match "tramp", "steamer", "trampflies", or "steamerflies". ! 123: .PP ! 124: .B KEYWORD LIST ! 125: .PP ! 126: The keyword list is just a list of keywords in the language separated ! 127: by spaces. If the "oc" boolean is specified, indicating that upper ! 128: and lower case are equivalent, then all the keywords should be ! 129: specified in lower case. ! 130: .SH FILES ! 131: .DT ! 132: /usr/share/misc/vgrindefs file containing terminal descriptions ! 133: .SH SEE ALSO ! 134: vgrind(1), troff(1) ! 135: .SH AUTHOR ! 136: Dave Presotto ! 137: .SH BUGS
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.