|
|
1.1 ! root 1: /* Definitions for data structures callers pass the regex library. ! 2: Copyright (C) 1985 Richard M. Stallman ! 3: ! 4: This program is distributed in the hope that it will be useful, ! 5: but without any warranty. No author or distributor ! 6: accepts responsibility to anyone for the consequences of using it ! 7: or for whether it serves any particular purpose or works at all, ! 8: unless he says so in writing. ! 9: ! 10: Permission is granted to anyone to distribute verbatim copies ! 11: of this program's source code as received, in any medium, provided that ! 12: the copyright notice, the nonwarraty notice above ! 13: and this permission notice are preserved, ! 14: and that the distributor grants the recipient all rights ! 15: for further redistribution as permitted by this notice, ! 16: and informs him of these rights. ! 17: ! 18: Permission is granted to distribute modified versions of this ! 19: program's source code, or of portions of it, under the above ! 20: conditions, plus the conditions that all changed files carry ! 21: prominent notices stating who last changed them and that the ! 22: derived material, including anything packaged together with it and ! 23: conceptually functioning as a modification of it rather than an ! 24: application of it, is in its entirety subject to a permission ! 25: notice identical to this one. ! 26: ! 27: Permission is granted to distribute this program (verbatim or ! 28: as modified) in compiled or executable form, provided verbatim ! 29: redistribution is permitted as stated above for source code, and ! 30: A. it is accompanied by the corresponding machine-readable ! 31: source code, under the above conditions, or ! 32: B. it is accompanied by a written offer, with no time limit, ! 33: to distribute the corresponding machine-readable source code, ! 34: under the above conditions, to any one, in return for reimbursement ! 35: of the cost of distribution. Verbatim redistribution of the ! 36: written offer must be permitted. Or, ! 37: C. it is distributed by someone who received only the ! 38: compiled or executable form, and is accompanied by a copy of the ! 39: written offer of source code which he received along with it. ! 40: ! 41: Permission is granted to distribute this program (verbatim or as modified) ! 42: in executable form as part of a larger system provided that the source ! 43: code for this program, including any modifications used, ! 44: is also distributed or offered as stated in the preceding paragraph. ! 45: ! 46: In other words, you are welcome to use, share and improve this program. ! 47: You are forbidden to forbid anyone else to use, share and improve ! 48: what you give them. Help stamp out software-hoarding! */ ! 49: ! 50: ! 51: #ifndef RE_NREGS ! 52: #define RE_NREGS 10 ! 53: #endif ! 54: ! 55: /* This data structure is used to represent a compiled pattern. */ ! 56: ! 57: struct re_pattern_buffer ! 58: { ! 59: char *buffer; /* Space holding the compiled pattern commands. */ ! 60: int allocated; /* Size of space that buffer points to */ ! 61: int used; /* Length of portion of buffer actually occupied */ ! 62: char *fastmap; /* Pointer to fastmap, if any, or zero if none. */ ! 63: /* re_search uses the fastmap, if there is one, ! 64: to skip quickly over totally implausible characters */ ! 65: char *translate; /* Translate table to apply to all characters before comparing. ! 66: Or zero for no translation. ! 67: The translation is applied to a pattern when it is compiled ! 68: and to data when it is matched. */ ! 69: char fastmap_accurate; ! 70: /* Set to zero when a new pattern is stored, ! 71: set to one when the fastmap is updated from it. */ ! 72: char can_be_null; /* Set to one by compiling fastmap ! 73: if this pattern might match the null string. ! 74: It does not necessarily match the null string ! 75: in that case, but if this is zero, it cannot. */ ! 76: }; ! 77: ! 78: /* Structure to store "register" contents data in. ! 79: ! 80: Pass the address of such a structure as an argument to re_match, etc., ! 81: if you want this information back. ! 82: ! 83: start[i] and end[i] record the string matched by \( ... \) grouping i, ! 84: for i from 1 to RE_NREGS - 1. ! 85: start[0] and end[0] record the entire string matched. */ ! 86: ! 87: struct re_registers ! 88: { ! 89: int start[RE_NREGS]; ! 90: int end[RE_NREGS]; ! 91: }; ! 92: ! 93: char *re_compile_pattern ();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.