-/* definition number opnd? meaning */
-#define END 0 /* no End of program. */
-#define BOL 1 /* no Match "" at beginning of line. */
-#define MBOL 2 /* no Same, assuming multiline. */
-#define SBOL 3 /* no Same, assuming singleline. */
-#define EOL 4 /* no Match "" at end of line. */
-#define MEOL 5 /* no Same, assuming multiline. */
-#define SEOL 6 /* no Same, assuming singleline. */
-#define ANY 7 /* no Match any one character (except newline). */
-#define SANY 8 /* no Match any one character. */
-#define ANYOF 9 /* sv Match character in (or not in) this class. */
-#define CURLY 10 /* sv Match this simple thing {n,m} times. */
-#define CURLYX 11 /* sv Match this complex thing {n,m} times. */
-#define BRANCH 12 /* node Match this alternative, or the next... */
-#define BACK 13 /* no Match "", "next" ptr points backward. */
-#define EXACTLY 14 /* sv Match this string (preceded by length). */
-#define NOTHING 15 /* no Match empty string. */
-#define STAR 16 /* node Match this (simple) thing 0 or more times. */
-#define PLUS 17 /* node Match this (simple) thing 1 or more times. */
-#define ALNUM 18 /* no Match any alphanumeric character */
-#define NALNUM 19 /* no Match any non-alphanumeric character */
-#define BOUND 20 /* no Match "" at any word boundary */
-#define NBOUND 21 /* no Match "" at any word non-boundary */
-#define SPACE 22 /* no Match any whitespace character */
-#define NSPACE 23 /* no Match any non-whitespace character */
-#define DIGIT 24 /* no Match any numeric character */
-#define NDIGIT 25 /* no Match any non-numeric character */
-#define REF 26 /* num Match some already matched string */
-#define OPEN 27 /* num Mark this point in input as start of #n. */
-#define CLOSE 28 /* num Analogous to OPEN. */
-#define MINMOD 29 /* no Next operator is not greedy. */
-#define GBOL 30 /* no Matches where last m//g left off. */
-#define IFMATCH 31 /* no Succeeds if the following matches. */
-#define UNLESSM 32 /* no Fails if the following matches. */
-#define SUCCEED 33 /* no Return from a subroutine, basically. */
-#define WHILEM 34 /* no Do curly processing and see if rest matches. */
-
-/*
- * Opcode notes:
- *
- * BRANCH The set of branches constituting a single choice are hooked
- * together with their "next" pointers, since precedence prevents
- * anything being concatenated to any individual branch. The
- * "next" pointer of the last BRANCH in a choice points to the
- * thing following the whole choice. This is also where the
- * final "next" pointer of each individual branch points; each
- * branch starts with the operand node of a BRANCH node.
- *
- * BACK Normal "next" pointers all implicitly point forward; BACK
- * exists to make loop structures possible.
- *
- * STAR,PLUS '?', and complex '*' and '+', are implemented as circular
- * BRANCH structures using BACK. Simple cases (one character
- * per match) are implemented with STAR and PLUS for speed
- * and to minimize recursive plunges.
- *
- * OPEN,CLOSE ...are numbered at compile time.
- */
-
-#ifndef DOINIT
-EXT char regarglen[];
-#else
-EXT char regarglen[] = {0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,0,0,0,0,0};
-#endif
-
-#ifndef DOINIT
-EXT char regkind[];
-#else
-EXT char regkind[] = {
- END,
- BOL,
- BOL,
- BOL,
- EOL,
- EOL,
- EOL,
- ANY,
- ANY,
- ANYOF,
- CURLY,
- CURLY,
- BRANCH,
- BACK,
- EXACTLY,
- NOTHING,
- STAR,
- PLUS,
- ALNUM,
- NALNUM,
- BOUND,
- NBOUND,
- SPACE,
- NSPACE,
- DIGIT,
- NDIGIT,
- REF,
- OPEN,
- CLOSE,
- MINMOD,
- BOL,
- BRANCH,
- BRANCH,
- END,
- WHILEM
-};
-#endif
-
-/* The following have no fixed length. */
-#ifndef DOINIT
-EXT char varies[];
-#else
-EXT char varies[] = {BRANCH,BACK,STAR,PLUS,CURLY,CURLYX,REF,WHILEM,0};
-#endif
-
-/* The following always have a length of 1. */
-#ifndef DOINIT
-EXT char simple[];
-#else
-EXT char simple[] = {ANY,SANY,ANYOF,ALNUM,NALNUM,SPACE,NSPACE,DIGIT,NDIGIT,0};
-#endif
-
-EXT char regdummy;
-