+/* states and character types */
+# define OPR 0 /* operator */
+# define ATM 1 /* atom */
+# define QST 2 /* in quoted string */
+# define SPC 3 /* chewing up spaces */
+# define ONE 4 /* pick up one character */
+
+# define NSTATES 5 /* number of states */
+# define TYPE 017 /* mask to select state type */
+
+/* meta bits for table */
+# define M 020 /* meta character; don't pass through */
+# define B 040 /* cause a break */
+# define MB M|B /* meta-break */
+
+static short StateTab[NSTATES][NSTATES] =
+{
+ /* oldst newst> OPR ATM QST SPC ONE */
+ /*OPR*/ OPR|B, ATM|B, QST|MB, SPC|MB, ONE|B,
+ /*ATM*/ OPR|B, ATM, QST|MB, SPC|MB, ONE|B,
+ /*QST*/ QST, QST, QST|MB, QST, QST,
+ /*SPC*/ OPR, ATM, QST, SPC|M, ONE,
+ /*ONE*/ OPR, OPR, OPR, OPR, OPR,
+};
+
+# define NOCHAR -1 /* signal nothing in lookahead token */
+
+char *DelimChar; /* set to point to the delimiter */