public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* RE: optimization/8367: ICE compiling tcl/generic/regcomp.c (new in last week)
@ 2002-10-30 10:46 Donn Terry
  0 siblings, 0 replies; 3+ messages in thread
From: Donn Terry @ 2002-10-30 10:46 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR optimization/8367; it has been noted by GNATS.

From: "Donn Terry" <donnte@microsoft.com>
To: <gcc-gnats@gcc.gnu.org>
Cc:  
Subject: RE: optimization/8367: ICE compiling tcl/generic/regcomp.c (new in last week)
Date: Wed, 30 Oct 2002 10:43:59 -0800

 Sometime between roughly noon yesterday and "last evening" (after 9,
 probably)
 Tuesday (PST) this went away.
 
 This was also showing up in several of the regressions, both as a SEGV
 and
 as a "bad register number" error.  (My build hasn't gotten thru the
 regressions
 yet, but tcl is now fine.)
 
 Thanks to whoever fixed it (it's not obvious from the change log either
 what
 caused it or what cured it, or I'd be more specific.)
 
 Donn
 
 -----Original Message-----
 From: donnte@microsoft.com [mailto:donnte@microsoft.com]=20
 Sent: Saturday, October 26, 2002 5:15 PM
 To: gcc-gnats@gcc.gnu.org
 Subject: optimization/8367: ICE compiling tcl/generic/regcomp.c (new in
 last week)
 
 
 
 >Number:         8367
 >Category:       optimization
 >Synopsis:       ICE compiling tcl/generic/regcomp.c (new in last week)
 >Confidential:   no
 >Severity:       critical
 >Priority:       medium
 >Responsible:    unassigned
 >State:          open
 >Class:          sw-bug
 >Submitter-Id:   net
 >Arrival-Date:   Sat Oct 26 17:16:01 PDT 2002
 >Closed-Date:
 >Last-Modified:
 >Originator:     Donn Terry
 >Release:        Current CVS leading edge
 >Organization:
 >Environment:
 Interix
 >Description:
 Sometime since last Monday afternoon (and before ~5PM PDT friday), this
 bug was introduced.  The problem is in alias.c, line 2814:
 
 2814                      else if (REG_N_SETS (regno) =3D=3D 1
 2815                               && GET_CODE (src) =3D=3D PLUS
 2816                               && GET_CODE (XEXP (src, 0)) =3D=3D =
 REG
 2817                               && REGNO (XEXP (src, 0)) >=3D
 FIRST_PSEUDO_REGI
 STER
 
 REG_N_SETS devolves to VARRAY_REG (reg_n_info, N)->sets,
 and VARRAY_REG(...) is NULL for this value of regno.
 
 Command line: /dev/fs/C/home/donn.intel/gnu2.intel/local_bin/cc1
 -fpreprocessed regcomp.i -quiet -dumpbase regcomp.c -auxbase regcomp -g
 -O2 -O -Wall -Wconversion -Wno-implicit-int -version -o regcomp.s
 
 Alias.c has not changed recently (in this area), but whether it should
 be more robust and allow the null, or whether the presence of the null
 is itself a bug, I don't know.
 >How-To-Repeat:
 Command line and .i file attached.  Repeats with CVS synced as of ~noon
 PDT Saturday on Interix.
 >Fix:
 
 >Release-Note:
 >Audit-Trail:
 >Unformatted:
 ----gnatsweb-attachment----
 Content-Type: text/plain; name=3D"regcomp.i"
 Content-Disposition: inline; filename=3D"regcomp.i"
 
 # 1
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
 # 1 "<built-in>"
 # 1 "<command line>"
 # 1
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
 # 33
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
 # 1
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
 1 # 38
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
 # 1
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcustom.
 h" 1 # 30
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcustom.
 h"
 # 1
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 1 # 30
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 # 1 "/usr/include/stdio.h" 1 3 4
 # 67 "/usr/include/stdio.h" 3 4
 # 1 "/usr/include/features.h" 1 3 4
 # 68 "/usr/include/stdio.h" 2 3 4
 
 # 1 "/usr/include/sys/types.h" 1 3 4
 # 37 "/usr/include/sys/types.h" 3 4
 # 1 "/usr/include/sys/endian.h" 1 3 4
 # 38 "/usr/include/sys/types.h" 2 3 4
 
 
 
 
 
 
 
 typedef unsigned long mode_t;
 
 
 
 
 typedef unsigned long nlink_t;
 
 
 
 
 typedef long pid_t;
 
 
 
 
 typedef unsigned long gid_t;
 
 
 
 
 typedef unsigned long uid_t;
 
 
 
 typedef long off_t;
 
 
 
 
 typedef unsigned long dev_t;
 
 
 
 
 typedef unsigned long ino_t;
 
 
 
 
 typedef long time_t;
 
 
 
 
 typedef unsigned int size_t;
 
 
 
 
 typedef signed int ssize_t;
 # 106 "/usr/include/sys/types.h" 3 4
 typedef long clock_t;
 
 
 
 
 typedef unsigned long useconds_t;
 
 
 
 
 typedef unsigned long id_t;
 
 
 
 
 typedef char *caddr_t;
 
 
 typedef int key_t;
 
 
 typedef unsigned char uchar_t;
 typedef unsigned int uint_t;
 typedef unsigned short ushort_t;
 typedef unsigned long ulong_t;
 
 
 typedef signed char int8_t;
 typedef unsigned char u_int8_t;
 typedef short int16_t;
 typedef unsigned short u_int16_t;
 typedef int int32_t;
 typedef unsigned int u_int32_t;
 
 
 typedef unsigned char uint8_t;
 typedef unsigned short uint16_t;
 typedef unsigned int uint32_t;
 
 
 
 
 
 typedef long long int quad_t;
 typedef unsigned long long int u_quad_t;
 typedef long long int int64_t;
 typedef unsigned long long int u_int64_t;
 # 167 "/usr/include/sys/types.h" 3 4
 typedef unsigned char u_char;
 typedef unsigned short u_short;
 typedef unsigned short ushort;
 typedef unsigned int u_int;
 typedef unsigned long u_long;
 
 typedef unsigned int uint;
 typedef unsigned long ulong;
 typedef unsigned char unchar;
 # 70 "/usr/include/stdio.h" 2 3 4
 # 83 "/usr/include/stdio.h" 3 4
 typedef off_t fpos_t;
 # 124 "/usr/include/stdio.h" 3 4
 # 1 "/usr/include/va_list.h" 1 3 4
 # 47 "/usr/include/va_list.h" 3 4
 # 1
 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include
 /stdarg.h" 1 3 4 # 43
 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include
 /stdarg.h" 3 4 typedef __builtin_va_list __gnuc_va_list; # 48
 "/usr/include/va_list.h" 2 3 4 typedef __builtin_va_list __va_list; # 74
 "/usr/include/va_list.h" 3 4 typedef __va_list va_list; # 125
 "/usr/include/stdio.h" 2 3 4 # 149 "/usr/include/stdio.h" 3 4 struct
 __sbuf {
         unsigned char *_base;
         int _size;
 };
 # 180 "/usr/include/stdio.h" 3 4
 typedef struct __sFILE {
         unsigned char *_p;
         int _r;
         int _w;
         short _flags;
         short _file;
         struct __sbuf _bf;
         int _lbfsize;
 
 
         void *_cookie;
         int (*_close) (void *);
         int (*_read) (void *, char *, int);
         fpos_t (*_seek) (void *, fpos_t, int);
         int (*_write) (void *, const char *, int);
 
 
         struct __sbuf _ub;
         unsigned char *_up;
         int _ur;
 
 
         unsigned char _ubuf[3];
         unsigned char _nbuf[1];
 
 
         struct __sbuf _lb;
 
 
         int _blksize;
         fpos_t _offset;
 } FILE;
 
 extern FILE __sF[];
 # 247 "/usr/include/stdio.h" 3 4
 extern void __attribute__((__cdecl__)) clearerr (FILE *); extern int
 __attribute__((__cdecl__)) fclose (FILE *); extern int
 __attribute__((__cdecl__)) feof (FILE *); extern int
 __attribute__((__cdecl__)) ferror (FILE *); extern int
 __attribute__((__cdecl__)) fflush (FILE *); extern int
 __attribute__((__cdecl__)) fgetc (FILE *); extern int
 __attribute__((__cdecl__)) fgetpos (FILE *, fpos_t *); extern char *
 __attribute__((__cdecl__)) fgets (char *, int, FILE *); extern FILE *
 __attribute__((__cdecl__)) fopen (const char *, const char *); extern
 int __attribute__((__cdecl__)) fprintf (FILE *, const char *, ...);
 extern int __attribute__((__cdecl__)) fputc (int, FILE *); extern int
 __attribute__((__cdecl__)) fputs (const char *, FILE *); extern size_t
 __attribute__((__cdecl__)) fread (void *, size_t, size_t, FILE *);
 extern FILE * __attribute__((__cdecl__)) freopen (const char *, const
 char *, FILE *); extern int __attribute__((__cdecl__)) fscanf (FILE *,
 const char *, ...); extern int __attribute__((__cdecl__)) fseek (FILE *,
 long, int); extern int __attribute__((__cdecl__)) fsetpos (FILE *, const
 fpos_t *); extern long __attribute__((__cdecl__)) ftell (FILE *); extern
 size_t __attribute__((__cdecl__)) fwrite (const void *, size_t, size_t,
 FILE *); extern int __attribute__((__cdecl__)) getc (FILE *); extern int
 __attribute__((__cdecl__)) getchar (void); extern char *
 __attribute__((__cdecl__)) gets (char *); extern void
 __attribute__((__cdecl__)) perror (const char *); extern int
 __attribute__((__cdecl__)) printf (const char *, ...); extern int
 __attribute__((__cdecl__)) putc (int, FILE *); extern int
 __attribute__((__cdecl__)) putchar (int); extern int
 __attribute__((__cdecl__)) puts (const char *); extern int
 __attribute__((__cdecl__)) remove (const char *); extern int
 __attribute__((__cdecl__)) rename (const char *, const char *); extern
 void __attribute__((__cdecl__)) rewind (FILE *); extern int
 __attribute__((__cdecl__)) scanf (const char *, ...); extern void
 __attribute__((__cdecl__)) setbuf (FILE *, char *); extern int
 __attribute__((__cdecl__)) setvbuf (FILE *, char *, int, size_t); extern
 int __attribute__((__cdecl__)) sprintf (char *, const char *, ...);
 extern int __attribute__((__cdecl__)) sscanf (const char *, const char
 *, ...); extern FILE * __attribute__((__cdecl__)) tmpfile (void); extern
 char * __attribute__((__cdecl__)) tmpnam (char *); extern int
 __attribute__((__cdecl__)) ungetc (int, FILE *);
 
 
 extern int __attribute__((__cdecl__)) vfprintf (FILE *, const char *,
 va_list); extern int __attribute__((__cdecl__)) vprintf (const char *,
 va_list); extern int __attribute__((__cdecl__)) vsprintf (char *, const
 char *, va_list); # 303 "/usr/include/stdio.h" 3 4 char *
 __attribute__((__cdecl__)) ctermid (char *); FILE *
 __attribute__((__cdecl__)) fdopen (int, const char *); int
 __attribute__((__cdecl__)) fileno (FILE *); # 314 "/usr/include/stdio.h"
 3 4 int __attribute__((__cdecl__)) pclose (FILE *);
 FILE* __attribute__((__cdecl__)) popen (const char *, const char *);
 
 
 
 
 
 extern char* __attribute__((__cdecl__)) tempnam (const char *, const
 char *); extern int __attribute__((__cdecl__)) getopt(int, char * const
 [], const char *);
 
 
 extern char *optarg;
 extern int optind, opterr, optopt;
 
 
 extern char * __attribute__((__cdecl__)) cuserid(char *); extern int
 __attribute__((__cdecl__)) getw(FILE *); extern int
 __attribute__((__cdecl__)) putw (int, FILE *); # 340
 "/usr/include/stdio.h" 3 4 extern char* __attribute__((__cdecl__))
 fgetln (FILE *, size_t *); extern int __attribute__((__cdecl__)) fpurge
 (FILE *); extern void __attribute__((__cdecl__)) setbuffer (FILE *, char
 *, int); extern int __attribute__((__cdecl__)) setlinebuf (FILE *);
 extern int __attribute__((__cdecl__)) snprintf (char *, size_t, const
 char *, ...);
 
 extern int __attribute__((__cdecl__)) vsnprintf (char *, size_t, const
 char *, va_list); extern int __attribute__((__cdecl__)) vscanf (const
 char *, va_list); extern int __attribute__((__cdecl__)) vsscanf (const
 char *, const char *, va_list); # 365 "/usr/include/stdio.h" 3 4 FILE
 *funopen (
                 const void *,
                 int (*)(void *, char *, int),
                 int (*)(void *, const char *, int),
                 fpos_t (*)(void *, fpos_t, int),
                 int (*)(void *));
 
 
 
 
 
 
 
 extern int __attribute__((__cdecl__)) __srget (FILE *);
 extern int __attribute__((__cdecl__)) __swbuf (int, FILE *);
 
 extern int __attribute__((__cdecl__)) __svfscanf (FILE *, const char *,
 va_list); # 393 "/usr/include/stdio.h" 3 4 static __inline int
 __sputc(int _c, FILE *_p) {
         if (--_p->_w >=3D 0 || (_p->_w >=3D _p->_lbfsize && (char)_c =
 !=3D
 '\n'))
                 return (*_p->_p++ =3D _c);
         else
                 return (__swbuf(_c, _p));
 }
 # 31
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 2
 
 
 # 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 1 # 199
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 # 1
 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include
 /stdarg.h" 1 3 4 # 200
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h" 2 #
 334 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
     typedef void *ClientData;
 # 360
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 typedef struct Tcl_Interp {
     char *result;
 
     void (*freeProc) (char *blockPtr);
 
 
 
 
 
 
 
     int errorLine;
 
 
 } Tcl_Interp;
 
 typedef struct Tcl_AsyncHandler_ *Tcl_AsyncHandler;
 typedef struct Tcl_Channel_ *Tcl_Channel;
 typedef struct Tcl_Command_ *Tcl_Command;
 typedef struct Tcl_Condition_ *Tcl_Condition;
 typedef struct Tcl_EncodingState_ *Tcl_EncodingState;
 typedef struct Tcl_Encoding_ *Tcl_Encoding;
 typedef struct Tcl_Event Tcl_Event;
 typedef struct Tcl_Mutex_ *Tcl_Mutex;
 typedef struct Tcl_Pid_ *Tcl_Pid;
 typedef struct Tcl_RegExp_ *Tcl_RegExp;
 typedef struct Tcl_ThreadDataKey_ *Tcl_ThreadDataKey;
 typedef struct Tcl_ThreadId_ *Tcl_ThreadId;
 typedef struct Tcl_TimerToken_ *Tcl_TimerToken;
 typedef struct Tcl_Trace_ *Tcl_Trace;
 typedef struct Tcl_Var_ *Tcl_Var;
 typedef struct Tcl_ChannelTypeVersion_ *Tcl_ChannelTypeVersion; # 405
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 typedef void (Tcl_ThreadCreateProc) (ClientData clientData);
 # 477
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 typedef struct Tcl_RegExpIndices {
     long start;
     long end;
 
 } Tcl_RegExpIndices;
 
 typedef struct Tcl_RegExpInfo {
     int nsubs;
 
     Tcl_RegExpIndices *matches;
 
     long extendStart;
 
     long reserved;
 } Tcl_RegExpInfo;
 
 
 
 
 
 
 typedef struct stat *Tcl_Stat_;
 # 533
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 typedef enum {TCL_INT, TCL_DOUBLE, TCL_EITHER} Tcl_ValueType; typedef
 struct Tcl_Value {
     Tcl_ValueType type;
 
     long intValue;
     double doubleValue;
 } Tcl_Value;
 
 
 
 
 
 
 
 struct Tcl_Obj;
 
 
 
 
 
 typedef int (Tcl_AppInitProc) (Tcl_Interp *interp);
 typedef int (Tcl_AsyncProc) (ClientData clientData, Tcl_Interp *interp,
 int code);
 
 typedef void (Tcl_ChannelProc) (ClientData clientData, int mask);
 typedef void (Tcl_CloseProc) (ClientData data); typedef void
 (Tcl_CmdDeleteProc) (ClientData clientData); typedef int (Tcl_CmdProc)
 (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]);
 
 typedef void (Tcl_CmdTraceProc) (ClientData clientData, Tcl_Interp
 *interp, int level, char *command, Tcl_CmdProc *proc, ClientData
 cmdClientData, int argc, char *argv[]);
 
 
 typedef void (Tcl_DupInternalRepProc) (struct Tcl_Obj *srcPtr, struct
 Tcl_Obj *dupPtr);
 
 typedef int (Tcl_EncodingConvertProc)(ClientData clientData, const char
 *src, int srcLen, int flags, Tcl_EncodingState *statePtr, char *dst, int
 dstLen, int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr);
 
 
 
 typedef void (Tcl_EncodingFreeProc)(ClientData clientData); typedef int
 (Tcl_EventProc) (Tcl_Event *evPtr, int flags); typedef void
 (Tcl_EventCheckProc) (ClientData clientData, int flags);
 
 typedef int (Tcl_EventDeleteProc) (Tcl_Event *evPtr, ClientData
 clientData);
 
 typedef void (Tcl_EventSetupProc) (ClientData clientData, int flags);
 
 typedef void (Tcl_ExitProc) (ClientData clientData);
 typedef void (Tcl_FileProc) (ClientData clientData, int mask); typedef
 void (Tcl_FileFreeProc) (ClientData clientData); typedef void
 (Tcl_FreeInternalRepProc) (struct Tcl_Obj *objPtr); typedef void
 (Tcl_FreeProc) (char *blockPtr); typedef void (Tcl_IdleProc) (ClientData
 clientData); typedef void (Tcl_InterpDeleteProc) (ClientData clientData,
 Tcl_Interp *interp);
 
 typedef int (Tcl_MathProc) (ClientData clientData, Tcl_Interp *interp,
 Tcl_Value *args, Tcl_Value *resultPtr);
 
 typedef void (Tcl_NamespaceDeleteProc) (ClientData clientData); typedef
 int (Tcl_ObjCmdProc) (ClientData clientData, Tcl_Interp *interp, int
 objc, struct Tcl_Obj *const objv[]);
 
 typedef int (Tcl_PackageInitProc) (Tcl_Interp *interp);
 typedef void (Tcl_PanicProc) (char * format, ...);
 typedef void (Tcl_TcpAcceptProc) (ClientData callbackData, Tcl_Channel
 chan, char *address, int port);
 
 typedef void (Tcl_TimerProc) (ClientData clientData);
 typedef int (Tcl_SetFromAnyProc) (Tcl_Interp *interp, struct Tcl_Obj
 *objPtr);
 
 typedef void (Tcl_UpdateStringProc) (struct Tcl_Obj *objPtr); typedef
 char *(Tcl_VarTraceProc) (ClientData clientData, Tcl_Interp *interp,
 char *part1, char *part2, int flags);
 
 typedef void (Tcl_CreateFileHandlerProc) (int fd, int mask, Tcl_FileProc
 *proc, ClientData clientData);
 
 typedef void (Tcl_DeleteFileHandlerProc) (int fd);
 
 
 
 
 
 
 
 typedef struct Tcl_ObjType {
     char *name;
     Tcl_FreeInternalRepProc *freeIntRepProc;
 
 
 
     Tcl_DupInternalRepProc *dupIntRepProc;
 
 
     Tcl_UpdateStringProc *updateStringProc;
 
 
     Tcl_SetFromAnyProc *setFromAnyProc;
 
 
 
 
 } Tcl_ObjType;
 
 
 
 
 
 
 
 typedef struct Tcl_Obj {
     int refCount;
     char *bytes;
 # 649
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
     int length;
 
     Tcl_ObjType *typePtr;
 
 
 
     union {
         long longValue;
         double doubleValue;
         void *otherValuePtr;
         struct {
             void *ptr1;
             void *ptr2;
         } twoPtrValue;
     } internalRep;
 } Tcl_Obj;
 # 677
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 void Tcl_IncrRefCount (Tcl_Obj *objPtr);
 void Tcl_DecrRefCount (Tcl_Obj *objPtr);
 int Tcl_IsShared (Tcl_Obj *objPtr);
 # 728
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 typedef struct Tcl_SavedResult {
     char *result;
     Tcl_FreeProc *freeProc;
     Tcl_Obj *objResultPtr;
     char *appendResult;
     int appendAvl;
     int appendUsed;
     char resultSpace[200 +1];
 } Tcl_SavedResult;
 # 745
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 typedef struct Tcl_Namespace {
     char *name;
 
 
 
     char *fullName;
 
     ClientData clientData;
 
     Tcl_NamespaceDeleteProc* deleteProc;
 
 
     struct Tcl_Namespace* parentPtr;
 
 
 
 } Tcl_Namespace;
 # 785
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 typedef struct Tcl_CallFrame {
     Tcl_Namespace *nsPtr;
     int dummy1;
     int dummy2;
     char *dummy3;
     char *dummy4;
     char *dummy5;
     int dummy6;
     char *dummy7;
     char *dummy8;
     int dummy9;
     char* dummy10;
 } Tcl_CallFrame;
 # 814
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 typedef struct Tcl_CmdInfo {
     int isNativeObjectProc;
 
 
 
     Tcl_ObjCmdProc *objProc;
     ClientData objClientData;
     Tcl_CmdProc *proc;
     ClientData clientData;
     Tcl_CmdDeleteProc *deleteProc;
 
 
     ClientData deleteData;
 
     Tcl_Namespace *namespacePtr;
 
 
 
 
 } Tcl_CmdInfo;
 # 842
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 typedef struct Tcl_DString {
     char *string;
 
     int length;
 
     int spaceAvl;
 
     char staticSpace[200];
 
 
 } Tcl_DString;
 # 963
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 typedef struct Tcl_HashEntry {
     struct Tcl_HashEntry *nextPtr;
 
 
     struct Tcl_HashTable *tablePtr;
     struct Tcl_HashEntry **bucketPtr;
 
 
     ClientData clientData;
 
     union {
         char *oneWordValue;
         int words[1];
 
 
 
         char string[4];
 
 
     } key;
 } Tcl_HashEntry;
 # 992
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 typedef struct Tcl_HashTable {
     Tcl_HashEntry **buckets;
 
 
     Tcl_HashEntry *staticBuckets[4];
 
 
     int numBuckets;
 
     int numEntries;
 
     int rebuildSize;
 
     int downShift;
 
 
     int mask;
 
     int keyType;
 
 
 
 
 
     Tcl_HashEntry *(*findProc) (struct Tcl_HashTable *tablePtr, const
 char *key);
 
     Tcl_HashEntry *(*createProc) (struct Tcl_HashTable *tablePtr, const
 char *key, int *newPtr);
 
 } Tcl_HashTable;
 
 
 
 
 
 
 typedef struct Tcl_HashSearch {
     Tcl_HashTable *tablePtr;
     int nextIndex;
 
     Tcl_HashEntry *nextEntryPtr;
 
 } Tcl_HashSearch;
 # 1084
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 struct Tcl_Event {
     Tcl_EventProc *proc;
     struct Tcl_Event *nextPtr;
 };
 
 
 
 
 
 typedef enum {
     TCL_QUEUE_TAIL, TCL_QUEUE_HEAD, TCL_QUEUE_MARK
 } Tcl_QueuePosition;
 # 1112
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 typedef struct Tcl_Time {
     long sec;
     long usec;
 } Tcl_Time;
 
 typedef void (Tcl_SetTimerProc) (Tcl_Time *timePtr);
 typedef int (Tcl_WaitForEventProc) (Tcl_Time *timePtr);
 # 1166
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 typedef int (Tcl_DriverBlockModeProc) ( ClientData instanceData, int
 mode);
 
 typedef int (Tcl_DriverCloseProc) (ClientData instanceData, Tcl_Interp
 *interp);
 
 typedef int (Tcl_DriverClose2Proc) (ClientData instanceData, Tcl_Interp
 *interp, int flags);
 
 typedef int (Tcl_DriverInputProc) (ClientData instanceData, char *buf,
 int toRead, int *errorCodePtr);
 
 typedef int (Tcl_DriverOutputProc) (ClientData instanceData, char *buf,
 int toWrite, int *errorCodePtr);
 
 typedef int (Tcl_DriverSeekProc) (ClientData instanceData, long offset,
 int mode, int *errorCodePtr);
 
 typedef int (Tcl_DriverSetOptionProc) ( ClientData instanceData,
 Tcl_Interp *interp, char *optionName, char *value);
 
 
 typedef int (Tcl_DriverGetOptionProc) ( ClientData instanceData,
 Tcl_Interp *interp, char *optionName, Tcl_DString *dsPtr);
 
 
 typedef void (Tcl_DriverWatchProc) ( ClientData instanceData, int mask);
 
 typedef int (Tcl_DriverGetHandleProc) ( ClientData instanceData, int
 direction, ClientData *handlePtr);
 
 
 typedef int (Tcl_DriverFlushProc) ( ClientData instanceData);
 
 typedef int (Tcl_DriverHandlerProc) ( ClientData instanceData, int
 interestMask); # 1228
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 typedef enum Tcl_EolTranslation {
     TCL_TRANSLATE_AUTO,
     TCL_TRANSLATE_CR,
     TCL_TRANSLATE_LF,
     TCL_TRANSLATE_CRLF
 } Tcl_EolTranslation;
 # 1246
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 typedef struct Tcl_ChannelType {
     char *typeName;
 
 
     Tcl_ChannelTypeVersion version;
     Tcl_DriverCloseProc *closeProc;
 
 
 
     Tcl_DriverInputProc *inputProc;
 
     Tcl_DriverOutputProc *outputProc;
 
     Tcl_DriverSeekProc *seekProc;
 
     Tcl_DriverSetOptionProc *setOptionProc;
 
     Tcl_DriverGetOptionProc *getOptionProc;
 
     Tcl_DriverWatchProc *watchProc;
 
     Tcl_DriverGetHandleProc *getHandleProc;
 
 
     Tcl_DriverClose2Proc *close2Proc;
 
 
 
     Tcl_DriverBlockModeProc *blockModeProc;
 
 
 
 
 
     Tcl_DriverFlushProc *flushProc;
 
     Tcl_DriverHandlerProc *handlerProc;
 
 
 } Tcl_ChannelType;
 # 1301
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 typedef enum Tcl_PathType {
     TCL_PATH_ABSOLUTE,
     TCL_PATH_RELATIVE,
     TCL_PATH_VOLUME_RELATIVE
 } Tcl_PathType;
 
 
 
 
 
 
 typedef struct Tcl_NotifierProcs {
     Tcl_SetTimerProc *setTimerProc;
     Tcl_WaitForEventProc *waitForEventProc;
     Tcl_CreateFileHandlerProc *createFileHandlerProc;
     Tcl_DeleteFileHandlerProc *deleteFileHandlerProc;
 } Tcl_NotifierProcs;
 
 
 
 
 
 
 typedef struct Tcl_EncodingType {
     const char *encodingName;
 
 
     Tcl_EncodingConvertProc *toUtfProc;
 
 
     Tcl_EncodingConvertProc *fromUtfProc;
 
 
     Tcl_EncodingFreeProc *freeProc;
 
 
     ClientData clientData;
 
     int nullSize;
 
 
 
 
 } Tcl_EncodingType;
 # 1395
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 typedef struct Tcl_Token {
     int type;
 
     char *start;
     int size;
     int numComponents;
 
 
 
 
 } Tcl_Token;
 # 1514
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 typedef struct Tcl_Parse {
     char *commentStart;
 
 
     int commentSize;
 
 
 
     char *commandStart;
     int commandSize;
 
 
 
     int numWords;
 
     Tcl_Token *tokenPtr;
 
 
 
 
     int numTokens;
     int tokensAvailable;
 
     int errorType;
 # 1546
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
     char *string;
 
     char *end;
 
     Tcl_Interp *interp;
 
     char *term;
 
 
 
 
 
     int incomplete;
 
 
 
     Tcl_Token staticTokens[20];
 
 
 
 
 
 } Tcl_Parse;
 # 1618
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 typedef unsigned short Tcl_UniChar;
 # 1661
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 extern char * Tcl_InitStubs (Tcl_Interp *interp, char *version, int
 exact); # 1681
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 # 1
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclDecls.h
 " 1 # 30
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclDecls.h
 "
 extern int Tcl_PkgProvideEx (Tcl_Interp * interp, char * name, char *
 version, ClientData clientData);
 
 
 
 extern char * Tcl_PkgRequireEx (Tcl_Interp * interp, char * name, char *
 version, int exact, ClientData * clientDataPtr);
 
 
 
 extern void Tcl_Panic (char * format, ...);
 
 extern char * Tcl_Alloc (unsigned int size);
 
 extern void Tcl_Free (char * ptr);
 
 extern char * Tcl_Realloc (char * ptr, unsigned int size);
 
 
 extern char * Tcl_DbCkalloc (unsigned int size, char * file, int line);
 
 
 extern int Tcl_DbCkfree (char * ptr, char * file, int line);
 
 
 extern char * Tcl_DbCkrealloc (char * ptr, unsigned int size, char *
 file, int line);
 
 
 
 extern void Tcl_CreateFileHandler (int fd, int mask, Tcl_FileProc *
 proc, ClientData clientData);
 
 
 
 
 extern void Tcl_DeleteFileHandler (int fd);
 
 
 extern void Tcl_SetTimer (Tcl_Time * timePtr);
 
 extern void Tcl_Sleep (int ms);
 
 extern int Tcl_WaitForEvent (Tcl_Time * timePtr);
 
 extern int Tcl_AppendAllObjTypes ( Tcl_Interp * interp, Tcl_Obj *
 objPtr);
 
 
 extern void Tcl_AppendStringsToObj (Tcl_Obj * objPtr, ...);
 
 extern void Tcl_AppendToObj (Tcl_Obj * objPtr, char * bytes, int
 length);
 
 
 extern Tcl_Obj * Tcl_ConcatObj (int objc, Tcl_Obj *const objv[]);
 
 
 extern int Tcl_ConvertToType (Tcl_Interp * interp, Tcl_Obj * objPtr,
 Tcl_ObjType * typePtr);
 
 
 extern void Tcl_DbDecrRefCount (Tcl_Obj * objPtr, char * file, int
 line);
 
 
 extern void Tcl_DbIncrRefCount (Tcl_Obj * objPtr, char * file, int
 line);
 
 
 extern int Tcl_DbIsShared (Tcl_Obj * objPtr, char * file, int line);
 
 
 extern Tcl_Obj * Tcl_DbNewBooleanObj (int boolValue, char * file, int
 line);
 
 
 extern Tcl_Obj * Tcl_DbNewByteArrayObj ( unsigned char * bytes, int
 length, char * file, int line);
 
 
 
 extern Tcl_Obj * Tcl_DbNewDoubleObj (double doubleValue, char * file,
 int line);
 
 
 extern Tcl_Obj * Tcl_DbNewListObj (int objc, Tcl_Obj *const objv[], char
 * file, int line);
 
 
 extern Tcl_Obj * Tcl_DbNewLongObj (long longValue, char * file, int
 line);
 
 
 extern Tcl_Obj * Tcl_DbNewObj (char * file, int line);
 
 extern Tcl_Obj * Tcl_DbNewStringObj (const char * bytes, int length,
 char * file, int line);
 
 
 extern Tcl_Obj * Tcl_DuplicateObj (Tcl_Obj * objPtr);
 
 extern void TclFreeObj (Tcl_Obj * objPtr);
 
 extern int Tcl_GetBoolean (Tcl_Interp * interp, char * str, int *
 boolPtr);
 
 
 extern int Tcl_GetBooleanFromObj ( Tcl_Interp * interp, Tcl_Obj *
 objPtr, int * boolPtr);
 
 
 
 extern unsigned char * Tcl_GetByteArrayFromObj ( Tcl_Obj * objPtr, int *
 lengthPtr);
 
 
 extern int Tcl_GetDouble (Tcl_Interp * interp, char * str, double *
 doublePtr);
 
 
 extern int Tcl_GetDoubleFromObj ( Tcl_Interp * interp, Tcl_Obj * objPtr,
 double * doublePtr);
 
 
 
 extern int Tcl_GetIndexFromObj (Tcl_Interp * interp, Tcl_Obj * objPtr,
 char ** tablePtr, char * msg, int flags, int * indexPtr);
 
 
 
 extern int Tcl_GetInt (Tcl_Interp * interp, char * str, int * intPtr);
 
 
 extern int Tcl_GetIntFromObj (Tcl_Interp * interp, Tcl_Obj * objPtr, int
 * intPtr);
 
 
 extern int Tcl_GetLongFromObj (Tcl_Interp * interp, Tcl_Obj * objPtr,
 long * longPtr);
 
 
 extern Tcl_ObjType * Tcl_GetObjType (char * typeName);
 
 extern char * Tcl_GetStringFromObj (Tcl_Obj * objPtr, int * lengthPtr);
 
 
 extern void Tcl_InvalidateStringRep ( Tcl_Obj * objPtr);
 
 
 extern int Tcl_ListObjAppendList ( Tcl_Interp * interp, Tcl_Obj *
 listPtr, Tcl_Obj * elemListPtr);
 
 
 
 extern int Tcl_ListObjAppendElement ( Tcl_Interp * interp, Tcl_Obj *
 listPtr, Tcl_Obj * objPtr);
 
 
 
 extern int Tcl_ListObjGetElements ( Tcl_Interp * interp, Tcl_Obj *
 listPtr, int * objcPtr, Tcl_Obj *** objvPtr);
 
 
 
 extern int Tcl_ListObjIndex (Tcl_Interp * interp, Tcl_Obj * listPtr, int
 index, Tcl_Obj ** objPtrPtr);
 
 
 
 extern int Tcl_ListObjLength (Tcl_Interp * interp, Tcl_Obj * listPtr,
 int * intPtr);
 
 
 extern int Tcl_ListObjReplace (Tcl_Interp * interp, Tcl_Obj * listPtr,
 int first, int count, int objc, Tcl_Obj *const objv[]);
 
 
 
 extern Tcl_Obj * Tcl_NewBooleanObj (int boolValue);
 
 extern Tcl_Obj * Tcl_NewByteArrayObj ( unsigned char * bytes, int
 length);
 
 
 extern Tcl_Obj * Tcl_NewDoubleObj (double doubleValue);
 
 extern Tcl_Obj * Tcl_NewIntObj (int intValue);
 
 extern Tcl_Obj * Tcl_NewListObj (int objc, Tcl_Obj *const objv[]);
 
 
 extern Tcl_Obj * Tcl_NewLongObj (long longValue);
 
 extern Tcl_Obj * Tcl_NewObj (void);
 
 extern Tcl_Obj * Tcl_NewStringObj (const char * bytes, int length);
 
 
 extern void Tcl_SetBooleanObj (Tcl_Obj * objPtr, int boolValue);
 
 
 extern unsigned char * Tcl_SetByteArrayLength (Tcl_Obj * objPtr, int
 length);
 
 
 extern void Tcl_SetByteArrayObj (Tcl_Obj * objPtr, unsigned char *
 bytes, int length);
 
 
 extern void Tcl_SetDoubleObj (Tcl_Obj * objPtr, double doubleValue);
 
 
 extern void Tcl_SetIntObj (Tcl_Obj * objPtr, int intValue);
 
 
 extern void Tcl_SetListObj (Tcl_Obj * objPtr, int objc, Tcl_Obj *const
 objv[]);
 
 
 extern void Tcl_SetLongObj (Tcl_Obj * objPtr, long longValue);
 
 
 extern void Tcl_SetObjLength (Tcl_Obj * objPtr, int length);
 
 
 extern void Tcl_SetStringObj (Tcl_Obj * objPtr, char * bytes, int
 length);
 
 
 extern void Tcl_AddErrorInfo (Tcl_Interp * interp, const char *
 message);
 
 
 extern void Tcl_AddObjErrorInfo (Tcl_Interp * interp, const char *
 message, int length);
 
 
 extern void Tcl_AllowExceptions (Tcl_Interp * interp);
 
 extern void Tcl_AppendElement (Tcl_Interp * interp, const char *
 string);
 
 
 extern void Tcl_AppendResult (Tcl_Interp * interp, ...);
 
 extern Tcl_AsyncHandler Tcl_AsyncCreate (Tcl_AsyncProc * proc,
 ClientData clientData);
 
 
 extern void Tcl_AsyncDelete (Tcl_AsyncHandler async);
 
 extern int Tcl_AsyncInvoke (Tcl_Interp * interp, int code);
 
 
 extern void Tcl_AsyncMark (Tcl_AsyncHandler async);
 
 extern int Tcl_AsyncReady (void);
 
 extern void Tcl_BackgroundError (Tcl_Interp * interp);
 
 extern char Tcl_Backslash (const char * src, int * readPtr);
 
 
 extern int Tcl_BadChannelOption ( Tcl_Interp * interp, char *
 optionName, char * optionList);
 
 
 
 extern void Tcl_CallWhenDeleted (Tcl_Interp * interp,
 Tcl_InterpDeleteProc * proc, ClientData clientData);
 
 
 
 extern void Tcl_CancelIdleCall ( Tcl_IdleProc * idleProc, ClientData
 clientData);
 
 
 
 extern int Tcl_Close (Tcl_Interp * interp, Tcl_Channel chan);
 
 
 extern int Tcl_CommandComplete (char * cmd);
 
 extern char * Tcl_Concat (int argc, char ** argv);
 
 extern int Tcl_ConvertElement (const char * src, char * dst, int flags);
 
 
 extern int Tcl_ConvertCountedElement ( const char * src, int length,
 char * dst, int flags);
 
 
 
 extern int Tcl_CreateAlias (Tcl_Interp * slave, char * slaveCmd,
 Tcl_Interp * target, char * targetCmd, int argc, char ** argv);
 
 
 
 extern int Tcl_CreateAliasObj (Tcl_Interp * slave, char * slaveCmd,
 Tcl_Interp * target, char * targetCmd, int objc, Tcl_Obj *const objv[]);
 
 
 
 
 extern Tcl_Channel Tcl_CreateChannel ( Tcl_ChannelType * typePtr, char *
 chanName, ClientData instanceData, int mask);
 
 
 
 extern void Tcl_CreateChannelHandler ( Tcl_Channel chan, int mask,
 Tcl_ChannelProc * proc, ClientData clientData);
 
 
 
 
 extern void Tcl_CreateCloseHandler (Tcl_Channel chan, Tcl_CloseProc *
 proc, ClientData clientData);
 
 
 extern Tcl_Command Tcl_CreateCommand (Tcl_Interp * interp, char *
 cmdName, Tcl_CmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc *
 deleteProc);
 
 
 
 
 extern void Tcl_CreateEventSource ( Tcl_EventSetupProc * setupProc,
 Tcl_EventCheckProc * checkProc, ClientData clientData);
 
 
 
 
 extern void Tcl_CreateExitHandler ( Tcl_ExitProc * proc, ClientData
 clientData);
 
 
 extern Tcl_Interp * Tcl_CreateInterp (void);
 
 extern void Tcl_CreateMathFunc (Tcl_Interp * interp, char * name, int
 numArgs, Tcl_ValueType * argTypes, Tcl_MathProc * proc, ClientData
 clientData);
 
 
 
 
 extern Tcl_Command Tcl_CreateObjCommand ( Tcl_Interp * interp, char *
 cmdName, Tcl_ObjCmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc
 * deleteProc);
 
 
 
 
 extern Tcl_Interp * Tcl_CreateSlave (Tcl_Interp * interp, char *
 slaveName, int isSafe);
 
 
 extern Tcl_TimerToken Tcl_CreateTimerHandler (int milliseconds,
 Tcl_TimerProc * proc, ClientData clientData);
 
 
 extern Tcl_Trace Tcl_CreateTrace (Tcl_Interp * interp, int level,
 Tcl_CmdTraceProc * proc, ClientData clientData);
 
 
 
 extern void Tcl_DeleteAssocData (Tcl_Interp * interp, char * name);
 
 
 extern void Tcl_DeleteChannelHandler ( Tcl_Channel chan, Tcl_ChannelProc
 * proc, ClientData clientData);
 
 
 
 extern void Tcl_DeleteCloseHandler (Tcl_Channel chan, Tcl_CloseProc *
 proc, ClientData clientData);
 
 
 extern int Tcl_DeleteCommand (Tcl_Interp * interp, char * cmdName);
 
 
 extern int Tcl_DeleteCommandFromToken ( Tcl_Interp * interp, Tcl_Command
 command);
 
 
 extern void Tcl_DeleteEvents ( Tcl_EventDeleteProc * proc, ClientData
 clientData);
 
 
 
 extern void Tcl_DeleteEventSource ( Tcl_EventSetupProc * setupProc,
 Tcl_EventCheckProc * checkProc, ClientData clientData);
 
 
 
 
 extern void Tcl_DeleteExitHandler ( Tcl_ExitProc * proc, ClientData
 clientData);
 
 
 extern void Tcl_DeleteHashEntry ( Tcl_HashEntry * entryPtr);
 
 
 extern void Tcl_DeleteHashTable ( Tcl_HashTable * tablePtr);
 
 
 extern void Tcl_DeleteInterp (Tcl_Interp * interp);
 
 
 extern void Tcl_DetachPids (int numPids, Tcl_Pid * pidPtr);
 # 384
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclDecls.h
 "
 extern void Tcl_DeleteTimerHandler ( Tcl_TimerToken token);
 
 
 extern void Tcl_DeleteTrace (Tcl_Interp * interp, Tcl_Trace trace);
 
 
 extern void Tcl_DontCallWhenDeleted ( Tcl_Interp * interp,
 Tcl_InterpDeleteProc * proc, ClientData clientData);
 
 
 
 
 extern int Tcl_DoOneEvent (int flags);
 
 extern void Tcl_DoWhenIdle (Tcl_IdleProc * proc, ClientData clientData);
 
 
 extern char * Tcl_DStringAppend (Tcl_DString * dsPtr, const char * str,
 int length);
 
 
 extern char * Tcl_DStringAppendElement ( Tcl_DString * dsPtr, const char
 * string);
 
 
 extern void Tcl_DStringEndSublist ( Tcl_DString * dsPtr);
 
 
 extern void Tcl_DStringFree (Tcl_DString * dsPtr);
 
 extern void Tcl_DStringGetResult ( Tcl_Interp * interp, Tcl_DString *
 dsPtr);
 
 
 extern void Tcl_DStringInit (Tcl_DString * dsPtr);
 
 extern void Tcl_DStringResult (Tcl_Interp * interp, Tcl_DString *
 dsPtr);
 
 
 extern void Tcl_DStringSetLength ( Tcl_DString * dsPtr, int length);
 
 
 extern void Tcl_DStringStartSublist ( Tcl_DString * dsPtr);
 
 
 extern int Tcl_Eof (Tcl_Channel chan);
 
 extern char * Tcl_ErrnoId (void);
 
 extern char * Tcl_ErrnoMsg (int err);
 
 extern int Tcl_Eval (Tcl_Interp * interp, char * string);
 
 
 extern int Tcl_EvalFile (Tcl_Interp * interp, char * fileName);
 
 
 extern int Tcl_EvalObj (Tcl_Interp * interp, Tcl_Obj * objPtr);
 
 
 extern void Tcl_EventuallyFree ( ClientData clientData, Tcl_FreeProc *
 freeProc);
 
 
 
 extern void Tcl_Exit (int status);
 
 extern int Tcl_ExposeCommand (Tcl_Interp * interp, char *
 hiddenCmdToken, char * cmdName);
 
 
 extern int Tcl_ExprBoolean (Tcl_Interp * interp, char * str, int * ptr);
 
 
 extern int Tcl_ExprBooleanObj (Tcl_Interp * interp, Tcl_Obj * objPtr,
 int * ptr);
 
 
 extern int Tcl_ExprDouble (Tcl_Interp * interp, char * str, double *
 ptr);
 
 
 extern int Tcl_ExprDoubleObj (Tcl_Interp * interp, Tcl_Obj * objPtr,
 double * ptr);
 
 
 extern int Tcl_ExprLong (Tcl_Interp * interp, char * str, long * ptr);
 
 
 extern int Tcl_ExprLongObj (Tcl_Interp * interp, Tcl_Obj * objPtr, long
 * ptr);
 
 
 extern int Tcl_ExprObj (Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_Obj
 ** resultPtrPtr);
 
 
 extern int Tcl_ExprString (Tcl_Interp * interp, char * string);
 
 
 extern void Tcl_Finalize (void);
 
 extern void Tcl_FindExecutable (const char * argv0);
 
 extern Tcl_HashEntry * Tcl_FirstHashEntry ( Tcl_HashTable * tablePtr,
 Tcl_HashSearch * searchPtr);
 
 
 
 extern int Tcl_Flush (Tcl_Channel chan);
 
 extern void Tcl_FreeResult (Tcl_Interp * interp);
 
 extern int Tcl_GetAlias (Tcl_Interp * interp, char * slaveCmd,
 Tcl_Interp ** targetInterpPtr, char ** targetCmdPtr, int * argcPtr, char
 *** argvPtr);
 
 
 
 
 
 extern int Tcl_GetAliasObj (Tcl_Interp * interp, char * slaveCmd,
 Tcl_Interp ** targetInterpPtr, char ** targetCmdPtr, int * objcPtr,
 Tcl_Obj *** objv);
 
 
 
 
 
 extern ClientData Tcl_GetAssocData (Tcl_Interp * interp, char * name,
 Tcl_InterpDeleteProc ** procPtr);
 
 
 extern Tcl_Channel Tcl_GetChannel (Tcl_Interp * interp, char * chanName,
 int * modePtr);
 
 
 extern int Tcl_GetChannelBufferSize ( Tcl_Channel chan);
 
 
 extern int Tcl_GetChannelHandle (Tcl_Channel chan, int direction,
 ClientData * handlePtr);
 
 
 extern ClientData Tcl_GetChannelInstanceData ( Tcl_Channel chan);
 
 
 extern int Tcl_GetChannelMode (Tcl_Channel chan);
 
 extern char * Tcl_GetChannelName (Tcl_Channel chan);
 
 extern int Tcl_GetChannelOption ( Tcl_Interp * interp, Tcl_Channel chan,
 char * optionName, Tcl_DString * dsPtr);
 
 
 
 extern Tcl_ChannelType * Tcl_GetChannelType (Tcl_Channel chan);
 
 extern int Tcl_GetCommandInfo (Tcl_Interp * interp, char * cmdName,
 Tcl_CmdInfo * infoPtr);
 
 
 extern char * Tcl_GetCommandName (Tcl_Interp * interp, Tcl_Command
 command);
 
 
 extern int Tcl_GetErrno (void);
 
 extern char * Tcl_GetHostName (void);
 
 extern int Tcl_GetInterpPath ( Tcl_Interp * askInterp, Tcl_Interp *
 slaveInterp);
 
 
 
 extern Tcl_Interp * Tcl_GetMaster (Tcl_Interp * interp);
 
 extern const char * Tcl_GetNameOfExecutable (void);
 
 extern Tcl_Obj * Tcl_GetObjResult (Tcl_Interp * interp);
 
 
 extern int Tcl_GetOpenFile (Tcl_Interp * interp, char * str, int
 forWriting, int checkUsage, ClientData * filePtr);
 
 
 
 
 extern Tcl_PathType Tcl_GetPathType (char * path);
 
 extern int Tcl_Gets (Tcl_Channel chan, Tcl_DString * dsPtr);
 
 
 extern int Tcl_GetsObj (Tcl_Channel chan, Tcl_Obj * objPtr);
 
 
 extern int Tcl_GetServiceMode (void);
 
 extern Tcl_Interp * Tcl_GetSlave (Tcl_Interp * interp, char *
 slaveName);
 
 
 extern Tcl_Channel Tcl_GetStdChannel (int type);
 
 extern char * Tcl_GetStringResult (Tcl_Interp * interp);
 
 extern char * Tcl_GetVar (Tcl_Interp * interp, char * varName, int
 flags);
 
 
 extern char * Tcl_GetVar2 (Tcl_Interp * interp, char * part1, char *
 part2, int flags);
 
 
 extern int Tcl_GlobalEval (Tcl_Interp * interp, char * command);
 
 
 extern int Tcl_GlobalEvalObj (Tcl_Interp * interp, Tcl_Obj * objPtr);
 
 
 extern int Tcl_HideCommand (Tcl_Interp * interp, char * cmdName, char *
 hiddenCmdToken);
 
 
 extern int Tcl_Init (Tcl_Interp * interp);
 
 extern void Tcl_InitHashTable ( Tcl_HashTable * tablePtr, int keyType);
 
 
 extern int Tcl_InputBlocked (Tcl_Channel chan);
 
 extern int Tcl_InputBuffered (Tcl_Channel chan);
 
 extern int Tcl_InterpDeleted (Tcl_Interp * interp);
 
 extern int Tcl_IsSafe (Tcl_Interp * interp);
 
 extern char * Tcl_JoinPath (int argc, char ** argv, Tcl_DString *
 resultPtr);
 
 
 extern int Tcl_LinkVar (Tcl_Interp * interp, char * varName, char *
 addr, int type);
 
 
 
 extern Tcl_Channel Tcl_MakeFileChannel (ClientData handle, int mode);
 
 
 extern int Tcl_MakeSafe (Tcl_Interp * interp);
 
 extern Tcl_Channel Tcl_MakeTcpClientChannel ( ClientData tcpSocket);
 
 
 extern char * Tcl_Merge (int argc, char ** argv);
 
 extern Tcl_HashEntry * Tcl_NextHashEntry ( Tcl_HashSearch * searchPtr);
 
 
 extern void Tcl_NotifyChannel (Tcl_Channel channel, int mask);
 
 
 extern Tcl_Obj * Tcl_ObjGetVar2 (Tcl_Interp * interp, Tcl_Obj *
 part1Ptr, Tcl_Obj * part2Ptr, int flags);
 
 
 
 extern Tcl_Obj * Tcl_ObjSetVar2 (Tcl_Interp * interp, Tcl_Obj *
 part1Ptr, Tcl_Obj * part2Ptr, Tcl_Obj * newValuePtr, int flags);
 
 
 
 
 extern Tcl_Channel Tcl_OpenCommandChannel ( Tcl_Interp * interp, int
 argc, char ** argv, int flags); # 636
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclDecls.h
 "
 extern Tcl_Channel Tcl_OpenFileChannel (Tcl_Interp * interp, char *
 fileName, char * modeString, int permissions);
 
 
 
 extern Tcl_Channel Tcl_OpenTcpClient (Tcl_Interp * interp, int port,
 char * address, char * myaddr, int myport, int async);
 
 
 
 extern Tcl_Channel Tcl_OpenTcpServer (Tcl_Interp * interp, int port,
 char * host, Tcl_TcpAcceptProc * acceptProc, ClientData callbackData);
 
 
 
 
 extern void Tcl_Preserve (ClientData data);
 
 extern void Tcl_PrintDouble (Tcl_Interp * interp, double value, char *
 dst);
 
 
 extern int Tcl_PutEnv (const char * string);
 
 extern char * Tcl_PosixError (Tcl_Interp * interp);
 
 extern void Tcl_QueueEvent (Tcl_Event * evPtr, Tcl_QueuePosition
 position);
 
 
 extern int Tcl_Read (Tcl_Channel chan, char * bufPtr, int toRead);
 
 
 
 extern void Tcl_ReapDetachedProcs (void);
 
 
 
 
 
 
 extern int Tcl_RecordAndEval (Tcl_Interp * interp, char * cmd, int
 flags);
 
 
 extern int Tcl_RecordAndEvalObj ( Tcl_Interp * interp, Tcl_Obj * cmdPtr,
 int flags);
 
 
 
 extern void Tcl_RegisterChannel (Tcl_Interp * interp, Tcl_Channel chan);
 
 
 extern void Tcl_RegisterObjType ( Tcl_ObjType * typePtr);
 
 
 extern Tcl_RegExp Tcl_RegExpCompile (Tcl_Interp * interp, char *
 string);
 
 
 extern int Tcl_RegExpExec (Tcl_Interp * interp, Tcl_RegExp regexp, const
 char * str, const char * start);
 
 
 
 extern int Tcl_RegExpMatch (Tcl_Interp * interp, char * str, char *
 pattern);
 
 
 extern void Tcl_RegExpRange (Tcl_RegExp regexp, int index, char **
 startPtr, char ** endPtr);
 
 
 extern void Tcl_Release (ClientData clientData);
 
 extern void Tcl_ResetResult (Tcl_Interp * interp);
 
 extern int Tcl_ScanElement (const char * str, int * flagPtr);
 
 
 extern int Tcl_ScanCountedElement (const char * str, int length, int *
 flagPtr);
 
 
 extern int Tcl_Seek (Tcl_Channel chan, int offset, int mode);
 
 
 extern int Tcl_ServiceAll (void);
 
 extern int Tcl_ServiceEvent (int flags);
 
 extern void Tcl_SetAssocData (Tcl_Interp * interp, char * name,
 Tcl_InterpDeleteProc * proc, ClientData clientData);
 
 
 
 extern void Tcl_SetChannelBufferSize ( Tcl_Channel chan, int sz);
 
 
 extern int Tcl_SetChannelOption ( Tcl_Interp * interp, Tcl_Channel chan,
 char * optionName, char * newValue);
 
 
 
 extern int Tcl_SetCommandInfo (Tcl_Interp * interp, char * cmdName,
 Tcl_CmdInfo * infoPtr);
 
 
 extern void Tcl_SetErrno (int err);
 
 extern void Tcl_SetErrorCode (Tcl_Interp * interp, ...);
 
 extern void Tcl_SetMaxBlockTime (Tcl_Time * timePtr);
 
 extern void Tcl_SetPanicProc ( Tcl_PanicProc * panicProc);
 
 
 extern int Tcl_SetRecursionLimit ( Tcl_Interp * interp, int depth);
 
 
 extern void Tcl_SetResult (Tcl_Interp * interp, char * str, Tcl_FreeProc
 * freeProc);
 
 
 extern int Tcl_SetServiceMode (int mode);
 
 extern void Tcl_SetObjErrorCode (Tcl_Interp * interp, Tcl_Obj *
 errorObjPtr);
 
 
 extern void Tcl_SetObjResult (Tcl_Interp * interp, Tcl_Obj *
 resultObjPtr);
 
 
 extern void Tcl_SetStdChannel (Tcl_Channel channel, int type);
 
 
 extern char * Tcl_SetVar (Tcl_Interp * interp, char * varName, char *
 newValue, int flags);
 
 
 extern char * Tcl_SetVar2 (Tcl_Interp * interp, char * part1, char *
 part2, char * newValue, int flags);
 
 
 
 extern char * Tcl_SignalId (int sig);
 
 extern char * Tcl_SignalMsg (int sig);
 
 extern void Tcl_SourceRCFile (Tcl_Interp * interp);
 
 extern int Tcl_SplitList (Tcl_Interp * interp, const char * listStr, int
 * argcPtr, char *** argvPtr);
 
 
 
 extern void Tcl_SplitPath (const char * path, int * argcPtr, char ***
 argvPtr);
 
 
 extern void Tcl_StaticPackage (Tcl_Interp * interp, char * pkgName,
 Tcl_PackageInitProc * initProc, Tcl_PackageInitProc * safeInitProc);
 
 
 
 
 extern int Tcl_StringMatch (const char * str, const char * pattern);
 
 
 extern int Tcl_Tell (Tcl_Channel chan);
 
 extern int Tcl_TraceVar (Tcl_Interp * interp, char * varName, int flags,
 Tcl_VarTraceProc * proc, ClientData clientData);
 
 
 
 
 extern int Tcl_TraceVar2 (Tcl_Interp * interp, char * part1, char *
 part2, int flags, Tcl_VarTraceProc * proc, ClientData clientData);
 
 
 
 
 extern char * Tcl_TranslateFileName ( Tcl_Interp * interp, char * name,
 Tcl_DString * bufferPtr);
 
 
 
 extern int Tcl_Ungets (Tcl_Channel chan, char * str, int len, int
 atHead);
 
 
 extern void Tcl_UnlinkVar (Tcl_Interp * interp, char * varName);
 
 
 extern int Tcl_UnregisterChannel ( Tcl_Interp * interp, Tcl_Channel
 chan);
 
 
 extern int Tcl_UnsetVar (Tcl_Interp * interp, char * varName, int
 flags);
 
 
 extern int Tcl_UnsetVar2 (Tcl_Interp * interp, char * part1, char *
 part2, int flags);
 
 
 extern void Tcl_UntraceVar (Tcl_Interp * interp, char * varName, int
 flags, Tcl_VarTraceProc * proc, ClientData clientData);
 
 
 
 
 extern void Tcl_UntraceVar2 (Tcl_Interp * interp, char * part1, char *
 part2, int flags, Tcl_VarTraceProc * proc, ClientData clientData);
 
 
 
 
 extern void Tcl_UpdateLinkedVar (Tcl_Interp * interp, char * varName);
 
 
 extern int Tcl_UpVar (Tcl_Interp * interp, char * frameName, char *
 varName, char * localName, int flags);
 
 
 
 extern int Tcl_UpVar2 (Tcl_Interp * interp, char * frameName, char *
 part1, char * part2, char * localName, int flags);
 
 
 
 extern int Tcl_VarEval (Tcl_Interp * interp, ...);
 
 extern ClientData Tcl_VarTraceInfo (Tcl_Interp * interp, char * varName,
 int flags, Tcl_VarTraceProc * procPtr, ClientData prevClientData);
 
 
 
 
 extern ClientData Tcl_VarTraceInfo2 (Tcl_Interp * interp, char * part1,
 char * part2, int flags, Tcl_VarTraceProc * procPtr, ClientData
 prevClientData);
 
 
 
 
 extern int Tcl_Write (Tcl_Channel chan, char * s, int slen);
 
 
 extern void Tcl_WrongNumArgs (Tcl_Interp * interp, int objc, Tcl_Obj
 *const objv[], char * message);
 
 
 
 extern int Tcl_DumpActiveMemory (char * fileName);
 
 extern void Tcl_ValidateAllMemory (char * file, int line);
 
 
 extern void Tcl_AppendResultVA (Tcl_Interp * interp, va_list argList);
 
 
 extern void Tcl_AppendStringsToObjVA ( Tcl_Obj * objPtr, va_list
 argList);
 
 
 extern char * Tcl_HashStats (Tcl_HashTable * tablePtr);
 
 extern char * Tcl_ParseVar (Tcl_Interp * interp, char * str, char **
 termPtr);
 
 
 extern char * Tcl_PkgPresent (Tcl_Interp * interp, char * name, char *
 version, int exact);
 
 
 extern char * Tcl_PkgPresentEx (Tcl_Interp * interp, char * name, char *
 version, int exact, ClientData * clientDataPtr);
 
 
 
 extern int Tcl_PkgProvide (Tcl_Interp * interp, char * name, char *
 version);
 
 
 extern char * Tcl_PkgRequire (Tcl_Interp * interp, char * name, char *
 version, int exact);
 
 
 extern void Tcl_SetErrorCodeVA (Tcl_Interp * interp, va_list argList);
 
 
 extern int Tcl_VarEvalVA (Tcl_Interp * interp, va_list argList);
 
 
 extern Tcl_Pid Tcl_WaitPid (Tcl_Pid pid, int * statPtr, int options);
 
 
 
 extern void Tcl_PanicVA (char * format, va_list argList);
 # 902
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclDecls.h
 "
 extern void Tcl_GetVersion (int * major, int * minor, int * patchLevel,
 int * type);
 
 
 extern void Tcl_InitMemory (Tcl_Interp * interp);
 
 extern Tcl_Channel Tcl_StackChannel (Tcl_Interp * interp,
 Tcl_ChannelType * typePtr, ClientData instanceData, int mask,
 Tcl_Channel prevChan);
 
 
 
 
 extern int Tcl_UnstackChannel (Tcl_Interp * interp, Tcl_Channel chan);
 
 
 extern Tcl_Channel Tcl_GetStackedChannel (Tcl_Channel chan);
 
 
 
 extern void Tcl_AppendObjToObj (Tcl_Obj * objPtr, Tcl_Obj *
 appendObjPtr);
 
 
 extern Tcl_Encoding Tcl_CreateEncoding ( Tcl_EncodingType * typePtr);
 
 
 extern void Tcl_CreateThreadExitHandler ( Tcl_ExitProc * proc,
 ClientData clientData);
 
 
 extern void Tcl_DeleteThreadExitHandler ( Tcl_ExitProc * proc,
 ClientData clientData);
 
 
 extern void Tcl_DiscardResult ( Tcl_SavedResult * statePtr);
 
 
 extern int Tcl_EvalEx (Tcl_Interp * interp, char * script, int numBytes,
 int flags);
 
 
 extern int Tcl_EvalObjv (Tcl_Interp * interp, int objc, Tcl_Obj *const
 objv[], int flags);
 
 
 extern int Tcl_EvalObjEx (Tcl_Interp * interp, Tcl_Obj * objPtr, int
 flags);
 
 
 extern void Tcl_ExitThread (int status);
 
 extern int Tcl_ExternalToUtf (Tcl_Interp * interp, Tcl_Encoding
 encoding, const char * src, int srcLen, int flags, Tcl_EncodingState *
 statePtr, char * dst, int dstLen, int * srcReadPtr, int * dstWrotePtr,
 int * dstCharsPtr);
 
 
 
 
 
 
 extern char * Tcl_ExternalToUtfDString ( Tcl_Encoding encoding, const
 char * src, int srcLen, Tcl_DString * dsPtr);
 
 
 
 extern void Tcl_FinalizeThread (void);
 
 extern void Tcl_FinalizeNotifier ( ClientData clientData);
 
 
 extern void Tcl_FreeEncoding (Tcl_Encoding encoding);
 
 extern Tcl_ThreadId Tcl_GetCurrentThread (void);
 
 extern Tcl_Encoding Tcl_GetEncoding (Tcl_Interp * interp, const char *
 name);
 
 
 extern char * Tcl_GetEncodingName ( Tcl_Encoding encoding);
 
 
 extern void Tcl_GetEncodingNames ( Tcl_Interp * interp);
 
 
 extern int Tcl_GetIndexFromObjStruct ( Tcl_Interp * interp, Tcl_Obj *
 objPtr, char ** tablePtr, int offset, char * msg, int flags, int *
 indexPtr);
 
 
 
 
 extern void * Tcl_GetThreadData ( Tcl_ThreadDataKey * keyPtr, int size);
 
 
 extern Tcl_Obj * Tcl_GetVar2Ex (Tcl_Interp * interp, char * part1, char
 * part2, int flags);
 
 
 extern ClientData Tcl_InitNotifier (void);
 
 extern void Tcl_MutexLock (Tcl_Mutex * mutexPtr);
 
 extern void Tcl_MutexUnlock (Tcl_Mutex * mutexPtr);
 
 extern void Tcl_ConditionNotify ( Tcl_Condition * condPtr);
 
 
 extern void Tcl_ConditionWait ( Tcl_Condition * condPtr, Tcl_Mutex *
 mutexPtr, Tcl_Time * timePtr);
 
 
 
 extern int Tcl_NumUtfChars (const char * src, int len);
 
 
 extern int Tcl_ReadChars (Tcl_Channel channel, Tcl_Obj * objPtr, int
 charsToRead, int appendFlag);
 
 
 
 extern void Tcl_RestoreResult (Tcl_Interp * interp, Tcl_SavedResult *
 statePtr);
 
 
 extern void Tcl_SaveResult (Tcl_Interp * interp, Tcl_SavedResult *
 statePtr);
 
 
 extern int Tcl_SetSystemEncoding ( Tcl_Interp * interp, const char *
 name);
 
 
 extern Tcl_Obj * Tcl_SetVar2Ex (Tcl_Interp * interp, char * part1, char
 * part2, Tcl_Obj * newValuePtr, int flags);
 
 
 
 extern void Tcl_ThreadAlert (Tcl_ThreadId threadId);
 
 extern void Tcl_ThreadQueueEvent ( Tcl_ThreadId threadId, Tcl_Event*
 evPtr, Tcl_QueuePosition position);
 
 
 
 extern Tcl_UniChar Tcl_UniCharAtIndex (const char * src, int index);
 
 
 extern Tcl_UniChar Tcl_UniCharToLower (int ch);
 
 extern Tcl_UniChar Tcl_UniCharToTitle (int ch);
 
 extern Tcl_UniChar Tcl_UniCharToUpper (int ch);
 
 extern int Tcl_UniCharToUtf (int ch, char * buf);
 
 extern char * Tcl_UtfAtIndex (const char * src, int index);
 
 
 extern int Tcl_UtfCharComplete (const char * src, int len);
 
 
 extern int Tcl_UtfBackslash (const char * src, int * readPtr, char *
 dst);
 
 
 extern char * Tcl_UtfFindFirst (const char * src, int ch);
 
 
 extern char * Tcl_UtfFindLast (const char * src, int ch);
 
 
 extern char * Tcl_UtfNext (const char * src);
 
 extern char * Tcl_UtfPrev (const char * src, const char * start);
 
 
 extern int Tcl_UtfToExternal (Tcl_Interp * interp, Tcl_Encoding
 encoding, const char * src, int srcLen, int flags, Tcl_EncodingState *
 statePtr, char * dst, int dstLen, int * srcReadPtr, int * dstWrotePtr,
 int * dstCharsPtr);
 
 
 
 
 
 
 extern char * Tcl_UtfToExternalDString ( Tcl_Encoding encoding, const
 char * src, int srcLen, Tcl_DString * dsPtr);
 
 
 
 extern int Tcl_UtfToLower (char * src);
 
 extern int Tcl_UtfToTitle (char * src);
 
 extern int Tcl_UtfToUniChar (const char * src, Tcl_UniChar * chPtr);
 
 
 extern int Tcl_UtfToUpper (char * src);
 
 extern int Tcl_WriteChars (Tcl_Channel chan, const char * src, int
 srcLen);
 
 
 extern int Tcl_WriteObj (Tcl_Channel chan, Tcl_Obj * objPtr);
 
 
 extern char * Tcl_GetString (Tcl_Obj * objPtr);
 
 extern char * Tcl_GetDefaultEncodingDir (void);
 
 extern void Tcl_SetDefaultEncodingDir (char * path);
 
 extern void Tcl_AlertNotifier (ClientData clientData);
 
 extern void Tcl_ServiceModeHook (int mode);
 
 extern int Tcl_UniCharIsAlnum (int ch);
 
 extern int Tcl_UniCharIsAlpha (int ch);
 
 extern int Tcl_UniCharIsDigit (int ch);
 
 extern int Tcl_UniCharIsLower (int ch);
 
 extern int Tcl_UniCharIsSpace (int ch);
 
 extern int Tcl_UniCharIsUpper (int ch);
 
 extern int Tcl_UniCharIsWordChar (int ch);
 
 extern int Tcl_UniCharLen (Tcl_UniChar * str);
 
 extern int Tcl_UniCharNcmp (const Tcl_UniChar * cs, const Tcl_UniChar *
 ct, unsigned long n);
 
 
 extern char * Tcl_UniCharToUtfDString ( const Tcl_UniChar * string, int
 numChars, Tcl_DString * dsPtr);
 
 
 
 extern Tcl_UniChar * Tcl_UtfToUniCharDString ( const char * string, int
 length, Tcl_DString * dsPtr);
 
 
 
 extern Tcl_RegExp Tcl_GetRegExpFromObj ( Tcl_Interp * interp, Tcl_Obj *
 patObj, int flags);
 
 
 
 extern Tcl_Obj * Tcl_EvalTokens (Tcl_Interp * interp, Tcl_Token *
 tokenPtr, int count);
 
 
 extern void Tcl_FreeParse (Tcl_Parse * parsePtr);
 
 extern void Tcl_LogCommandInfo (Tcl_Interp * interp, char * script, char
 * command, int length);
 
 
 extern int Tcl_ParseBraces (Tcl_Interp * interp, char * string, int
 numBytes, Tcl_Parse * parsePtr, int append, char ** termPtr);
 
 
 
 
 extern int Tcl_ParseCommand (Tcl_Interp * interp, char * string, int
 numBytes, int nested, Tcl_Parse * parsePtr);
 
 
 
 extern int Tcl_ParseExpr (Tcl_Interp * interp, char * string, int
 numBytes, Tcl_Parse * parsePtr);
 
 
 
 extern int Tcl_ParseQuotedString ( Tcl_Interp * interp, char * string,
 int numBytes, Tcl_Parse * parsePtr, int append, char ** termPtr);
 
 
 
 
 extern int Tcl_ParseVarName (Tcl_Interp * interp, char * string, int
 numBytes, Tcl_Parse * parsePtr, int append);
 
 
 
 extern char * Tcl_GetCwd (Tcl_Interp * interp, Tcl_DString * cwdPtr);
 
 
 extern int Tcl_Chdir (const char * dirName);
 
 extern int Tcl_Access (const char * path, int mode);
 
 extern int Tcl_Stat (const char * path, struct stat * bufPtr);
 
 
 extern int Tcl_UtfNcmp (const char * s1, const char * s2, unsigned long
 n);
 
 
 extern int Tcl_UtfNcasecmp (const char * s1, const char * s2, unsigned
 long n);
 
 
 extern int Tcl_StringCaseMatch (const char * str, const char * pattern,
 int nocase);
 
 
 extern int Tcl_UniCharIsControl (int ch);
 
 extern int Tcl_UniCharIsGraph (int ch);
 
 extern int Tcl_UniCharIsPrint (int ch);
 
 extern int Tcl_UniCharIsPunct (int ch);
 
 extern int Tcl_RegExpExecObj (Tcl_Interp * interp, Tcl_RegExp regexp,
 Tcl_Obj * objPtr, int offset, int nmatches, int flags);
 
 
 
 extern void Tcl_RegExpGetInfo (Tcl_RegExp regexp, Tcl_RegExpInfo *
 infoPtr);
 
 
 extern Tcl_Obj * Tcl_NewUnicodeObj (Tcl_UniChar * unicode, int
 numChars);
 
 
 extern void Tcl_SetUnicodeObj (Tcl_Obj * objPtr, Tcl_UniChar * unicode,
 int numChars);
 
 
 extern int Tcl_GetCharLength (Tcl_Obj * objPtr);
 
 extern Tcl_UniChar Tcl_GetUniChar (Tcl_Obj * objPtr, int index);
 
 
 extern Tcl_UniChar * Tcl_GetUnicode (Tcl_Obj * objPtr);
 
 extern Tcl_Obj * Tcl_GetRange (Tcl_Obj * objPtr, int first, int last);
 
 
 extern void Tcl_AppendUnicodeToObj (Tcl_Obj * objPtr, Tcl_UniChar *
 unicode, int length);
 
 
 extern int Tcl_RegExpMatchObj (Tcl_Interp * interp, Tcl_Obj * stringObj,
 Tcl_Obj * patternObj);
 
 
 extern void Tcl_SetNotifier ( Tcl_NotifierProcs * notifierProcPtr);
 
 
 extern Tcl_Mutex * Tcl_GetAllocMutex (void);
 
 extern int Tcl_GetChannelNames (Tcl_Interp * interp);
 
 extern int Tcl_GetChannelNamesEx ( Tcl_Interp * interp, char * pattern);
 
 
 extern int Tcl_ProcObjCmd (ClientData clientData, Tcl_Interp * interp,
 int objc, Tcl_Obj *const objv[]);
 
 
 
 extern void Tcl_ConditionFinalize ( Tcl_Condition * condPtr);
 
 
 extern void Tcl_MutexFinalize (Tcl_Mutex * mutex);
 
 extern int Tcl_CreateThread (Tcl_ThreadId * idPtr, Tcl_ThreadCreateProc
 proc, ClientData clientData, int stackSize, int flags);
 
 
 
 
 extern int Tcl_ReadRaw (Tcl_Channel chan, char * dst, int bytesToRead);
 
 
 extern int Tcl_WriteRaw (Tcl_Channel chan, char * src, int srcLen);
 
 
 extern Tcl_Channel Tcl_GetTopChannel (Tcl_Channel chan);
 
 extern int Tcl_ChannelBuffered (Tcl_Channel chan);
 
 extern char * Tcl_ChannelName ( Tcl_ChannelType * chanTypePtr);
 
 
 extern Tcl_ChannelTypeVersion Tcl_ChannelVersion ( Tcl_ChannelType *
 chanTypePtr);
 
 
 extern Tcl_DriverBlockModeProc * Tcl_ChannelBlockModeProc (
 Tcl_ChannelType * chanTypePtr);
 
 
 extern Tcl_DriverCloseProc * Tcl_ChannelCloseProc ( Tcl_ChannelType *
 chanTypePtr);
 
 
 extern Tcl_DriverClose2Proc * Tcl_ChannelClose2Proc ( Tcl_ChannelType *
 chanTypePtr);
 
 
 extern Tcl_DriverInputProc * Tcl_ChannelInputProc ( Tcl_ChannelType *
 chanTypePtr);
 
 
 extern Tcl_DriverOutputProc * Tcl_ChannelOutputProc ( Tcl_ChannelType *
 chanTypePtr);
 
 
 extern Tcl_DriverSeekProc * Tcl_ChannelSeekProc ( Tcl_ChannelType *
 chanTypePtr);
 
 
 extern Tcl_DriverSetOptionProc * Tcl_ChannelSetOptionProc (
 Tcl_ChannelType * chanTypePtr);
 
 
 extern Tcl_DriverGetOptionProc * Tcl_ChannelGetOptionProc (
 Tcl_ChannelType * chanTypePtr);
 
 
 extern Tcl_DriverWatchProc * Tcl_ChannelWatchProc ( Tcl_ChannelType *
 chanTypePtr);
 
 
 extern Tcl_DriverGetHandleProc * Tcl_ChannelGetHandleProc (
 Tcl_ChannelType * chanTypePtr);
 
 
 extern Tcl_DriverFlushProc * Tcl_ChannelFlushProc ( Tcl_ChannelType *
 chanTypePtr);
 
 
 extern Tcl_DriverHandlerProc * Tcl_ChannelHandlerProc ( Tcl_ChannelType
 * chanTypePtr);
 
 
 typedef struct TclStubHooks {
     struct TclPlatStubs *tclPlatStubs;
     struct TclIntStubs *tclIntStubs;
     struct TclIntPlatStubs *tclIntPlatStubs;
 } TclStubHooks;
 
 typedef struct TclStubs {
     int magic;
     struct TclStubHooks *hooks;
 
     int (*tcl_PkgProvideEx) (Tcl_Interp * interp, char * name, char *
 version, ClientData clientData);
     char * (*tcl_PkgRequireEx) (Tcl_Interp * interp, char * name, char *
 version, int exact, ClientData * clientDataPtr);
     void (*tcl_Panic) (char * format, ...);
     char * (*tcl_Alloc) (unsigned int size);
     void (*tcl_Free) (char * ptr);
     char * (*tcl_Realloc) (char * ptr, unsigned int size);
     char * (*tcl_DbCkalloc) (unsigned int size, char * file, int line);
     int (*tcl_DbCkfree) (char * ptr, char * file, int line);
     char * (*tcl_DbCkrealloc) (char * ptr, unsigned int size, char *
 file, int line);
 
     void (*tcl_CreateFileHandler) (int fd, int mask, Tcl_FileProc *
 proc, ClientData clientData); # 1313
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclDecls.h
 "
     void (*tcl_DeleteFileHandler) (int fd);
 
 
 
 
 
 
 
     void (*tcl_SetTimer) (Tcl_Time * timePtr);
     void (*tcl_Sleep) (int ms);
     int (*tcl_WaitForEvent) (Tcl_Time * timePtr);
     int (*tcl_AppendAllObjTypes) (Tcl_Interp * interp, Tcl_Obj *
 objPtr);
     void (*tcl_AppendStringsToObj) (Tcl_Obj * objPtr, ...);
     void (*tcl_AppendToObj) (Tcl_Obj * objPtr, char * bytes, int
 length);
     Tcl_Obj * (*tcl_ConcatObj) (int objc, Tcl_Obj *const objv[]);
     int (*tcl_ConvertToType) (Tcl_Interp * interp, Tcl_Obj * objPtr,
 Tcl_ObjType * typePtr);
     void (*tcl_DbDecrRefCount) (Tcl_Obj * objPtr, char * file, int
 line);
     void (*tcl_DbIncrRefCount) (Tcl_Obj * objPtr, char * file, int
 line);
     int (*tcl_DbIsShared) (Tcl_Obj * objPtr, char * file, int line);
     Tcl_Obj * (*tcl_DbNewBooleanObj) (int boolValue, char * file, int
 line);
     Tcl_Obj * (*tcl_DbNewByteArrayObj) (unsigned char * bytes, int
 length, char * file, int line);
     Tcl_Obj * (*tcl_DbNewDoubleObj) (double doubleValue, char * file,
 int line);
     Tcl_Obj * (*tcl_DbNewListObj) (int objc, Tcl_Obj *const objv[], char
 * file, int line);
     Tcl_Obj * (*tcl_DbNewLongObj) (long longValue, char * file, int
 line);
     Tcl_Obj * (*tcl_DbNewObj) (char * file, int line);
     Tcl_Obj * (*tcl_DbNewStringObj) (const char * bytes, int length,
 char * file, int line);
     Tcl_Obj * (*tcl_DuplicateObj) (Tcl_Obj * objPtr);
     void (*tclFreeObj) (Tcl_Obj * objPtr);
     int (*tcl_GetBoolean) (Tcl_Interp * interp, char * str, int *
 boolPtr);
     int (*tcl_GetBooleanFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr,
 int * boolPtr);
     unsigned char * (*tcl_GetByteArrayFromObj) (Tcl_Obj * objPtr, int *
 lengthPtr);
     int (*tcl_GetDouble) (Tcl_Interp * interp, char * str, double *
 doublePtr);
     int (*tcl_GetDoubleFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr,
 double * doublePtr);
     int (*tcl_GetIndexFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr,
 char ** tablePtr, char * msg, int flags, int * indexPtr);
     int (*tcl_GetInt) (Tcl_Interp * interp, char * str, int * intPtr);
     int (*tcl_GetIntFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, int
 * intPtr);
     int (*tcl_GetLongFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr,
 long * longPtr);
     Tcl_ObjType * (*tcl_GetObjType) (char * typeName);
     char * (*tcl_GetStringFromObj) (Tcl_Obj * objPtr, int * lengthPtr);
     void (*tcl_InvalidateStringRep) (Tcl_Obj * objPtr);
     int (*tcl_ListObjAppendList) (Tcl_Interp * interp, Tcl_Obj *
 listPtr, Tcl_Obj * elemListPtr);
     int (*tcl_ListObjAppendElement) (Tcl_Interp * interp, Tcl_Obj *
 listPtr, Tcl_Obj * objPtr);
     int (*tcl_ListObjGetElements) (Tcl_Interp * interp, Tcl_Obj *
 listPtr, int * objcPtr, Tcl_Obj *** objvPtr);
     int (*tcl_ListObjIndex) (Tcl_Interp * interp, Tcl_Obj * listPtr, int
 index, Tcl_Obj ** objPtrPtr);
     int (*tcl_ListObjLength) (Tcl_Interp * interp, Tcl_Obj * listPtr,
 int * intPtr);
     int (*tcl_ListObjReplace) (Tcl_Interp * interp, Tcl_Obj * listPtr,
 int first, int count, int objc, Tcl_Obj *const objv[]);
     Tcl_Obj * (*tcl_NewBooleanObj) (int boolValue);
     Tcl_Obj * (*tcl_NewByteArrayObj) (unsigned char * bytes, int
 length);
     Tcl_Obj * (*tcl_NewDoubleObj) (double doubleValue);
     Tcl_Obj * (*tcl_NewIntObj) (int intValue);
     Tcl_Obj * (*tcl_NewListObj) (int objc, Tcl_Obj *const objv[]);
     Tcl_Obj * (*tcl_NewLongObj) (long longValue);
     Tcl_Obj * (*tcl_NewObj) (void);
     Tcl_Obj * (*tcl_NewStringObj) (const char * bytes, int length);
     void (*tcl_SetBooleanObj) (Tcl_Obj * objPtr, int boolValue);
     unsigned char * (*tcl_SetByteArrayLength) (Tcl_Obj * objPtr, int
 length);
     void (*tcl_SetByteArrayObj) (Tcl_Obj * objPtr, unsigned char *
 bytes, int length);
     void (*tcl_SetDoubleObj) (Tcl_Obj * objPtr, double doubleValue);
     void (*tcl_SetIntObj) (Tcl_Obj * objPtr, int intValue);
     void (*tcl_SetListObj) (Tcl_Obj * objPtr, int objc, Tcl_Obj *const
 objv[]);
     void (*tcl_SetLongObj) (Tcl_Obj * objPtr, long longValue);
     void (*tcl_SetObjLength) (Tcl_Obj * objPtr, int length);
     void (*tcl_SetStringObj) (Tcl_Obj * objPtr, char * bytes, int
 length);
     void (*tcl_AddErrorInfo) (Tcl_Interp * interp, const char *
 message);
     void (*tcl_AddObjErrorInfo) (Tcl_Interp * interp, const char *
 message, int length);
     void (*tcl_AllowExceptions) (Tcl_Interp * interp);
     void (*tcl_AppendElement) (Tcl_Interp * interp, const char *
 string);
     void (*tcl_AppendResult) (Tcl_Interp * interp, ...);
     Tcl_AsyncHandler (*tcl_AsyncCreate) (Tcl_AsyncProc * proc,
 ClientData clientData);
     void (*tcl_AsyncDelete) (Tcl_AsyncHandler async);
     int (*tcl_AsyncInvoke) (Tcl_Interp * interp, int code);
     void (*tcl_AsyncMark) (Tcl_AsyncHandler async);
     int (*tcl_AsyncReady) (void);
     void (*tcl_BackgroundError) (Tcl_Interp * interp);
     char (*tcl_Backslash) (const char * src, int * readPtr);
     int (*tcl_BadChannelOption) (Tcl_Interp * interp, char * optionName,
 char * optionList);
     void (*tcl_CallWhenDeleted) (Tcl_Interp * interp,
 Tcl_InterpDeleteProc * proc, ClientData clientData);
     void (*tcl_CancelIdleCall) (Tcl_IdleProc * idleProc, ClientData
 clientData);
     int (*tcl_Close) (Tcl_Interp * interp, Tcl_Channel chan);
     int (*tcl_CommandComplete) (char * cmd);
     char * (*tcl_Concat) (int argc, char ** argv);
     int (*tcl_ConvertElement) (const char * src, char * dst, int flags);
     int (*tcl_ConvertCountedElement) (const char * src, int length, char
 * dst, int flags);
     int (*tcl_CreateAlias) (Tcl_Interp * slave, char * slaveCmd,
 Tcl_Interp * target, char * targetCmd, int argc, char ** argv);
     int (*tcl_CreateAliasObj) (Tcl_Interp * slave, char * slaveCmd,
 Tcl_Interp * target, char * targetCmd, int objc, Tcl_Obj *const objv[]);
     Tcl_Channel (*tcl_CreateChannel) (Tcl_ChannelType * typePtr, char *
 chanName, ClientData instanceData, int mask);
     void (*tcl_CreateChannelHandler) (Tcl_Channel chan, int mask,
 Tcl_ChannelProc * proc, ClientData clientData);
     void (*tcl_CreateCloseHandler) (Tcl_Channel chan, Tcl_CloseProc *
 proc, ClientData clientData);
     Tcl_Command (*tcl_CreateCommand) (Tcl_Interp * interp, char *
 cmdName, Tcl_CmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc *
 deleteProc);
     void (*tcl_CreateEventSource) (Tcl_EventSetupProc * setupProc,
 Tcl_EventCheckProc * checkProc, ClientData clientData);
     void (*tcl_CreateExitHandler) (Tcl_ExitProc * proc, ClientData
 clientData);
     Tcl_Interp * (*tcl_CreateInterp) (void);
     void (*tcl_CreateMathFunc) (Tcl_Interp * interp, char * name, int
 numArgs, Tcl_ValueType * argTypes, Tcl_MathProc * proc, ClientData
 clientData);
     Tcl_Command (*tcl_CreateObjCommand) (Tcl_Interp * interp, char *
 cmdName, Tcl_ObjCmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc
 * deleteProc);
     Tcl_Interp * (*tcl_CreateSlave) (Tcl_Interp * interp, char *
 slaveName, int isSafe);
     Tcl_TimerToken (*tcl_CreateTimerHandler) (int milliseconds,
 Tcl_TimerProc * proc, ClientData clientData);
     Tcl_Trace (*tcl_CreateTrace) (Tcl_Interp * interp, int level,
 Tcl_CmdTraceProc * proc, ClientData clientData);
     void (*tcl_DeleteAssocData) (Tcl_Interp * interp, char * name);
     void (*tcl_DeleteChannelHandler) (Tcl_Channel chan, Tcl_ChannelProc
 * proc, ClientData clientData);
     void (*tcl_DeleteCloseHandler) (Tcl_Channel chan, Tcl_CloseProc *
 proc, ClientData clientData);
     int (*tcl_DeleteCommand) (Tcl_Interp * interp, char * cmdName);
     int (*tcl_DeleteCommandFromToken) (Tcl_Interp * interp, Tcl_Command
 command);
     void (*tcl_DeleteEvents) (Tcl_EventDeleteProc * proc, ClientData
 clientData);
     void (*tcl_DeleteEventSource) (Tcl_EventSetupProc * setupProc,
 Tcl_EventCheckProc * checkProc, ClientData clientData);
     void (*tcl_DeleteExitHandler) (Tcl_ExitProc * proc, ClientData
 clientData);
     void (*tcl_DeleteHashEntry) (Tcl_HashEntry * entryPtr);
     void (*tcl_DeleteHashTable) (Tcl_HashTable * tablePtr);
     void (*tcl_DeleteInterp) (Tcl_Interp * interp);
 
     void (*tcl_DetachPids) (int numPids, Tcl_Pid * pidPtr);
 
 
 
 
 
 
 
     void (*tcl_DeleteTimerHandler) (Tcl_TimerToken token);
     void (*tcl_DeleteTrace) (Tcl_Interp * interp, Tcl_Trace trace);
     void (*tcl_DontCallWhenDeleted) (Tcl_Interp * interp,
 Tcl_InterpDeleteProc * proc, ClientData clientData);
     int (*tcl_DoOneEvent) (int flags);
     void (*tcl_DoWhenIdle) (Tcl_IdleProc * proc, ClientData clientData);
     char * (*tcl_DStringAppend) (Tcl_DString * dsPtr, const char * str,
 int length);
     char * (*tcl_DStringAppendElement) (Tcl_DString * dsPtr, const char
 * string);
     void (*tcl_DStringEndSublist) (Tcl_DString * dsPtr);
     void (*tcl_DStringFree) (Tcl_DString * dsPtr);
     void (*tcl_DStringGetResult) (Tcl_Interp * interp, Tcl_DString *
 dsPtr);
     void (*tcl_DStringInit) (Tcl_DString * dsPtr);
     void (*tcl_DStringResult) (Tcl_Interp * interp, Tcl_DString *
 dsPtr);
     void (*tcl_DStringSetLength) (Tcl_DString * dsPtr, int length);
     void (*tcl_DStringStartSublist) (Tcl_DString * dsPtr);
     int (*tcl_Eof) (Tcl_Channel chan);
     char * (*tcl_ErrnoId) (void);
     char * (*tcl_ErrnoMsg) (int err);
     int (*tcl_Eval) (Tcl_Interp * interp, char * string);
     int (*tcl_EvalFile) (Tcl_Interp * interp, char * fileName);
     int (*tcl_EvalObj) (Tcl_Interp * interp, Tcl_Obj * objPtr);
     void (*tcl_EventuallyFree) (ClientData clientData, Tcl_FreeProc *
 freeProc);
     void (*tcl_Exit) (int status);
     int (*tcl_ExposeCommand) (Tcl_Interp * interp, char *
 hiddenCmdToken, char * cmdName);
     int (*tcl_ExprBoolean) (Tcl_Interp * interp, char * str, int * ptr);
     int (*tcl_ExprBooleanObj) (Tcl_Interp * interp, Tcl_Obj * objPtr,
 int * ptr);
     int (*tcl_ExprDouble) (Tcl_Interp * interp, char * str, double *
 ptr);
     int (*tcl_ExprDoubleObj) (Tcl_Interp * interp, Tcl_Obj * objPtr,
 double * ptr);
     int (*tcl_ExprLong) (Tcl_Interp * interp, char * str, long * ptr);
     int (*tcl_ExprLongObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, long
 * ptr);
     int (*tcl_ExprObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_Obj
 ** resultPtrPtr);
     int (*tcl_ExprString) (Tcl_Interp * interp, char * string);
     void (*tcl_Finalize) (void);
     void (*tcl_FindExecutable) (const char * argv0);
     Tcl_HashEntry * (*tcl_FirstHashEntry) (Tcl_HashTable * tablePtr,
 Tcl_HashSearch * searchPtr);
     int (*tcl_Flush) (Tcl_Channel chan);
     void (*tcl_FreeResult) (Tcl_Interp * interp);
     int (*tcl_GetAlias) (Tcl_Interp * interp, char * slaveCmd,
 Tcl_Interp ** targetInterpPtr, char ** targetCmdPtr, int * argcPtr, char
 *** argvPtr);
     int (*tcl_GetAliasObj) (Tcl_Interp * interp, char * slaveCmd,
 Tcl_Interp ** targetInterpPtr, char ** targetCmdPtr, int * objcPtr,
 Tcl_Obj *** objv);
     ClientData (*tcl_GetAssocData) (Tcl_Interp * interp, char * name,
 Tcl_InterpDeleteProc ** procPtr);
     Tcl_Channel (*tcl_GetChannel) (Tcl_Interp * interp, char * chanName,
 int * modePtr);
     int (*tcl_GetChannelBufferSize) (Tcl_Channel chan);
     int (*tcl_GetChannelHandle) (Tcl_Channel chan, int direction,
 ClientData * handlePtr);
     ClientData (*tcl_GetChannelInstanceData) (Tcl_Channel chan);
     int (*tcl_GetChannelMode) (Tcl_Channel chan);
     char * (*tcl_GetChannelName) (Tcl_Channel chan);
     int (*tcl_GetChannelOption) (Tcl_Interp * interp, Tcl_Channel chan,
 char * optionName, Tcl_DString * dsPtr);
     Tcl_ChannelType * (*tcl_GetChannelType) (Tcl_Channel chan);
     int (*tcl_GetCommandInfo) (Tcl_Interp * interp, char * cmdName,
 Tcl_CmdInfo * infoPtr);
     char * (*tcl_GetCommandName) (Tcl_Interp * interp, Tcl_Command
 command);
     int (*tcl_GetErrno) (void);
     char * (*tcl_GetHostName) (void);
     int (*tcl_GetInterpPath) (Tcl_Interp * askInterp, Tcl_Interp *
 slaveInterp);
     Tcl_Interp * (*tcl_GetMaster) (Tcl_Interp * interp);
     const char * (*tcl_GetNameOfExecutable) (void);
     Tcl_Obj * (*tcl_GetObjResult) (Tcl_Interp * interp);
 
     int (*tcl_GetOpenFile) (Tcl_Interp * interp, char * str, int
 forWriting, int checkUsage, ClientData * filePtr);
 
 
 
 
 
 
 
     Tcl_PathType (*tcl_GetPathType) (char * path);
     int (*tcl_Gets) (Tcl_Channel chan, Tcl_DString * dsPtr);
     int (*tcl_GetsObj) (Tcl_Channel chan, Tcl_Obj * objPtr);
     int (*tcl_GetServiceMode) (void);
     Tcl_Interp * (*tcl_GetSlave) (Tcl_Interp * interp, char *
 slaveName);
     Tcl_Channel (*tcl_GetStdChannel) (int type);
     char * (*tcl_GetStringResult) (Tcl_Interp * interp);
     char * (*tcl_GetVar) (Tcl_Interp * interp, char * varName, int
 flags);
     char * (*tcl_GetVar2) (Tcl_Interp * interp, char * part1, char *
 part2, int flags);
     int (*tcl_GlobalEval) (Tcl_Interp * interp, char * command);
     int (*tcl_GlobalEvalObj) (Tcl_Interp * interp, Tcl_Obj * objPtr);
     int (*tcl_HideCommand) (Tcl_Interp * interp, char * cmdName, char *
 hiddenCmdToken);
     int (*tcl_Init) (Tcl_Interp * interp);
     void (*tcl_InitHashTable) (Tcl_HashTable * tablePtr, int keyType);
     int (*tcl_InputBlocked) (Tcl_Channel chan);
     int (*tcl_InputBuffered) (Tcl_Channel chan);
     int (*tcl_InterpDeleted) (Tcl_Interp * interp);
     int (*tcl_IsSafe) (Tcl_Interp * interp);
     char * (*tcl_JoinPath) (int argc, char ** argv, Tcl_DString *
 resultPtr);
     int (*tcl_LinkVar) (Tcl_Interp * interp, char * varName, char *
 addr, int type);
     void *reserved188;
     Tcl_Channel (*tcl_MakeFileChannel) (ClientData handle, int mode);
     int (*tcl_MakeSafe) (Tcl_Interp * interp);
     Tcl_Channel (*tcl_MakeTcpClientChannel) (ClientData tcpSocket);
     char * (*tcl_Merge) (int argc, char ** argv);
     Tcl_HashEntry * (*tcl_NextHashEntry) (Tcl_HashSearch * searchPtr);
     void (*tcl_NotifyChannel) (Tcl_Channel channel, int mask);
     Tcl_Obj * (*tcl_ObjGetVar2) (Tcl_Interp * interp, Tcl_Obj *
 part1Ptr, Tcl_Obj * part2Ptr, int flags);
     Tcl_Obj * (*tcl_ObjSetVar2) (Tcl_Interp * interp, Tcl_Obj *
 part1Ptr, Tcl_Obj * part2Ptr, Tcl_Obj * newValuePtr, int flags);
 
     Tcl_Channel (*tcl_OpenCommandChannel) (Tcl_Interp * interp, int
 argc, char ** argv, int flags);
 
 
 
 
 
 
 
     Tcl_Channel (*tcl_OpenFileChannel) (Tcl_Interp * interp, char *
 fileName, char * modeString, int permissions);
     Tcl_Channel (*tcl_OpenTcpClient) (Tcl_Interp * interp, int port,
 char * address, char * myaddr, int myport, int async);
     Tcl_Channel (*tcl_OpenTcpServer) (Tcl_Interp * interp, int port,
 char * host, Tcl_TcpAcceptProc * acceptProc, ClientData callbackData);
     void (*tcl_Preserve) (ClientData data);
     void (*tcl_PrintDouble) (Tcl_Interp * interp, double value, char *
 dst);
     int (*tcl_PutEnv) (const char * string);
     char * (*tcl_PosixError) (Tcl_Interp * interp);
     void (*tcl_QueueEvent) (Tcl_Event * evPtr, Tcl_QueuePosition
 position);
     int (*tcl_Read) (Tcl_Channel chan, char * bufPtr, int toRead);
 
     void (*tcl_ReapDetachedProcs) (void);
 
 
 
 
 
 
 
     int (*tcl_RecordAndEval) (Tcl_Interp * interp, char * cmd, int
 flags);
     int (*tcl_RecordAndEvalObj) (Tcl_Interp * interp, Tcl_Obj * cmdPtr,
 int flags);
     void (*tcl_RegisterChannel) (Tcl_Interp * interp, Tcl_Channel chan);
     void (*tcl_RegisterObjType) (Tcl_ObjType * typePtr);
     Tcl_RegExp (*tcl_RegExpCompile) (Tcl_Interp * interp, char *
 string);
     int (*tcl_RegExpExec) (Tcl_Interp * interp, Tcl_RegExp regexp, const
 char * str, const char * start);
     int (*tcl_RegExpMatch) (Tcl_Interp * interp, char * str, char *
 pattern);
     void (*tcl_RegExpRange) (Tcl_RegExp regexp, int index, char **
 startPtr, char ** endPtr);
     void (*tcl_Release) (ClientData clientData);
     void (*tcl_ResetResult) (Tcl_Interp * interp);
     int (*tcl_ScanElement) (const char * str, int * flagPtr);
     int (*tcl_ScanCountedElement) (const char * str, int length, int *
 flagPtr);
     int (*tcl_Seek) (Tcl_Channel chan, int offset, int mode);
     int (*tcl_ServiceAll) (void);
     int (*tcl_ServiceEvent) (int flags);
     void (*tcl_SetAssocData) (Tcl_Interp * interp, char * name,
 Tcl_InterpDeleteProc * proc, ClientData clientData);
     void (*tcl_SetChannelBufferSize) (Tcl_Channel chan, int sz);
     int (*tcl_SetChannelOption) (Tcl_Interp * interp, Tcl_Channel chan,
 char * optionName, char * newValue);
     int (*tcl_SetCommandInfo) (Tcl_Interp * interp, char * cmdName,
 Tcl_CmdInfo * infoPtr);
     void (*tcl_SetErrno) (int err);
     void (*tcl_SetErrorCode) (Tcl_Interp * interp, ...);
     void (*tcl_SetMaxBlockTime) (Tcl_Time * timePtr);
     void (*tcl_SetPanicProc) (Tcl_PanicProc * panicProc);
     int (*tcl_SetRecursionLimit) (Tcl_Interp * interp, int depth);
     void (*tcl_SetResult) (Tcl_Interp * interp, char * str, Tcl_FreeProc
 * freeProc);
     int (*tcl_SetServiceMode) (int mode);
     void (*tcl_SetObjErrorCode) (Tcl_Interp * interp, Tcl_Obj *
 errorObjPtr);
     void (*tcl_SetObjResult) (Tcl_Interp * interp, Tcl_Obj *
 resultObjPtr);
     void (*tcl_SetStdChannel) (Tcl_Channel channel, int type);
     char * (*tcl_SetVar) (Tcl_Interp * interp, char * varName, char *
 newValue, int flags);
     char * (*tcl_SetVar2) (Tcl_Interp * interp, char * part1, char *
 part2, char * newValue, int flags);
     char * (*tcl_SignalId) (int sig);
     char * (*tcl_SignalMsg) (int sig);
     void (*tcl_SourceRCFile) (Tcl_Interp * interp);
     int (*tcl_SplitList) (Tcl_Interp * interp, const char * listStr, int
 * argcPtr, char *** argvPtr);
     void (*tcl_SplitPath) (const char * path, int * argcPtr, char ***
 argvPtr);
     void (*tcl_StaticPackage) (Tcl_Interp * interp, char * pkgName,
 Tcl_PackageInitProc * initProc, Tcl_PackageInitProc * safeInitProc);
     int (*tcl_StringMatch) (const char * str, const char * pattern);
     int (*tcl_Tell) (Tcl_Channel chan);
     int (*tcl_TraceVar) (Tcl_Interp * interp, char * varName, int flags,
 Tcl_VarTraceProc * proc, ClientData clientData);
     int (*tcl_TraceVar2) (Tcl_Interp * interp, char * part1, char *
 part2, int flags, Tcl_VarTraceProc * proc, ClientData clientData);
     char * (*tcl_TranslateFileName) (Tcl_Interp * interp, char * name,
 Tcl_DString * bufferPtr);
     int (*tcl_Ungets) (Tcl_Channel chan, char * str, int len, int
 atHead);
     void (*tcl_UnlinkVar) (Tcl_Interp * interp, char * varName);
     int (*tcl_UnregisterChannel) (Tcl_Interp * interp, Tcl_Channel
 chan);
     int (*tcl_UnsetVar) (Tcl_Interp * interp, char * varName, int
 flags);
     int (*tcl_UnsetVar2) (Tcl_Interp * interp, char * part1, char *
 part2, int flags);
     void (*tcl_UntraceVar) (Tcl_Interp * interp, char * varName, int
 flags, Tcl_VarTraceProc * proc, ClientData clientData);
     void (*tcl_UntraceVar2) (Tcl_Interp * interp, char * part1, char *
 part2, int flags, Tcl_VarTraceProc * proc, ClientData clientData);
     void (*tcl_UpdateLinkedVar) (Tcl_Interp * interp, char * varName);
     int (*tcl_UpVar) (Tcl_Interp * interp, char * frameName, char *
 varName, char * localName, int flags);
     int (*tcl_UpVar2) (Tcl_Interp * interp, char * frameName, char *
 part1, char * part2, char * localName, int flags);
     int (*tcl_VarEval) (Tcl_Interp * interp, ...);
     ClientData (*tcl_VarTraceInfo) (Tcl_Interp * interp, char * varName,
 int flags, Tcl_VarTraceProc * procPtr, ClientData prevClientData);
     ClientData (*tcl_VarTraceInfo2) (Tcl_Interp * interp, char * part1,
 char * part2, int flags, Tcl_VarTraceProc * procPtr, ClientData
 prevClientData);
     int (*tcl_Write) (Tcl_Channel chan, char * s, int slen);
     void (*tcl_WrongNumArgs) (Tcl_Interp * interp, int objc, Tcl_Obj
 *const objv[], char * message);
     int (*tcl_DumpActiveMemory) (char * fileName);
     void (*tcl_ValidateAllMemory) (char * file, int line);
     void (*tcl_AppendResultVA) (Tcl_Interp * interp, va_list argList);
     void (*tcl_AppendStringsToObjVA) (Tcl_Obj * objPtr, va_list
 argList);
     char * (*tcl_HashStats) (Tcl_HashTable * tablePtr);
     char * (*tcl_ParseVar) (Tcl_Interp * interp, char * str, char **
 termPtr);
     char * (*tcl_PkgPresent) (Tcl_Interp * interp, char * name, char *
 version, int exact);
     char * (*tcl_PkgPresentEx) (Tcl_Interp * interp, char * name, char *
 version, int exact, ClientData * clientDataPtr);
     int (*tcl_PkgProvide) (Tcl_Interp * interp, char * name, char *
 version);
     char * (*tcl_PkgRequire) (Tcl_Interp * interp, char * name, char *
 version, int exact);
     void (*tcl_SetErrorCodeVA) (Tcl_Interp * interp, va_list argList);
     int (*tcl_VarEvalVA) (Tcl_Interp * interp, va_list argList);
     Tcl_Pid (*tcl_WaitPid) (Tcl_Pid pid, int * statPtr, int options);
 
     void (*tcl_PanicVA) (char * format, va_list argList);
 
 
 
 
 
 
 
     void (*tcl_GetVersion) (int * major, int * minor, int * patchLevel,
 int * type);
     void (*tcl_InitMemory) (Tcl_Interp * interp);
     Tcl_Channel (*tcl_StackChannel) (Tcl_Interp * interp,
 Tcl_ChannelType * typePtr, ClientData instanceData, int mask,
 Tcl_Channel prevChan);
     int (*tcl_UnstackChannel) (Tcl_Interp * interp, Tcl_Channel chan);
     Tcl_Channel (*tcl_GetStackedChannel) (Tcl_Channel chan);
     void *reserved284;
     void *reserved285;
     void (*tcl_AppendObjToObj) (Tcl_Obj * objPtr, Tcl_Obj *
 appendObjPtr);
     Tcl_Encoding (*tcl_CreateEncoding) (Tcl_EncodingType * typePtr);
     void (*tcl_CreateThreadExitHandler) (Tcl_ExitProc * proc, ClientData
 clientData);
     void (*tcl_DeleteThreadExitHandler) (Tcl_ExitProc * proc, ClientData
 clientData);
     void (*tcl_DiscardResult) (Tcl_SavedResult * statePtr);
     int (*tcl_EvalEx) (Tcl_Interp * interp, char * script, int numBytes,
 int flags);
     int (*tcl_EvalObjv) (Tcl_Interp * interp, int objc, Tcl_Obj *const
 objv[], int flags);
     int (*tcl_EvalObjEx) (Tcl_Interp * interp, Tcl_Obj * objPtr, int
 flags);
     void (*tcl_ExitThread) (int status);
     int (*tcl_ExternalToUtf) (Tcl_Interp * interp, Tcl_Encoding
 encoding, const char * src, int srcLen, int flags, Tcl_EncodingState *
 statePtr, char * dst, int dstLen, int * srcReadPtr, int * dstWrotePtr,
 int * dstCharsPtr);
     char * (*tcl_ExternalToUtfDString) (Tcl_Encoding encoding, const
 char * src, int srcLen, Tcl_DString * dsPtr);
     void (*tcl_FinalizeThread) (void);
     void (*tcl_FinalizeNotifier) (ClientData clientData);
     void (*tcl_FreeEncoding) (Tcl_Encoding encoding);
     Tcl_ThreadId (*tcl_GetCurrentThread) (void);
     Tcl_Encoding (*tcl_GetEncoding) (Tcl_Interp * interp, const char *
 name);
     char * (*tcl_GetEncodingName) (Tcl_Encoding encoding);
     void (*tcl_GetEncodingNames) (Tcl_Interp * interp);
     int (*tcl_GetIndexFromObjStruct) (Tcl_Interp * interp, Tcl_Obj *
 objPtr, char ** tablePtr, int offset, char * msg, int flags, int *
 indexPtr);
     void * (*tcl_GetThreadData) (Tcl_ThreadDataKey * keyPtr, int size);
     Tcl_Obj * (*tcl_GetVar2Ex) (Tcl_Interp * interp, char * part1, char
 * part2, int flags);
     ClientData (*tcl_InitNotifier) (void);
     void (*tcl_MutexLock) (Tcl_Mutex * mutexPtr);
     void (*tcl_MutexUnlock) (Tcl_Mutex * mutexPtr);
     void (*tcl_ConditionNotify) (Tcl_Condition * condPtr);
     void (*tcl_ConditionWait) (Tcl_Condition * condPtr, Tcl_Mutex *
 mutexPtr, Tcl_Time * timePtr);
     int (*tcl_NumUtfChars) (const char * src, int len);
     int (*tcl_ReadChars) (Tcl_Channel channel, Tcl_Obj * objPtr, int
 charsToRead, int appendFlag);
     void (*tcl_RestoreResult) (Tcl_Interp * interp, Tcl_SavedResult *
 statePtr);
     void (*tcl_SaveResult) (Tcl_Interp * interp, Tcl_SavedResult *
 statePtr);
     int (*tcl_SetSystemEncoding) (Tcl_Interp * interp, const char *
 name);
     Tcl_Obj * (*tcl_SetVar2Ex) (Tcl_Interp * interp, char * part1, char
 * part2, Tcl_Obj * newValuePtr, int flags);
     void (*tcl_ThreadAlert) (Tcl_ThreadId threadId);
     void (*tcl_ThreadQueueEvent) (Tcl_ThreadId threadId, Tcl_Event*
 evPtr, Tcl_QueuePosition position);
     Tcl_UniChar (*tcl_UniCharAtIndex) (const char * src, int index);
     Tcl_UniChar (*tcl_UniCharToLower) (int ch);
     Tcl_UniChar (*tcl_UniCharToTitle) (int ch);
     Tcl_UniChar (*tcl_UniCharToUpper) (int ch);
     int (*tcl_UniCharToUtf) (int ch, char * buf);
     char * (*tcl_UtfAtIndex) (const char * src, int index);
     int (*tcl_UtfCharComplete) (const char * src, int len);
     int (*tcl_UtfBackslash) (const char * src, int * readPtr, char *
 dst);
     char * (*tcl_UtfFindFirst) (const char * src, int ch);
     char * (*tcl_UtfFindLast) (const char * src, int ch);
     char * (*tcl_UtfNext) (const char * src);
     char * (*tcl_UtfPrev) (const char * src, const char * start);
     int (*tcl_UtfToExternal) (Tcl_Interp * interp, Tcl_Encoding
 encoding, const char * src, int srcLen, int flags, Tcl_EncodingState *
 statePtr, char * dst, int dstLen, int * srcReadPtr, int * dstWrotePtr,
 int * dstCharsPtr);
     char * (*tcl_UtfToExternalDString) (Tcl_Encoding encoding, const
 char * src, int srcLen, Tcl_DString * dsPtr);
     int (*tcl_UtfToLower) (char * src);
     int (*tcl_UtfToTitle) (char * src);
     int (*tcl_UtfToUniChar) (const char * src, Tcl_UniChar * chPtr);
     int (*tcl_UtfToUpper) (char * src);
     int (*tcl_WriteChars) (Tcl_Channel chan, const char * src, int
 srcLen);
     int (*tcl_WriteObj) (Tcl_Channel chan, Tcl_Obj * objPtr);
     char * (*tcl_GetString) (Tcl_Obj * objPtr);
     char * (*tcl_GetDefaultEncodingDir) (void);
     void (*tcl_SetDefaultEncodingDir) (char * path);
     void (*tcl_AlertNotifier) (ClientData clientData);
     void (*tcl_ServiceModeHook) (int mode);
     int (*tcl_UniCharIsAlnum) (int ch);
     int (*tcl_UniCharIsAlpha) (int ch);
     int (*tcl_UniCharIsDigit) (int ch);
     int (*tcl_UniCharIsLower) (int ch);
     int (*tcl_UniCharIsSpace) (int ch);
     int (*tcl_UniCharIsUpper) (int ch);
     int (*tcl_UniCharIsWordChar) (int ch);
     int (*tcl_UniCharLen) (Tcl_UniChar * str);
     int (*tcl_UniCharNcmp) (const Tcl_UniChar * cs, const Tcl_UniChar *
 ct, unsigned long n);
     char * (*tcl_UniCharToUtfDString) (const Tcl_UniChar * string, int
 numChars, Tcl_DString * dsPtr);
     Tcl_UniChar * (*tcl_UtfToUniCharDString) (const char * string, int
 length, Tcl_DString * dsPtr);
     Tcl_RegExp (*tcl_GetRegExpFromObj) (Tcl_Interp * interp, Tcl_Obj *
 patObj, int flags);
     Tcl_Obj * (*tcl_EvalTokens) (Tcl_Interp * interp, Tcl_Token *
 tokenPtr, int count);
     void (*tcl_FreeParse) (Tcl_Parse * parsePtr);
     void (*tcl_LogCommandInfo) (Tcl_Interp * interp, char * script, char
 * command, int length);
     int (*tcl_ParseBraces) (Tcl_Interp * interp, char * string, int
 numBytes, Tcl_Parse * parsePtr, int append, char ** termPtr);
     int (*tcl_ParseCommand) (Tcl_Interp * interp, char * string, int
 numBytes, int nested, Tcl_Parse * parsePtr);
     int (*tcl_ParseExpr) (Tcl_Interp * interp, char * string, int
 numBytes, Tcl_Parse * parsePtr);
     int (*tcl_ParseQuotedString) (Tcl_Interp * interp, char * string,
 int numBytes, Tcl_Parse * parsePtr, int append, char ** termPtr);
     int (*tcl_ParseVarName) (Tcl_Interp * interp, char * string, int
 numBytes, Tcl_Parse * parsePtr, int append);
     char * (*tcl_GetCwd) (Tcl_Interp * interp, Tcl_DString * cwdPtr);
     int (*tcl_Chdir) (const char * dirName);
     int (*tcl_Access) (const char * path, int mode);
     int (*tcl_Stat) (const char * path, struct stat * bufPtr);
     int (*tcl_UtfNcmp) (const char * s1, const char * s2, unsigned long
 n);
     int (*tcl_UtfNcasecmp) (const char * s1, const char * s2, unsigned
 long n);
     int (*tcl_StringCaseMatch) (const char * str, const char * pattern,
 int nocase);
     int (*tcl_UniCharIsControl) (int ch);
     int (*tcl_UniCharIsGraph) (int ch);
     int (*tcl_UniCharIsPrint) (int ch);
     int (*tcl_UniCharIsPunct) (int ch);
     int (*tcl_RegExpExecObj) (Tcl_Interp * interp, Tcl_RegExp regexp,
 Tcl_Obj * objPtr, int offset, int nmatches, int flags);
     void (*tcl_RegExpGetInfo) (Tcl_RegExp regexp, Tcl_RegExpInfo *
 infoPtr);
     Tcl_Obj * (*tcl_NewUnicodeObj) (Tcl_UniChar * unicode, int
 numChars);
     void (*tcl_SetUnicodeObj) (Tcl_Obj * objPtr, Tcl_UniChar * unicode,
 int numChars);
     int (*tcl_GetCharLength) (Tcl_Obj * objPtr);
     Tcl_UniChar (*tcl_GetUniChar) (Tcl_Obj * objPtr, int index);
     Tcl_UniChar * (*tcl_GetUnicode) (Tcl_Obj * objPtr);
     Tcl_Obj * (*tcl_GetRange) (Tcl_Obj * objPtr, int first, int last);
     void (*tcl_AppendUnicodeToObj) (Tcl_Obj * objPtr, Tcl_UniChar *
 unicode, int length);
     int (*tcl_RegExpMatchObj) (Tcl_Interp * interp, Tcl_Obj * stringObj,
 Tcl_Obj * patternObj);
     void (*tcl_SetNotifier) (Tcl_NotifierProcs * notifierProcPtr);
     Tcl_Mutex * (*tcl_GetAllocMutex) (void);
     int (*tcl_GetChannelNames) (Tcl_Interp * interp);
     int (*tcl_GetChannelNamesEx) (Tcl_Interp * interp, char * pattern);
     int (*tcl_ProcObjCmd) (ClientData clientData, Tcl_Interp * interp,
 int objc, Tcl_Obj *const objv[]);
     void (*tcl_ConditionFinalize) (Tcl_Condition * condPtr);
     void (*tcl_MutexFinalize) (Tcl_Mutex * mutex);
     int (*tcl_CreateThread) (Tcl_ThreadId * idPtr, Tcl_ThreadCreateProc
 proc, ClientData clientData, int stackSize, int flags);
     int (*tcl_ReadRaw) (Tcl_Channel chan, char * dst, int bytesToRead);
     int (*tcl_WriteRaw) (Tcl_Channel chan, char * src, int srcLen);
     Tcl_Channel (*tcl_GetTopChannel) (Tcl_Channel chan);
     int (*tcl_ChannelBuffered) (Tcl_Channel chan);
     char * (*tcl_ChannelName) (Tcl_ChannelType * chanTypePtr);
     Tcl_ChannelTypeVersion (*tcl_ChannelVersion) (Tcl_ChannelType *
 chanTypePtr);
     Tcl_DriverBlockModeProc * (*tcl_ChannelBlockModeProc)
 (Tcl_ChannelType * chanTypePtr);
     Tcl_DriverCloseProc * (*tcl_ChannelCloseProc) (Tcl_ChannelType *
 chanTypePtr);
     Tcl_DriverClose2Proc * (*tcl_ChannelClose2Proc) (Tcl_ChannelType *
 chanTypePtr);
     Tcl_DriverInputProc * (*tcl_ChannelInputProc) (Tcl_ChannelType *
 chanTypePtr);
     Tcl_DriverOutputProc * (*tcl_ChannelOutputProc) (Tcl_ChannelType *
 chanTypePtr);
     Tcl_DriverSeekProc * (*tcl_ChannelSeekProc) (Tcl_ChannelType *
 chanTypePtr);
     Tcl_DriverSetOptionProc * (*tcl_ChannelSetOptionProc)
 (Tcl_ChannelType * chanTypePtr);
     Tcl_DriverGetOptionProc * (*tcl_ChannelGetOptionProc)
 (Tcl_ChannelType * chanTypePtr);
     Tcl_DriverWatchProc * (*tcl_ChannelWatchProc) (Tcl_ChannelType *
 chanTypePtr);
     Tcl_DriverGetHandleProc * (*tcl_ChannelGetHandleProc)
 (Tcl_ChannelType * chanTypePtr);
     Tcl_DriverFlushProc * (*tcl_ChannelFlushProc) (Tcl_ChannelType *
 chanTypePtr);
     Tcl_DriverHandlerProc * (*tcl_ChannelHandlerProc) (Tcl_ChannelType *
 chanTypePtr); } TclStubs;
 
 
 
 
 extern TclStubs *tclStubsPtr;
 # 1682
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h" 2
 
 
 
 
 
 extern void Tcl_Main (int argc, char **argv, Tcl_AppInitProc
 *appInitProc); # 1699
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
 extern int Tcl_AppInit (Tcl_Interp *interp);
 # 34
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 2
 
 
 # 1 "/usr/include/ctype.h" 1 3 4
 # 37 "/usr/include/ctype.h" 3 4
 extern int __attribute__((__cdecl__)) isalnum(int);
 extern int __attribute__((__cdecl__)) isalpha(int);
 extern int __attribute__((__cdecl__)) iscntrl(int);
 extern int __attribute__((__cdecl__)) isdigit(int);
 extern int __attribute__((__cdecl__)) isgraph(int);
 extern int __attribute__((__cdecl__)) islower(int);
 extern int __attribute__((__cdecl__)) isprint(int);
 extern int __attribute__((__cdecl__)) ispunct(int);
 extern int __attribute__((__cdecl__)) isspace(int);
 extern int __attribute__((__cdecl__)) isupper(int);
 extern int __attribute__((__cdecl__)) isxdigit(int);
 extern int __attribute__((__cdecl__)) toupper(int);
 extern int __attribute__((__cdecl__)) tolower(int);
 
 
 
 extern int __attribute__((__cdecl__)) _tolower(int);
 extern int __attribute__((__cdecl__)) _toupper(int);
 extern int __attribute__((__cdecl__)) isascii(int);
 extern int __attribute__((__cdecl__)) toascii(int);
 
 
 
 
 extern int __attribute__((__cdecl__)) isblank(int c);
 
 
 
 
 
 
 extern int __attribute__((__cdecl__)) _isctype(int, int); extern
 unsigned short *_pctype; # 95 "/usr/include/ctype.h" 3 4 extern int
 __mb_cur_max; # 37
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 2
 
 
 
 # 1
 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include
 /limits.h" 1 3 4 # 11
 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include
 /limits.h" 3 4 # 1
 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include
 /syslimits.h" 1 3 4
 
 
 
 
 
 
 # 1
 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include
 /limits.h" 1 3 4 # 122
 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include
 /limits.h" 3 4 # 1
 "/opt/gcc.3.3/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 1 3 4 #
 122 "/opt/gcc.3.3/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 3 4
 # 1 "/usr/include/limits.h" 1 3 4 # 220 "/usr/include/limits.h" 3 4 # 1
 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include
 /limits.h" 1 3 4 # 122
 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include
 /limits.h" 3 4 # 1
 "/opt/gcc.3.3/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 1 3 4 #
 122 "/opt/gcc.3.3/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 3 4
 # 1 "/usr/include/limits.h" 1 3 4 # 123
 "/opt/gcc.3.3/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 2 3 4 #
 123
 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include
 /limits.h" 2 3 4 # 221 "/usr/include/limits.h" 2 3 4 # 123
 "/opt/gcc.3.3/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 2 3 4 #
 123
 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include
 /limits.h" 2 3 4 # 8
 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include
 /syslimits.h" 2 3 4 # 12
 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include
 /limits.h" 2 3 4 # 41
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 2
 
 
 
 
 # 1 "/usr/include/stdlib.h" 1 3 4
 # 33 "/usr/include/stdlib.h" 3 4
 # 1
 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include
 /stddef.h" 1 3 4 # 151
 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include
 /stddef.h" 3 4 typedef int ptrdiff_t; # 325
 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include
 /stddef.h" 3 4 typedef short unsigned int wchar_t; # 34
 "/usr/include/stdlib.h" 2 3 4 # 49 "/usr/include/stdlib.h" 3 4 typedef
 struct {
         int quot;
         int rem;
 } div_t;
 
 typedef struct {
         long quot;
         long rem;
 } ldiv_t;
 # 67 "/usr/include/stdlib.h" 3 4
 extern int __mb_cur_max;
 
 
 
 
 extern void __attribute__((__cdecl__)) abort(void);
 extern int __attribute__((__cdecl__)) abs(int);
 extern int __attribute__((__cdecl__)) atexit(void
 (__attribute__((__cdecl__)) *)(void)); extern double
 __attribute__((__cdecl__)) atof(const char *); extern int
 __attribute__((__cdecl__)) atoi(const char *); extern long
 __attribute__((__cdecl__)) atol(const char *); extern void *
 __attribute__((__cdecl__)) bsearch (const void *, const void *, size_t,
 size_t,
                                 int (__attribute__((__cdecl__))*)(const
 void *, const void *)); extern void * __attribute__((__cdecl__))
 calloc(size_t, size_t); extern div_t __attribute__((__cdecl__)) div(int,
 int); extern void __attribute__((__cdecl__)) exit(int); extern void
 __attribute__((__cdecl__)) free(void *); extern char *
 __attribute__((__cdecl__)) getenv(const char *); extern long
 __attribute__((__cdecl__)) labs(long); extern ldiv_t
 __attribute__((__cdecl__)) ldiv(long, long); extern void *
 __attribute__((__cdecl__)) malloc(size_t); extern int
 __attribute__((__cdecl__)) mblen(const char *, size_t); extern size_t
 __attribute__((__cdecl__)) mbstowcs(wchar_t *, const char *, size_t);
 extern int __attribute__((__cdecl__)) mbtowc(wchar_t *, const char *,
 size_t); extern void __attribute__((__cdecl__)) qsort(void *, size_t,
 size_t,
                             int (__attribute__((__cdecl__)) *)(const
 void *, const void *)); extern int __attribute__((__cdecl__))
 rand(void); extern void * __attribute__((__cdecl__)) realloc(void *,
 size_t); extern void __attribute__((__cdecl__)) srand(unsigned int);
 extern double __attribute__((__cdecl__)) strtod(const char *, char **);
 extern long __attribute__((__cdecl__)) strtol(const char *, char **,
 int); extern unsigned long __attribute__((__cdecl__)) strtoul(const char
 *, char **, int); extern int __attribute__((__cdecl__)) system(const
 char *); extern size_t __attribute__((__cdecl__)) wcstombs(char *, const
 wchar_t *, size_t); extern int __attribute__((__cdecl__)) wctomb(char *,
 wchar_t);
 
 
 
 
 
 # 1 "/usr/include/sys/wait.h" 1 3 4
 # 95 "/usr/include/sys/wait.h" 3 4
 extern pid_t __attribute__((__cdecl__)) wait(int *stat_loc); extern
 pid_t __attribute__((__cdecl__)) waitpid(pid_t pid, int *stat_loc, int
 options); # 108 "/usr/include/stdlib.h" 2 3 4
 
 
 
 
 extern char * __attribute__((__cdecl__)) mktemp(char *);
 extern int __attribute__((__cdecl__)) mkstemp(char *);
 extern int __attribute__((__cdecl__)) putenv(const char *); extern char
 * __attribute__((__cdecl__)) ptsname(int fildes); extern int
 __attribute__((__cdecl__)) grantpt(int fildes); extern int
 __attribute__((__cdecl__)) unlockpt(int fildes); extern int
 __attribute__((__cdecl__)) ttyslot(void);
 
 extern void setkey(const char *);
 
 
 
 
 extern char * __attribute__((__cdecl__)) initstate(unsigned int seed,
 char *state, size_t size); extern char * __attribute__((__cdecl__))
 setstate(const char *state); extern long __attribute__((__cdecl__))
 random(void); extern void __attribute__((__cdecl__)) srandom(unsigned
 int seed);
 
 extern double __attribute__((__cdecl__)) drand48(void);
 extern double __attribute__((__cdecl__)) erand48(unsigned short []);
 extern long __attribute__((__cdecl__)) jrand48(unsigned short []);
 extern void __attribute__((__cdecl__)) lcong48(unsigned short []);
 extern long __attribute__((__cdecl__)) lrand48(void); extern long
 __attribute__((__cdecl__)) mrand48(void); extern long
 __attribute__((__cdecl__)) nrand48(unsigned short []); extern unsigned
 short * __attribute__((__cdecl__)) seed48(unsigned short []); extern
 void __attribute__((__cdecl__)) srand48(long seedval); # 148
 "/usr/include/stdlib.h" 3 4 extern long __attribute__((__cdecl__))
 a64l(const char *); extern char * __attribute__((__cdecl__)) l64a(long);
 extern char * __attribute__((__cdecl__)) ecvt(double, int, int*, int*);
 extern char * __attribute__((__cdecl__)) fcvt(double, int, int*, int*);
 extern char * __attribute__((__cdecl__)) gcvt(double, int, char *);
 extern char * __attribute__((__cdecl__)) realpath(const char *, char *);
 extern int __attribute__((__cdecl__)) getsubopt(char **, char * const *,
 char **);
 
 
 extern char *suboptarg;
 # 169 "/usr/include/stdlib.h" 3 4
 extern int __attribute__((__cdecl__)) setenv(const char *, const char *,
 int); # 46
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 2
 
 
 
 
 # 1 "/usr/include/string.h" 1 3 4
 # 53 "/usr/include/string.h" 3 4
 extern void * __attribute__((__cdecl__)) memchr(const void *, int,
 size_t); extern int __attribute__((__cdecl__)) memcmp(const void *,
 const void *, size_t); extern void * __attribute__((__cdecl__))
 memcpy(void *, const void *, size_t); extern void *
 __attribute__((__cdecl__)) memmove(void *, const void *, size_t); extern
 void * __attribute__((__cdecl__)) memset(void *, int, size_t); extern
 char * __attribute__((__cdecl__)) strcat(char *, const char *); extern
 char * __attribute__((__cdecl__)) strchr(const char *, int); extern int
 __attribute__((__cdecl__)) strcmp(const char *, const char *); extern
 int __attribute__((__cdecl__)) strcoll(const char *, const char *);
 extern char * __attribute__((__cdecl__)) strcpy(char *, const char *);
 extern size_t __attribute__((__cdecl__)) strcspn(const char *, const
 char *); extern char * __attribute__((__cdecl__)) strerror(int); extern
 size_t __attribute__((__cdecl__)) strlen(const char *); extern char *
 __attribute__((__cdecl__)) strncat(char *, const char *, size_t); extern
 int __attribute__((__cdecl__)) strncmp(const char *, const char *,
 size_t); extern char * __attribute__((__cdecl__)) strncpy(char *, const
 char *, size_t); extern char * __attribute__((__cdecl__)) strpbrk(const
 char *, const char *); extern char * __attribute__((__cdecl__))
 strrchr(const char *, int); extern size_t __attribute__((__cdecl__))
 strspn(const char *, const char *); extern char *
 __attribute__((__cdecl__)) strstr(const char *, const char *); extern
 char * __attribute__((__cdecl__)) strtok(char *, const char *); extern
 size_t __attribute__((__cdecl__)) strxfrm (char *, const char *,
 size_t);
 
 
 
 extern void* __attribute__((__cdecl__)) memccpy(void *, const void *,
 int, unsigned int);
 
 
 
 
 
 
 extern char* __attribute__((__cdecl__)) strdup(const char *);
 
 
 
 
 
 
 
 # 1 "/usr/include/strings.h" 1 3 4
 # 61 "/usr/include/strings.h" 3 4
 extern int __attribute__((__cdecl__)) bcmp (const void *, const void *,
 size_t); extern void __attribute__((__cdecl__)) bcopy (const void *,
 void *, size_t); extern void __attribute__((__cdecl__)) bzero (void *,
 size_t); extern int __attribute__((__cdecl__)) ffs (int); extern char *
 __attribute__((__cdecl__)) index (const char *, int); extern char *
 __attribute__((__cdecl__)) rindex (const char *, int); extern char *
 __attribute__((__cdecl__)) strdup (const char *); extern int
 __attribute__((__cdecl__)) strcasecmp (const char *, const char *);
 extern int __attribute__((__cdecl__)) strncasecmp (const char *, const
 char *, size_t);
 
 
 extern char * __attribute__((__cdecl__)) strsep (char **, const char *);
 extern char * __attribute__((__cdecl__)) strcasestr (const char *, const
 char *); # 94 "/usr/include/string.h" 2 3 4
 
 extern char *strsignal(int);
 extern char *strsigname(int);
 
 
 extern size_t strlcpy(char *, const char *, size_t );
 extern size_t strlcat(char *, const char *, size_t );
 # 51
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 2 # 70
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 struct Tcl_ResolvedVarInfo;
 
 typedef Tcl_Var (Tcl_ResolveRuntimeVarProc) ( Tcl_Interp* interp, struct
 Tcl_ResolvedVarInfo *vinfoPtr);
 
 
 typedef void (Tcl_ResolveVarDeleteProc) ( struct Tcl_ResolvedVarInfo
 *vinfoPtr); # 85
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef struct Tcl_ResolvedVarInfo {
     Tcl_ResolveRuntimeVarProc *fetchProc;
     Tcl_ResolveVarDeleteProc *deleteProc;
 } Tcl_ResolvedVarInfo;
 
 
 
 typedef int (Tcl_ResolveCompiledVarProc) ( Tcl_Interp* interp, char*
 name, int length, Tcl_Namespace *context, Tcl_ResolvedVarInfo **rPtr);
 
 
 
 typedef int (Tcl_ResolveVarProc) ( Tcl_Interp* interp, char* name,
 Tcl_Namespace *context, int flags, Tcl_Var *rPtr);
 
 
 
 typedef int (Tcl_ResolveCmdProc) (Tcl_Interp* interp, char* name,
 Tcl_Namespace *context, int flags, Tcl_Command *rPtr);
 
 
 
 typedef struct Tcl_ResolverInfo {
     Tcl_ResolveCmdProc *cmdResProc;
 
     Tcl_ResolveVarProc *varResProc;
 
 
     Tcl_ResolveCompiledVarProc *compiledVarResProc;
 
 
 } Tcl_ResolverInfo;
 # 128
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef struct Namespace {
     char *name;
 
 
 
     char *fullName;
 
     ClientData clientData;
 
     Tcl_NamespaceDeleteProc *deleteProc;
 
 
     struct Namespace *parentPtr;
 
 
     Tcl_HashTable childTable;
 
 
     long nsId;
     Tcl_Interp *interp;
 
     int flags;
 
 
     int activationCount;
 
 
 
 
     int refCount;
 
 
     Tcl_HashTable cmdTable;
 
 
 
 
 
 
 
     Tcl_HashTable varTable;
 
 
     char **exportArrayPtr;
 
 
 
 
 
 
     int numExportPatterns;
 
     int maxExportPatterns;
 
     int cmdRefEpoch;
 
 
 
 
     int resolverEpoch;
 
 
 
 
     Tcl_ResolveCmdProc *cmdResProc;
 
 
 
 
 
     Tcl_ResolveVarProc *varResProc;
 
 
 
 
 
 
     Tcl_ResolveCompiledVarProc *compiledVarResProc;
 
 
 
 
 
 
 } Namespace;
 # 260
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef struct VarTrace {
     Tcl_VarTraceProc *traceProc;
 
     ClientData clientData;
     int flags;
 
 
 
     struct VarTrace *nextPtr;
 
 } VarTrace;
 # 280
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef struct ActiveVarTrace {
     struct Var *varPtr;
     struct ActiveVarTrace *nextPtr;
 
 
 
     VarTrace *nextTracePtr;
 
 
 
 } ActiveVarTrace;
 
 
 
 
 
 
 
 typedef struct ArraySearch {
     int id;
 
 
     struct Var *varPtr;
 
     Tcl_HashSearch search;
 
     Tcl_HashEntry *nextEntry;
 
 
 
 
 
     struct ArraySearch *nextPtr;
 
 
 } ArraySearch;
 # 326
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef struct Var {
     union {
         Tcl_Obj *objPtr;
 
         Tcl_HashTable *tablePtr;
 
 
 
         struct Var *linkPtr;
 
 
 
     } value;
     char *name;
 
 
 
 
 
 
     Namespace *nsPtr;
 
 
     Tcl_HashEntry *hPtr;
 # 359
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
     int refCount;
 
 
 
 
 
 
 
     VarTrace *tracePtr;
 
     ArraySearch *searchPtr;
 
     int flags;
 
 } Var;
 # 528
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 struct Command;
 # 543
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef struct CompiledLocal {
     struct CompiledLocal *nextPtr;
 
 
 
     int nameLength;
 
 
     int frameIndex;
 
     int flags;
 
 
 
 
     Tcl_Obj *defValuePtr;
 
 
     Tcl_ResolvedVarInfo *resolveInfo;
 
 
 
 
 
 
     char name[4];
 
 
 
 
 } CompiledLocal;
 
 
 
 
 
 
 
 typedef struct Proc {
     struct Interp *iPtr;
 
     int refCount;
 
 
 
 
     struct Command *cmdPtr;
 
 
 
     Tcl_Obj *bodyPtr;
 
     int numArgs;
     int numCompiledLocals;
 
 
     CompiledLocal *firstLocalPtr;
 
 
 
 
     CompiledLocal *lastLocalPtr;
 
 
 } Proc;
 
 
 
 
 
 
 typedef struct Trace {
     int level;
 
     Tcl_CmdTraceProc *proc;
     ClientData clientData;
     struct Trace *nextPtr;
 } Trace;
 # 629
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef struct AssocData {
     Tcl_InterpDeleteProc *proc;
     ClientData clientData;
 } AssocData;
 # 648
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef struct CallFrame {
     Namespace *nsPtr;
 
     int isProcCallFrame;
 
 
 
 
 
 
     int objc;
 
     Tcl_Obj *const *objv;
     struct CallFrame *callerPtr;
 
 
 
     struct CallFrame *callerVarPtr;
 
 
 
 
 
 
     int level;
 
 
 
     Proc *procPtr;
 
 
 
 
 
     Tcl_HashTable *varTablePtr;
 
 
 
     int numCompiledLocals;
 
     Var* compiledLocals;
 
 
 
 } CallFrame;
 # 702
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef void **TclHandle;
 
 extern TclHandle TclHandleCreate (void *ptr);
 extern void TclHandleFree (TclHandle handle);
 extern TclHandle TclHandlePreserve (TclHandle handle);
 extern void TclHandleRelease (TclHandle handle);
 # 721
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef struct {
     char *command;
 
     int bytesAvl;
 
 } HistoryEvent;
 # 735
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef struct HistoryRev {
     int firstIndex;
 
     int lastIndex;
 
     int newSize;
     char *newBytes;
 
     struct HistoryRev *nextPtr;
 
 } HistoryRev;
 # 760
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef struct MathFunc {
     int builtinFuncIndex;
 
 
 
 
 
 
     int numArgs;
     Tcl_ValueType argTypes[5];
 
     Tcl_MathProc *proc;
 
     ClientData clientData;
 
 
 } MathFunc;
 
 
 
 
 
 
 
 extern void *TclThreadDataKeyGet (Tcl_ThreadDataKey *keyPtr); extern
 void TclThreadDataKeySet (Tcl_ThreadDataKey *keyPtr, void *data); # 807
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 struct CompileEnv;
 # 828
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef int (CompileProc) (Tcl_Interp *interp, Tcl_Parse *parsePtr,
 struct CompileEnv *compEnvPtr);
 
 
 
 
 
 
 
 typedef int (CompileHookProc) (Tcl_Interp *interp, struct CompileEnv
 *compEnvPtr, ClientData clientData); # 849
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef struct ExecEnv {
     Tcl_Obj **stackPtr;
 
     int stackTop;
 
     int stackEnd;
 } ExecEnv;
 # 873
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef struct LiteralEntry {
     struct LiteralEntry *nextPtr;
 
 
     Tcl_Obj *objPtr;
 
 
     int refCount;
 
 
 
 
 
 
 } LiteralEntry;
 
 typedef struct LiteralTable {
     LiteralEntry **buckets;
 
 
     LiteralEntry *staticBuckets[4];
 
 
 
     int numBuckets;
 
     int numEntries;
 
     int rebuildSize;
 
     int mask;
 
 } LiteralTable;
 # 958
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef struct ImportRef {
     struct Command *importedCmdPtr;
 
 
 
 
     struct ImportRef *nextPtr;
 
 
 
 
 } ImportRef;
 
 
 
 
 
 
 
 typedef struct ImportedCmdData {
     struct Command *realCmdPtr;
 
     struct Command *selfPtr;
 
 
 
 } ImportedCmdData;
 
 
 
 
 
 
 typedef struct Command {
     Tcl_HashEntry *hPtr;
 # 1002
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
     Namespace *nsPtr;
 
     int refCount;
 
 
 
 
 
     int cmdEpoch;
 
 
     CompileProc *compileProc;
 
     Tcl_ObjCmdProc *objProc;
     ClientData objClientData;
     Tcl_CmdProc *proc;
     ClientData clientData;
     Tcl_CmdDeleteProc *deleteProc;
 
 
     ClientData deleteData;
     int deleted;
 
 
 
     ImportRef *importRefPtr;
 
 
 
 
 
 
 } Command;
 # 1051
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef struct ResolverScheme {
     char *name;
     Tcl_ResolveCmdProc *cmdResProc;
 
 
     Tcl_ResolveVarProc *varResProc;
 
 
 
     Tcl_ResolveCompiledVarProc *compiledVarResProc;
 
 
 
     struct ResolverScheme *nextPtr;
 
 } ResolverScheme;
 # 1078
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef struct Interp {
 # 1096
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
     char *result;
 
 
     Tcl_FreeProc *freeProc;
 
 
 
 
 
 
     int errorLine;
 
 
     struct TclStubs *stubTable;
 
 
 
 
 
 
 
     TclHandle handle;
 
 
     Namespace *globalNsPtr;
     Tcl_HashTable *hiddenCmdTablePtr;
 
 
 
     ClientData interpInfo;
 
 
     Tcl_HashTable mathFuncTable;
 # 1140
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
     int numLevels;
 
 
 
 
     int maxNestingDepth;
 
 
     CallFrame *framePtr;
 
 
     CallFrame *varFramePtr;
 
 
 
 
     ActiveVarTrace *activeTracePtr;
 
 
     int returnCode;
 
     char *errorInfo;
 
     char *errorCode;
 
 
 
 
 
 
 
     char *appendResult;
 
 
     int appendAvl;
 
     int appendUsed;
 
 
 
 
 
 
     Tcl_HashTable packageTable;
 
 
 
     char *packageUnknown;
 # 1196
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
     int cmdCount;
 
     int evalFlags;
 
 
 
     int termOffset;
 
     LiteralTable literalTable;
 
 
 
 
 
     int compileEpoch;
 
 
 
 
     Proc *compiledProcPtr;
 
 
 
 
     ResolverScheme *resolverPtr;
 
 
 
 
 
     char *scriptFile;
 
 
 
 
     int flags;
     long randSeed;
     Trace *tracePtr;
     Tcl_HashTable *assocData;
 
 
     struct ExecEnv *execEnvPtr;
 
 
     Tcl_Obj *emptyObjPtr;
 
 
 
     char resultSpace[200 +1];
 
     Tcl_Obj *objResultPtr;
 
 
     Tcl_ThreadId threadId;
 # 1260
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 } Interp;
 # 1337
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef struct ParseValue {
     char *buffer;
 
     char *next;
 
     char *end;
 
     void (*expandProc) (struct ParseValue *pvPtr, int needed);
 
 
     ClientData clientData;
 
 } ParseValue;
 # 1386
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef enum {
     TCL_PLATFORM_UNIX,
     TCL_PLATFORM_MAC,
     TCL_PLATFORM_WINDOWS
 } TclPlatformType;
 # 1421
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef struct List {
     int maxElemCount;
     int elemCount;
     Tcl_Obj **elements;
 } List;
 # 1436
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef int (TclGetFileAttrProc) (Tcl_Interp *interp, int objIndex,
 const char *fileName, Tcl_Obj **attrObjPtrPtr);
 
 typedef int (TclSetFileAttrProc) (Tcl_Interp *interp, int objIndex,
 const char *fileName, Tcl_Obj *attrObjPtr);
 
 
 typedef struct TclFileAttrProcs {
     TclGetFileAttrProc *getProc;
     TclSetFileAttrProc *setProc;
 } TclFileAttrProcs;
 
 
 
 
 
 
 typedef struct TclFile_ *TclFile;
 # 1460
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef int (TclStatProc_) (const char *path, struct stat *buf); typedef
 int (TclAccessProc_) (const char *path, int mode); typedef Tcl_Channel
 (TclOpenFileChannelProc_) (Tcl_Interp *interp, char *fileName, char
 *modeString, int permissions);
 
 
 
 typedef int (*TclCmdProcType) (ClientData clientData, Tcl_Interp
 *interp, int argc, char *argv[]);
 
 typedef int (*TclObjCmdProcType) (ClientData clientData, Tcl_Interp
 *interp, int objc, struct Tcl_Obj * const objv[]);
 
 
 
 
 
 
 typedef struct TclpTime_t_ *TclpTime_t;
 # 1484
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 typedef struct GlobTypeData {
 
     int type;
 
     int perm;
 
     Tcl_Obj* macType;
 
     Tcl_Obj* macCreator;
 } GlobTypeData;
 # 1518
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 extern Tcl_Time tclBlockTime;
 extern int tclBlockTimeSet;
 extern char * tclExecutableName;
 extern char * tclNativeExecutableName;
 extern char * tclDefaultEncodingDir;
 extern Tcl_ChannelType tclFileChannelType;
 extern char * tclMemDumpFileName;
 extern TclPlatformType tclPlatform;
 extern char * tclpFileAttrStrings[];
 extern const TclFileAttrProcs tclpFileAttrProcs[];
 
 
 
 
 
 extern Tcl_ObjType tclBooleanType;
 extern Tcl_ObjType tclByteArrayType;
 extern Tcl_ObjType tclByteCodeType;
 extern Tcl_ObjType tclDoubleType;
 extern Tcl_ObjType tclIntType;
 extern Tcl_ObjType tclListType;
 extern Tcl_ObjType tclProcBodyType;
 extern Tcl_ObjType tclStringType;
 
 
 
 
 
 
 extern Tcl_Obj * tclFreeObjList;
 # 1560
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 extern char * tclEmptyStringRep;
 # 1569
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 extern int TclAccess (const char *path, int mode);
 
 extern int TclAccessDeleteProc (TclAccessProc_ *proc);
 extern int TclAccessInsertProc (TclAccessProc_ *proc);
 extern void TclAllocateFreeObjects (void);
 extern int TclArraySet (Tcl_Interp *interp, Tcl_Obj *arrayNameObj,
 Tcl_Obj *arrayElemObj);
 
 extern int TclCheckBadOctal (Tcl_Interp *interp, char *value);
 
 extern int TclCleanupChildren (Tcl_Interp *interp, int numPids, Tcl_Pid
 *pidPtr, Tcl_Channel errorChan);
 
 
 extern void TclCleanupCommand (Command *cmdPtr);
 extern int TclCopyChannel (Tcl_Interp *interp, Tcl_Channel inChan,
 Tcl_Channel outChan, int toRead, Tcl_Obj *cmdPtr);
 
 
 
 
 
 extern int TclCreatePipeline (Tcl_Interp *interp, int argc, char **argv,
 Tcl_Pid **pidArrayPtr, TclFile *inPipePtr, TclFile *outPipePtr, TclFile
 *errFilePtr);
 
 
 
 extern int TclCreateProc (Tcl_Interp *interp, Namespace *nsPtr, char
 *procName, Tcl_Obj *argsPtr, Tcl_Obj *bodyPtr, Proc **procPtrPtr);
 
 
 
 extern void TclDeleteCompiledLocalVars ( Interp *iPtr, CallFrame
 *framePtr);
 
 extern void TclDeleteVars (Interp *iPtr, Tcl_HashTable *tablePtr);
 
 extern int TclDoGlob (Tcl_Interp *interp, char *separators, Tcl_DString
 *headPtr, char *tail, GlobTypeData *types);
 
 
 extern void TclDumpMemoryInfo (FILE *outFile);
 extern void TclExpandTokenArray ( Tcl_Parse *parsePtr);
 
 extern void TclExprFloatError (Tcl_Interp *interp, double value);
 
 extern int TclFileAttrsCmd (Tcl_Interp *interp, int objc, Tcl_Obj *const
 objv[]);
 
 extern int TclFileCopyCmd (Tcl_Interp *interp, int argc, char **argv) ;
 
 extern int TclFileDeleteCmd (Tcl_Interp *interp, int argc, char **argv);
 
 extern int TclFileMakeDirsCmd (Tcl_Interp *interp, int argc, char
 **argv) ;
 
 extern int TclFileRenameCmd (Tcl_Interp *interp, int argc, char **argv)
 ;
 
 extern void TclFinalizeAllocSubsystem (void);
 extern void TclFinalizeCompExecEnv (void);
 extern void TclFinalizeCompilation (void);
 extern void TclFinalizeEncodingSubsystem (void);
 extern void TclFinalizeEnvironment (void);
 extern void TclFinalizeExecution (void);
 extern void TclFinalizeIOSubsystem (void);
 extern void TclFinalizeLoad (void);
 extern void TclFinalizeMemorySubsystem (void);
 extern void TclFinalizeNotifier (void);
 extern void TclFinalizeSynchronization (void);
 extern void TclFinalizeThreadData (void);
 extern void TclFindEncodings (const char *argv0);
 extern Proc * TclFindProc (Interp *iPtr, char *procName);
 
 extern int TclFormatInt (char *buffer, long n);
 extern void TclFreePackageInfo (Interp *iPtr);
 extern int TclGetDate (char *p, unsigned long now, long zone, unsigned
 long *timePtr);
 
 
 extern Tcl_Obj * TclGetElementOfIndexedArray ( Tcl_Interp *interp, int
 localIndex, Tcl_Obj *elemPtr, int leaveErrorMsg);
 
 
 extern char * TclGetExtension (char *name);
 extern int TclGetFrame (Tcl_Interp *interp, char *string, CallFrame
 **framePtrPtr);
 
 extern TclCmdProcType TclGetInterpProc (void);
 extern int TclGetIntForIndex (Tcl_Interp *interp, Tcl_Obj *objPtr, int
 endValue, int *indexPtr);
 
 extern Tcl_Obj * TclGetIndexedScalar (Tcl_Interp *interp, int
 localIndex, int leaveErrorMsg);
 
 extern int TclGetLong (Tcl_Interp *interp, char *string, long *longPtr);
 
 extern int TclGetLoadedPackages ( Tcl_Interp *interp, char *targetName);
 
 extern int TclGetNamespaceForQualName ( Tcl_Interp *interp, char
 *qualName, Namespace *cxtNsPtr, int flags, Namespace **nsPtrPtr,
 Namespace **altNsPtrPtr, Namespace **actualCxtPtrPtr, char
 **simpleNamePtr);
 
 
 
 
 
 extern TclObjCmdProcType TclGetObjInterpProc (void);
 extern int TclGetOpenMode (Tcl_Interp *interp, char *string, int
 *seekFlagPtr);
 
 extern Tcl_Command TclGetOriginalCommand ( Tcl_Command command);
 
 extern int TclGlob (Tcl_Interp *interp, char *pattern, char
 *unquotedPrefix, int globFlags, GlobTypeData* types);
 
 
 extern int TclGlobalInvoke (Tcl_Interp *interp, int argc, char **argv,
 int flags);
 
 extern int TclGuessPackageName (char *fileName, Tcl_DString *bufPtr);
 
 extern int TclHideUnsafeCommands ( Tcl_Interp *interp);
 
 extern int TclInExit (void);
 extern Tcl_Obj * TclIncrElementOfIndexedArray ( Tcl_Interp *interp, int
 localIndex, Tcl_Obj *elemPtr, long incrAmount);
 
 
 extern Tcl_Obj * TclIncrIndexedScalar ( Tcl_Interp *interp, int
 localIndex, long incrAmount);
 
 
 extern Tcl_Obj * TclIncrVar2 (Tcl_Interp *interp, Tcl_Obj *part1Ptr,
 Tcl_Obj *part2Ptr, long incrAmount, int flags);
 
 
 extern void TclInitAlloc (void);
 extern void TclInitCompiledLocals ( Tcl_Interp *interp, CallFrame
 *framePtr, Namespace *nsPtr);
 
 
 extern void TclInitDbCkalloc (void);
 extern void TclInitEncodingSubsystem (void);
 extern void TclInitIOSubsystem (void);
 extern void TclInitNamespaceSubsystem (void);
 extern void TclInitNotifier (void);
 extern void TclInitObjSubsystem (void);
 extern void TclInitSubsystems (const char *argv0);
 extern int TclInvoke (Tcl_Interp *interp, int argc, char **argv, int
 flags);
 
 extern int TclInvokeObjectCommand ( ClientData clientData, Tcl_Interp
 *interp, int argc, char **argv);
 
 
 extern int TclInvokeStringCommand ( ClientData clientData, Tcl_Interp
 *interp, int objc, Tcl_Obj *const objv[]);
 
 
 extern int TclIsLocalScalar (const char *src, int len);
 
 extern Proc * TclIsProc (Command *cmdPtr);
 extern Var * TclLookupVar (Tcl_Interp *interp, char *part1, char *part2,
 int flags, char *msg, int createPart1, int createPart2, Var
 **arrayPtrPtr);
 
 
 
 extern int TclMathInProgress (void);
 extern int TclNeedSpace (char *start, char *end);
 extern Tcl_Obj * TclNewProcBodyObj (Proc *procPtr);
 extern int TclObjCommandComplete (Tcl_Obj *cmdPtr);
 extern int TclObjInterpProc (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 
 extern int TclObjInvoke (Tcl_Interp *interp, int objc, Tcl_Obj *const
 objv[], int flags);
 
 extern int TclObjInvokeGlobal (Tcl_Interp *interp, int objc, Tcl_Obj
 *const objv[], int flags);
 
 extern int TclOpenFileChannelDeleteProc ( TclOpenFileChannelProc_
 *proc);
 
 extern int TclOpenFileChannelInsertProc ( TclOpenFileChannelProc_
 *proc);
 
 extern int TclpAccess (const char *filename, int mode);
 
 extern char * TclpAlloc (unsigned int size);
 extern int TclpCheckStackSpace (void);
 extern int TclpCopyFile (const char *source, const char *dest);
 
 extern int TclpCopyDirectory (const char *source, const char *dest,
 Tcl_DString *errorPtr);
 
 extern int TclpCreateDirectory (const char *path);
 extern int TclpDeleteFile (const char *path);
 extern void TclpExit (int status);
 extern void TclpFinalizeCondition ( Tcl_Condition *condPtr);
 
 extern void TclpFinalizeMutex (Tcl_Mutex *mutexPtr);
 extern void TclpFinalizeThreadData ( Tcl_ThreadDataKey *keyPtr);
 
 extern void TclpFinalizeThreadDataKey ( Tcl_ThreadDataKey *keyPtr);
 
 extern char * TclpFindExecutable ( const char *argv0);
 
 extern int TclpFindVariable (const char *name, int *lengthPtr);
 
 extern void TclpFree (char *ptr);
 extern unsigned long TclpGetClicks (void);
 extern Tcl_Channel TclpGetDefaultStdChannel (int type);
 extern unsigned long TclpGetSeconds (void);
 extern void TclpGetTime (Tcl_Time *time);
 extern int TclpGetTimeZone (unsigned long time);
 extern char * TclpGetUserHome (const char *name, Tcl_DString
 *bufferPtr);
 
 extern int TclpHasSockets (Tcl_Interp *interp);
 extern void TclpInitLibraryPath (const char *argv0);
 extern void TclpInitLock (void);
 extern void TclpInitPlatform (void);
 extern void TclpInitUnlock (void);
 extern int TclpListVolumes (Tcl_Interp *interp);
 extern void TclpMasterLock (void);
 extern void TclpMasterUnlock (void);
 extern int TclpMatchFiles (Tcl_Interp *interp, char *separators,
 Tcl_DString *dirPtr, char *pattern, char *tail);
 
 
 extern Tcl_Channel TclpOpenFileChannel (Tcl_Interp *interp, char
 *fileName, char *modeString, int permissions);
 
 
 extern char * TclpReadlink (const char *fileName, Tcl_DString *linkPtr);
 
 extern char * TclpRealloc (char *ptr, unsigned int size);
 
 extern void TclpReleaseFile (TclFile file);
 extern int TclpRemoveDirectory (const char *path, int recursive,
 Tcl_DString *errorPtr);
 
 extern int TclpRenameFile (const char *source, const char *dest);
 
 extern void TclpSetInitialEncodings (void);
 extern void TclpSetVariables (Tcl_Interp *interp);
 extern void * TclpSysAlloc (long size, int isBin);
 extern void TclpSysFree (void *ptr);
 extern void * TclpSysRealloc (void *cp, unsigned int size);
 
 extern void TclpUnloadFile (ClientData clientData);
 extern char * TclPrecTraceProc (ClientData clientData, Tcl_Interp
 *interp, char *name1, char *name2, int flags);
 
 
 extern int TclPreventAliasLoop (Tcl_Interp *interp, Tcl_Interp
 *cmdInterp, Tcl_Command cmd);
 
 extern void TclProcCleanupProc (Proc *procPtr);
 extern int TclProcCompileProc (Tcl_Interp *interp, Proc *procPtr,
 Tcl_Obj *bodyPtr, Namespace *nsPtr, const char *description, const char
 *procName);
 
 
 extern void TclProcDeleteProc (ClientData clientData);
 extern int TclProcInterpProc (ClientData clientData, Tcl_Interp *interp,
 int argc, char **argv);
 
 extern void * TclpThreadDataKeyGet ( Tcl_ThreadDataKey *keyPtr);
 
 extern void TclpThreadDataKeyInit ( Tcl_ThreadDataKey *keyPtr);
 
 extern void TclpThreadDataKeySet ( Tcl_ThreadDataKey *keyPtr, void
 *data);
 
 extern void TclpThreadExit (int status);
 extern void TclRememberCondition (Tcl_Condition *mutex);
 extern void TclRememberDataKey (Tcl_ThreadDataKey *mutex); extern void
 TclRememberMutex (Tcl_Mutex *mutex); extern int TclRenameCommand
 (Tcl_Interp *interp, char *oldName, char *newName) ;
 
 extern void TclResetShadowedCmdRefs ( Tcl_Interp *interp, Command
 *newCmdPtr);
 
 extern int TclServiceIdle (void);
 extern Tcl_Obj * TclSetElementOfIndexedArray ( Tcl_Interp *interp, int
 localIndex, Tcl_Obj *elemPtr, Tcl_Obj *objPtr, int leaveErrorMsg);
 
 
 
 extern Tcl_Obj * TclSetIndexedScalar (Tcl_Interp *interp, int
 localIndex, Tcl_Obj *objPtr, int leaveErrorMsg);
 
 
 extern char * TclSetPreInitScript (char *string);
 extern void TclSetupEnv (Tcl_Interp *interp);
 extern int TclSockGetPort (Tcl_Interp *interp, char *string, char
 *proto, int *portPtr);
 
 extern int TclSockMinimumBuffers (int sock, int size);
 
 extern int TclStat (const char *path, struct stat *buf);
 
 extern int TclStatDeleteProc (TclStatProc_ *proc);
 extern int TclStatInsertProc (TclStatProc_ *proc);
 extern void TclTeardownNamespace (Namespace *nsPtr);
 extern void TclTransferResult (Tcl_Interp *sourceInterp, int result,
 Tcl_Interp *targetInterp);
 
 extern int TclUpdateReturnInfo (Interp *iPtr);
 
 
 
 
 
 
 
 extern int Tcl_AfterObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_AppendObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_ArrayObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_BinaryObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_BreakObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_CaseObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_CatchObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_CdObjCmd (ClientData clientData, Tcl_Interp *interp, int
 objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_ClockObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_CloseObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_ConcatObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_ContinueObjCmd (ClientData clientData, Tcl_Interp
 *interp, int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_EncodingObjCmd (ClientData clientData, Tcl_Interp
 *interp, int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_EofObjCmd (ClientData clientData, Tcl_Interp *interp, int
 objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_ErrorObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_EvalObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_ExecObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_ExitObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_ExprObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_FblockedObjCmd (ClientData clientData, Tcl_Interp
 *interp, int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_FconfigureObjCmd (ClientData clientData, Tcl_Interp
 *interp, int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_FcopyObjCmd (ClientData dummy, Tcl_Interp *interp, int
 objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_FileObjCmd (ClientData dummy, Tcl_Interp *interp, int
 objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_FileEventObjCmd (ClientData clientData, Tcl_Interp
 *interp, int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_FlushObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_ForObjCmd (ClientData clientData, Tcl_Interp *interp, int
 objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_ForeachObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_FormatObjCmd (ClientData dummy, Tcl_Interp *interp, int
 objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_GetsObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_GlobalObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_GlobObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_IfObjCmd (ClientData clientData, Tcl_Interp *interp, int
 objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_IncrObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_InfoObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_InterpObjCmd (ClientData clientData, Tcl_Interp *interp,
 int argc, Tcl_Obj *const objv[]);
 
 extern int Tcl_JoinObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_LappendObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_LindexObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_LinsertObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_LlengthObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_ListObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_LoadObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_LrangeObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_LreplaceObjCmd (ClientData clientData, Tcl_Interp
 *interp, int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_LsearchObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_LsortObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_NamespaceObjCmd (ClientData clientData, Tcl_Interp
 *interp, int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_OpenObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_PackageObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_PidObjCmd (ClientData clientData, Tcl_Interp *interp, int
 objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_PutsObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_PwdObjCmd (ClientData clientData, Tcl_Interp *interp, int
 objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_ReadObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_RegexpObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_RegsubObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_RenameObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_ReturnObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_ScanObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_SeekObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_SetObjCmd (ClientData clientData, Tcl_Interp *interp, int
 objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_SplitObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_SocketObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_SourceObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_StringObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_SubstObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_SwitchObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_TellObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_TimeObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_TraceObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_UnsetObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_UpdateObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_UplevelObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_UpvarObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_VariableObjCmd (ClientData clientData, Tcl_Interp
 *interp, int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_VwaitObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]);
 
 extern int Tcl_WhileObjCmd (ClientData clientData, Tcl_Interp *interp,
 int objc, Tcl_Obj *const objv[]); # 2017
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 extern int TclCompileBreakCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr,
 struct CompileEnv *envPtr);
 
 extern int TclCompileCatchCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr,
 struct CompileEnv *envPtr);
 
 extern int TclCompileContinueCmd (Tcl_Interp *interp, Tcl_Parse
 *parsePtr, struct CompileEnv *envPtr);
 
 extern int TclCompileExprCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr,
 struct CompileEnv *envPtr);
 
 extern int TclCompileForCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr,
 struct CompileEnv *envPtr);
 
 extern int TclCompileForeachCmd (Tcl_Interp *interp, Tcl_Parse
 *parsePtr, struct CompileEnv *envPtr);
 
 extern int TclCompileIfCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr,
 struct CompileEnv *envPtr);
 
 extern int TclCompileIncrCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr,
 struct CompileEnv *envPtr);
 
 extern int TclCompileSetCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr,
 struct CompileEnv *envPtr);
 
 extern int TclCompileWhileCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr,
 struct CompileEnv *envPtr); # 2182
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 # 1
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclIntDecl
 s.h" 1 # 33
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclIntDecl
 s.h"
 extern int TclAccess (const char * path, int mode);
 
 extern int TclAccessDeleteProc ( TclAccessProc_ * proc);
 
 
 extern int TclAccessInsertProc ( TclAccessProc_ * proc);
 
 
 extern void TclAllocateFreeObjects (void);
 
 
 
 extern int TclCleanupChildren (Tcl_Interp * interp, int numPids, Tcl_Pid
 * pidPtr, Tcl_Channel errorChan); # 56
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclIntDecl
 s.h"
 extern void TclCleanupCommand (Command * cmdPtr);
 
 extern int TclCopyAndCollapse (int count, const char * src, char * dst);
 
 
 extern int TclCopyChannel (Tcl_Interp * interp, Tcl_Channel inChan,
 Tcl_Channel outChan, int toRead, Tcl_Obj * cmdPtr);
 
 
 
 
 extern int TclCreatePipeline (Tcl_Interp * interp, int argc, char **
 argv, Tcl_Pid ** pidArrayPtr, TclFile * inPipePtr, TclFile * outPipePtr,
 TclFile * errFilePtr); # 79
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclIntDecl
 s.h"
 extern int TclCreateProc (Tcl_Interp * interp, Namespace * nsPtr, char *
 procName, Tcl_Obj * argsPtr, Tcl_Obj * bodyPtr, Proc ** procPtrPtr);
 
 
 
 
 extern void TclDeleteCompiledLocalVars ( Interp * iPtr, CallFrame *
 framePtr);
 
 
 extern void TclDeleteVars (Interp * iPtr, Tcl_HashTable * tablePtr);
 
 
 extern int TclDoGlob (Tcl_Interp * interp, char * separators,
 Tcl_DString * headPtr, char * tail, GlobTypeData * types);
 
 
 
 extern void TclDumpMemoryInfo (FILE * outFile);
 
 
 extern void TclExprFloatError (Tcl_Interp * interp, double value);
 
 
 extern int TclFileAttrsCmd (Tcl_Interp * interp, int objc, Tcl_Obj
 *const objv[]);
 
 
 extern int TclFileCopyCmd (Tcl_Interp * interp, int argc, char ** argv);
 
 
 extern int TclFileDeleteCmd (Tcl_Interp * interp, int argc, char **
 argv);
 
 
 extern int TclFileMakeDirsCmd (Tcl_Interp * interp, int argc, char **
 argv);
 
 
 extern int TclFileRenameCmd (Tcl_Interp * interp, int argc, char **
 argv);
 
 
 extern int TclFindElement (Tcl_Interp * interp, const char * listStr,
 int listLength, const char ** elementPtr, const char ** nextPtr, int *
 sizePtr, int * bracePtr);
 
 
 
 
 
 extern Proc * TclFindProc (Interp * iPtr, char * procName);
 
 
 extern int TclFormatInt (char * buffer, long n);
 
 extern void TclFreePackageInfo (Interp * iPtr);
 
 
 extern int TclGetDate (char * p, unsigned long now, long zone, unsigned
 long * timePtr);
 
 
 extern Tcl_Channel TclpGetDefaultStdChannel (int type);
 
 extern Tcl_Obj * TclGetElementOfIndexedArray ( Tcl_Interp * interp, int
 localIndex, Tcl_Obj * elemPtr, int leaveErrorMsg);
 
 
 
 
 extern char * TclGetExtension (char * name);
 
 extern int TclGetFrame (Tcl_Interp * interp, char * str, CallFrame **
 framePtrPtr);
 
 
 extern TclCmdProcType TclGetInterpProc (void);
 
 extern int TclGetIntForIndex (Tcl_Interp * interp, Tcl_Obj * objPtr, int
 endValue, int * indexPtr);
 
 
 
 extern Tcl_Obj * TclGetIndexedScalar (Tcl_Interp * interp, int
 localIndex, int leaveErrorMsg);
 
 
 extern int TclGetLong (Tcl_Interp * interp, char * str, long * longPtr);
 
 
 extern int TclGetLoadedPackages ( Tcl_Interp * interp, char *
 targetName);
 
 
 extern int TclGetNamespaceForQualName ( Tcl_Interp * interp, char *
 qualName, Namespace * cxtNsPtr, int flags, Namespace ** nsPtrPtr,
 Namespace ** altNsPtrPtr, Namespace ** actualCxtPtrPtr, char **
 simpleNamePtr);
 
 
 
 
 
 
 
 extern TclObjCmdProcType TclGetObjInterpProc (void);
 
 extern int TclGetOpenMode (Tcl_Interp * interp, char * str, int *
 seekFlagPtr);
 
 
 extern Tcl_Command TclGetOriginalCommand ( Tcl_Command command);
 
 
 extern char * TclpGetUserHome (const char * name, Tcl_DString *
 bufferPtr);
 
 
 extern int TclGlobalInvoke (Tcl_Interp * interp, int argc, char ** argv,
 int flags);
 
 
 extern int TclGuessPackageName (char * fileName, Tcl_DString * bufPtr);
 
 
 extern int TclHideUnsafeCommands ( Tcl_Interp * interp);
 
 
 extern int TclInExit (void);
 
 extern Tcl_Obj * TclIncrElementOfIndexedArray ( Tcl_Interp * interp, int
 localIndex, Tcl_Obj * elemPtr, long incrAmount);
 
 
 
 extern Tcl_Obj * TclIncrIndexedScalar ( Tcl_Interp * interp, int
 localIndex, long incrAmount);
 
 
 
 extern Tcl_Obj * TclIncrVar2 (Tcl_Interp * interp, Tcl_Obj * part1Ptr,
 Tcl_Obj * part2Ptr, long incrAmount, int part1NotParsed);
 
 
 
 extern void TclInitCompiledLocals ( Tcl_Interp * interp, CallFrame *
 framePtr, Namespace * nsPtr);
 
 
 
 extern int TclInterpInit (Tcl_Interp * interp);
 
 extern int TclInvoke (Tcl_Interp * interp, int argc, char ** argv, int
 flags);
 
 
 extern int TclInvokeObjectCommand ( ClientData clientData, Tcl_Interp *
 interp, int argc, char ** argv);
 
 
 
 extern int TclInvokeStringCommand ( ClientData clientData, Tcl_Interp *
 interp, int objc, Tcl_Obj *const objv[]);
 
 
 
 extern Proc * TclIsProc (Command * cmdPtr);
 
 
 
 extern Var * TclLookupVar (Tcl_Interp * interp, char * part1, char *
 part2, int flags, char * msg, int createPart1, int createPart2, Var **
 arrayPtrPtr);
 
 
 
 
 extern int TclpMatchFiles (Tcl_Interp * interp, char * separators,
 Tcl_DString * dirPtr, char * pattern, char * tail);
 
 
 
 extern int TclNeedSpace (char * start, char * end);
 
 extern Tcl_Obj * TclNewProcBodyObj (Proc * procPtr);
 
 extern int TclObjCommandComplete (Tcl_Obj * cmdPtr);
 
 extern int TclObjInterpProc (ClientData clientData, Tcl_Interp * interp,
 int objc, Tcl_Obj *const objv[]);
 
 
 
 extern int TclObjInvoke (Tcl_Interp * interp, int objc, Tcl_Obj *const
 objv[], int flags);
 
 
 extern int TclObjInvokeGlobal (Tcl_Interp * interp, int objc, Tcl_Obj
 *const objv[], int flags);
 
 
 extern int TclOpenFileChannelDeleteProc ( TclOpenFileChannelProc_ *
 proc);
 
 
 extern int TclOpenFileChannelInsertProc ( TclOpenFileChannelProc_ *
 proc);
 
 
 extern int TclpAccess (const char * path, int mode);
 
 extern char * TclpAlloc (unsigned int size);
 
 extern int TclpCopyFile (const char * source, const char * dest);
 
 
 extern int TclpCopyDirectory (const char * source, const char * dest,
 Tcl_DString * errorPtr);
 
 
 extern int TclpCreateDirectory (const char * path);
 
 extern int TclpDeleteFile (const char * path);
 
 extern void TclpFree (char * ptr);
 
 extern unsigned long TclpGetClicks (void);
 
 extern unsigned long TclpGetSeconds (void);
 
 extern void TclpGetTime (Tcl_Time * time);
 
 extern int TclpGetTimeZone (unsigned long time);
 
 extern int TclpListVolumes (Tcl_Interp * interp);
 
 extern Tcl_Channel TclpOpenFileChannel (Tcl_Interp * interp, char *
 fileName, char * modeString, int permissions);
 
 
 
 extern char * TclpRealloc (char * ptr, unsigned int size);
 
 
 extern int TclpRemoveDirectory (const char * path, int recursive,
 Tcl_DString * errorPtr);
 
 
 extern int TclpRenameFile (const char * source, const char * dest);
 
 
 
 
 
 
 extern char * TclPrecTraceProc (ClientData clientData, Tcl_Interp *
 interp, char * name1, char * name2, int flags);
 
 
 
 extern int TclPreventAliasLoop (Tcl_Interp * interp, Tcl_Interp *
 cmdInterp, Tcl_Command cmd);
 
 
 
 extern void TclProcCleanupProc (Proc * procPtr);
 
 extern int TclProcCompileProc (Tcl_Interp * interp, Proc * procPtr,
 Tcl_Obj * bodyPtr, Namespace * nsPtr, const char * description, const
 char * procName);
 
 
 
 
 extern void TclProcDeleteProc (ClientData clientData);
 
 extern int TclProcInterpProc (ClientData clientData, Tcl_Interp *
 interp, int argc, char ** argv);
 
 
 extern int TclpStat (const char * path, struct stat * buf);
 
 
 extern int TclRenameCommand (Tcl_Interp * interp, char * oldName, char *
 newName);
 
 
 extern void TclResetShadowedCmdRefs ( Tcl_Interp * interp, Command *
 newCmdPtr);
 
 
 extern int TclServiceIdle (void);
 
 extern Tcl_Obj * TclSetElementOfIndexedArray ( Tcl_Interp * interp, int
 localIndex, Tcl_Obj * elemPtr, Tcl_Obj * objPtr, int leaveErrorMsg);
 
 
 
 
 extern Tcl_Obj * TclSetIndexedScalar (Tcl_Interp * interp, int
 localIndex, Tcl_Obj * objPtr, int leaveErrorMsg);
 
 
 
 
 extern char * TclSetPreInitScript (char * string);
 
 
 
 
 
 
 extern void TclSetupEnv (Tcl_Interp * interp);
 
 extern int TclSockGetPort (Tcl_Interp * interp, char * str, char *
 proto, int * portPtr);
 
 
 
 extern int TclSockMinimumBuffers (int sock, int size);
 # 359
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclIntDecl
 s.h"
 extern int TclStat (const char * path, struct stat * buf);
 
 
 extern int TclStatDeleteProc (TclStatProc_ * proc);
 
 extern int TclStatInsertProc (TclStatProc_ * proc);
 
 extern void TclTeardownNamespace (Namespace * nsPtr);
 
 extern int TclUpdateReturnInfo (Interp * iPtr);
 
 
 extern void Tcl_AddInterpResolvers ( Tcl_Interp * interp, char * name,
 Tcl_ResolveCmdProc * cmdProc, Tcl_ResolveVarProc * varProc,
 Tcl_ResolveCompiledVarProc * compiledVarProc);
 
 
 
 
 
 extern int Tcl_AppendExportList ( Tcl_Interp * interp, Tcl_Namespace *
 nsPtr, Tcl_Obj * objPtr);
 
 
 
 extern Tcl_Namespace * Tcl_CreateNamespace (Tcl_Interp * interp, char *
 name, ClientData clientData, Tcl_NamespaceDeleteProc * deleteProc);
 
 
 
 extern void Tcl_DeleteNamespace ( Tcl_Namespace * nsPtr);
 
 
 extern int Tcl_Export (Tcl_Interp * interp, Tcl_Namespace * nsPtr, char
 * pattern, int resetListFirst);
 
 
 
 extern Tcl_Command Tcl_FindCommand (Tcl_Interp * interp, char * name,
 Tcl_Namespace * contextNsPtr, int flags);
 
 
 
 extern Tcl_Namespace * Tcl_FindNamespace (Tcl_Interp * interp, char *
 name, Tcl_Namespace * contextNsPtr, int flags);
 
 
 
 extern int Tcl_GetInterpResolvers ( Tcl_Interp * interp, char * name,
 Tcl_ResolverInfo * resInfo);
 
 
 
 extern int Tcl_GetNamespaceResolvers ( Tcl_Namespace * namespacePtr,
 Tcl_ResolverInfo * resInfo);
 
 
 
 extern Tcl_Var Tcl_FindNamespaceVar ( Tcl_Interp * interp, char * name,
 Tcl_Namespace * contextNsPtr, int flags);
 
 
 
 extern int Tcl_ForgetImport (Tcl_Interp * interp, Tcl_Namespace * nsPtr,
 char * pattern);
 
 
 extern Tcl_Command Tcl_GetCommandFromObj ( Tcl_Interp * interp, Tcl_Obj
 * objPtr);
 
 
 extern void Tcl_GetCommandFullName ( Tcl_Interp * interp, Tcl_Command
 command, Tcl_Obj * objPtr);
 
 
 
 extern Tcl_Namespace * Tcl_GetCurrentNamespace ( Tcl_Interp * interp);
 
 
 extern Tcl_Namespace * Tcl_GetGlobalNamespace ( Tcl_Interp * interp);
 
 
 extern void Tcl_GetVariableFullName ( Tcl_Interp * interp, Tcl_Var
 variable, Tcl_Obj * objPtr);
 
 
 
 extern int Tcl_Import (Tcl_Interp * interp, Tcl_Namespace * nsPtr, char
 * pattern, int allowOverwrite);
 
 
 
 extern void Tcl_PopCallFrame (Tcl_Interp* interp);
 
 extern int Tcl_PushCallFrame (Tcl_Interp* interp, Tcl_CallFrame *
 framePtr, Tcl_Namespace * nsPtr, int isProcCallFrame);
 
 
 
 extern int Tcl_RemoveInterpResolvers ( Tcl_Interp * interp, char *
 name);
 
 
 extern void Tcl_SetNamespaceResolvers ( Tcl_Namespace * namespacePtr,
 Tcl_ResolveCmdProc * cmdProc, Tcl_ResolveVarProc * varProc,
 Tcl_ResolveCompiledVarProc * compiledVarProc);
 
 
 
 
 
 extern int TclpHasSockets (Tcl_Interp * interp);
 
 extern struct tm * TclpGetDate (TclpTime_t time, int useGMT);
 
 extern size_t TclpStrftime (char * s, size_t maxsize, const char *
 format, const struct tm * t);
 
 
 extern int TclpCheckStackSpace (void);
 
 
 extern int TclpChdir (const char * dirName);
 
 extern char * TclGetEnv (const char * name, Tcl_DString * valuePtr);
 
 
 extern int TclpLoadFile (Tcl_Interp * interp, char * fileName, char *
 sym1, char * sym2, Tcl_PackageInitProc ** proc1Ptr, Tcl_PackageInitProc
 ** proc2Ptr, ClientData * clientDataPtr);
 
 
 
 
 
 extern int TclLooksLikeInt (char * bytes, int length);
 
 
 extern char * TclpGetCwd (Tcl_Interp * interp, Tcl_DString * cwdPtr);
 
 
 extern int TclSetByteCodeFromAny ( Tcl_Interp * interp, Tcl_Obj *
 objPtr, CompileHookProc * hookProc, ClientData clientData);
 
 
 
 
 extern int TclAddLiteralObj ( struct CompileEnv * envPtr, Tcl_Obj *
 objPtr, LiteralEntry ** litPtrPtr);
 
 
 
 extern void TclHideLiteral (Tcl_Interp * interp, struct CompileEnv *
 envPtr, int index);
 
 
 extern struct AuxDataType * TclGetAuxDataType (char * typeName);
 
 extern TclHandle TclHandleCreate (void * ptr);
 
 extern void TclHandleFree (TclHandle handle);
 
 extern TclHandle TclHandlePreserve (TclHandle handle);
 
 extern void TclHandleRelease (TclHandle handle);
 
 extern int TclRegAbout (Tcl_Interp * interp, Tcl_RegExp re);
 
 
 extern void TclRegExpRangeUniChar (Tcl_RegExp re, int index, int *
 startPtr, int * endPtr);
 
 
 extern void TclSetLibraryPath (Tcl_Obj * pathPtr);
 
 extern Tcl_Obj * TclGetLibraryPath (void);
 
 
 
 extern void TclRegError (Tcl_Interp * interp, char * msg, int status);
 
 
 extern Var * TclVarTraceExists (Tcl_Interp * interp, char * varName);
 
 
 extern void TclSetStartupScriptFileName ( char * filename);
 
 
 extern char * TclGetStartupScriptFileName (void);
 
 extern int TclpMatchFilesTypes (Tcl_Interp * interp, char * separators,
 Tcl_DString * dirPtr, char * pattern, char * tail, GlobTypeData *
 types);
 
 
 
 
 extern int TclChannelTransform (Tcl_Interp * interp, Tcl_Channel chan,
 Tcl_Obj * cmdObjPtr);
 
 
 extern void TclChannelEventScriptInvoker ( ClientData clientData, int
 flags);
 
 
 typedef struct TclIntStubs {
     int magic;
     struct TclIntStubHooks *hooks;
 
     int (*tclAccess) (const char * path, int mode);
     int (*tclAccessDeleteProc) (TclAccessProc_ * proc);
     int (*tclAccessInsertProc) (TclAccessProc_ * proc);
     void (*tclAllocateFreeObjects) (void);
     void *reserved4;
 
     int (*tclCleanupChildren) (Tcl_Interp * interp, int numPids, Tcl_Pid
 * pidPtr, Tcl_Channel errorChan);
 
 
 
 
 
 
 
     void (*tclCleanupCommand) (Command * cmdPtr);
     int (*tclCopyAndCollapse) (int count, const char * src, char * dst);
     int (*tclCopyChannel) (Tcl_Interp * interp, Tcl_Channel inChan,
 Tcl_Channel outChan, int toRead, Tcl_Obj * cmdPtr);
 
     int (*tclCreatePipeline) (Tcl_Interp * interp, int argc, char **
 argv, Tcl_Pid ** pidArrayPtr, TclFile * inPipePtr, TclFile * outPipePtr,
 TclFile * errFilePtr);
 
 
 
 
 
 
 
     int (*tclCreateProc) (Tcl_Interp * interp, Namespace * nsPtr, char *
 procName, Tcl_Obj * argsPtr, Tcl_Obj * bodyPtr, Proc ** procPtrPtr);
     void (*tclDeleteCompiledLocalVars) (Interp * iPtr, CallFrame *
 framePtr);
     void (*tclDeleteVars) (Interp * iPtr, Tcl_HashTable * tablePtr);
     int (*tclDoGlob) (Tcl_Interp * interp, char * separators,
 Tcl_DString * headPtr, char * tail, GlobTypeData * types);
     void (*tclDumpMemoryInfo) (FILE * outFile);
     void *reserved15;
     void (*tclExprFloatError) (Tcl_Interp * interp, double value);
     int (*tclFileAttrsCmd) (Tcl_Interp * interp, int objc, Tcl_Obj
 *const objv[]);
     int (*tclFileCopyCmd) (Tcl_Interp * interp, int argc, char ** argv);
     int (*tclFileDeleteCmd) (Tcl_Interp * interp, int argc, char **
 argv);
     int (*tclFileMakeDirsCmd) (Tcl_Interp * interp, int argc, char **
 argv);
     int (*tclFileRenameCmd) (Tcl_Interp * interp, int argc, char **
 argv);
     int (*tclFindElement) (Tcl_Interp * interp, const char * listStr,
 int listLength, const char ** elementPtr, const char ** nextPtr, int *
 sizePtr, int * bracePtr);
     Proc * (*tclFindProc) (Interp * iPtr, char * procName);
     int (*tclFormatInt) (char * buffer, long n);
     void (*tclFreePackageInfo) (Interp * iPtr);
     void *reserved26;
     int (*tclGetDate) (char * p, unsigned long now, long zone, unsigned
 long * timePtr);
     Tcl_Channel (*tclpGetDefaultStdChannel) (int type);
     Tcl_Obj * (*tclGetElementOfIndexedArray) (Tcl_Interp * interp, int
 localIndex, Tcl_Obj * elemPtr, int leaveErrorMsg);
     void *reserved30;
     char * (*tclGetExtension) (char * name);
     int (*tclGetFrame) (Tcl_Interp * interp, char * str, CallFrame **
 framePtrPtr);
     TclCmdProcType (*tclGetInterpProc) (void);
     int (*tclGetIntForIndex) (Tcl_Interp * interp, Tcl_Obj * objPtr, int
 endValue, int * indexPtr);
     Tcl_Obj * (*tclGetIndexedScalar) (Tcl_Interp * interp, int
 localIndex, int leaveErrorMsg);
     int (*tclGetLong) (Tcl_Interp * interp, char * str, long * longPtr);
     int (*tclGetLoadedPackages) (Tcl_Interp * interp, char *
 targetName);
     int (*tclGetNamespaceForQualName) (Tcl_Interp * interp, char *
 qualName, Namespace * cxtNsPtr, int flags, Namespace ** nsPtrPtr,
 Namespace ** altNsPtrPtr, Namespace ** actualCxtPtrPtr, char **
 simpleNamePtr);
     TclObjCmdProcType (*tclGetObjInterpProc) (void);
     int (*tclGetOpenMode) (Tcl_Interp * interp, char * str, int *
 seekFlagPtr);
     Tcl_Command (*tclGetOriginalCommand) (Tcl_Command command);
     char * (*tclpGetUserHome) (const char * name, Tcl_DString *
 bufferPtr);
     int (*tclGlobalInvoke) (Tcl_Interp * interp, int argc, char ** argv,
 int flags);
     int (*tclGuessPackageName) (char * fileName, Tcl_DString * bufPtr);
     int (*tclHideUnsafeCommands) (Tcl_Interp * interp);
     int (*tclInExit) (void);
     Tcl_Obj * (*tclIncrElementOfIndexedArray) (Tcl_Interp * interp, int
 localIndex, Tcl_Obj * elemPtr, long incrAmount);
     Tcl_Obj * (*tclIncrIndexedScalar) (Tcl_Interp * interp, int
 localIndex, long incrAmount);
     Tcl_Obj * (*tclIncrVar2) (Tcl_Interp * interp, Tcl_Obj * part1Ptr,
 Tcl_Obj * part2Ptr, long incrAmount, int part1NotParsed);
     void (*tclInitCompiledLocals) (Tcl_Interp * interp, CallFrame *
 framePtr, Namespace * nsPtr);
     int (*tclInterpInit) (Tcl_Interp * interp);
     int (*tclInvoke) (Tcl_Interp * interp, int argc, char ** argv, int
 flags);
     int (*tclInvokeObjectCommand) (ClientData clientData, Tcl_Interp *
 interp, int argc, char ** argv);
     int (*tclInvokeStringCommand) (ClientData clientData, Tcl_Interp *
 interp, int objc, Tcl_Obj *const objv[]);
     Proc * (*tclIsProc) (Command * cmdPtr);
     void *reserved56;
     void *reserved57;
     Var * (*tclLookupVar) (Tcl_Interp * interp, char * part1, char *
 part2, int flags, char * msg, int createPart1, int createPart2, Var **
 arrayPtrPtr);
     int (*tclpMatchFiles) (Tcl_Interp * interp, char * separators,
 Tcl_DString * dirPtr, char * pattern, char * tail);
     int (*tclNeedSpace) (char * start, char * end);
     Tcl_Obj * (*tclNewProcBodyObj) (Proc * procPtr);
     int (*tclObjCommandComplete) (Tcl_Obj * cmdPtr);
     int (*tclObjInterpProc) (ClientData clientData, Tcl_Interp * interp,
 int objc, Tcl_Obj *const objv[]);
     int (*tclObjInvoke) (Tcl_Interp * interp, int objc, Tcl_Obj *const
 objv[], int flags);
     int (*tclObjInvokeGlobal) (Tcl_Interp * interp, int objc, Tcl_Obj
 *const objv[], int flags);
     int (*tclOpenFileChannelDeleteProc) (TclOpenFileChannelProc_ *
 proc);
     int (*tclOpenFileChannelInsertProc) (TclOpenFileChannelProc_ *
 proc);
     int (*tclpAccess) (const char * path, int mode);
 
     char * (*tclpAlloc) (unsigned int size);
 
     int (*tclpCopyFile) (const char * source, const char * dest);
     int (*tclpCopyDirectory) (const char * source, const char * dest,
 Tcl_DString * errorPtr);
     int (*tclpCreateDirectory) (const char * path);
     int (*tclpDeleteFile) (const char * path);
 
     void (*tclpFree) (char * ptr);
 
     unsigned long (*tclpGetClicks) (void);
     unsigned long (*tclpGetSeconds) (void);
     void (*tclpGetTime) (Tcl_Time * time);
     int (*tclpGetTimeZone) (unsigned long time);
     int (*tclpListVolumes) (Tcl_Interp * interp);
     Tcl_Channel (*tclpOpenFileChannel) (Tcl_Interp * interp, char *
 fileName, char * modeString, int permissions);
 
     char * (*tclpRealloc) (char * ptr, unsigned int size);
 
     int (*tclpRemoveDirectory) (const char * path, int recursive,
 Tcl_DString * errorPtr);
     int (*tclpRenameFile) (const char * source, const char * dest);
     void *reserved84;
     void *reserved85;
     void *reserved86;
     void *reserved87;
     char * (*tclPrecTraceProc) (ClientData clientData, Tcl_Interp *
 interp, char * name1, char * name2, int flags);
     int (*tclPreventAliasLoop) (Tcl_Interp * interp, Tcl_Interp *
 cmdInterp, Tcl_Command cmd);
     void *reserved90;
     void (*tclProcCleanupProc) (Proc * procPtr);
     int (*tclProcCompileProc) (Tcl_Interp * interp, Proc * procPtr,
 Tcl_Obj * bodyPtr, Namespace * nsPtr, const char * description, const
 char * procName);
     void (*tclProcDeleteProc) (ClientData clientData);
     int (*tclProcInterpProc) (ClientData clientData, Tcl_Interp *
 interp, int argc, char ** argv);
     int (*tclpStat) (const char * path, struct stat * buf);
     int (*tclRenameCommand) (Tcl_Interp * interp, char * oldName, char *
 newName);
     void (*tclResetShadowedCmdRefs) (Tcl_Interp * interp, Command *
 newCmdPtr);
     int (*tclServiceIdle) (void);
     Tcl_Obj * (*tclSetElementOfIndexedArray) (Tcl_Interp * interp, int
 localIndex, Tcl_Obj * elemPtr, Tcl_Obj * objPtr, int leaveErrorMsg);
     Tcl_Obj * (*tclSetIndexedScalar) (Tcl_Interp * interp, int
 localIndex, Tcl_Obj * objPtr, int leaveErrorMsg);
 
     char * (*tclSetPreInitScript) (char * string);
 
 
 
 
 
 
 
     void (*tclSetupEnv) (Tcl_Interp * interp);
     int (*tclSockGetPort) (Tcl_Interp * interp, char * str, char *
 proto, int * portPtr);
 
     int (*tclSockMinimumBuffers) (int sock, int size);
 
 
 
 
 
 
 
     int (*tclStat) (const char * path, struct stat * buf);
     int (*tclStatDeleteProc) (TclStatProc_ * proc);
     int (*tclStatInsertProc) (TclStatProc_ * proc);
     void (*tclTeardownNamespace) (Namespace * nsPtr);
     int (*tclUpdateReturnInfo) (Interp * iPtr);
     void *reserved110;
     void (*tcl_AddInterpResolvers) (Tcl_Interp * interp, char * name,
 Tcl_ResolveCmdProc * cmdProc, Tcl_ResolveVarProc * varProc,
 Tcl_ResolveCompiledVarProc * compiledVarProc);
     int (*tcl_AppendExportList) (Tcl_Interp * interp, Tcl_Namespace *
 nsPtr, Tcl_Obj * objPtr);
     Tcl_Namespace * (*tcl_CreateNamespace) (Tcl_Interp * interp, char *
 name, ClientData clientData, Tcl_NamespaceDeleteProc * deleteProc);
     void (*tcl_DeleteNamespace) (Tcl_Namespace * nsPtr);
     int (*tcl_Export) (Tcl_Interp * interp, Tcl_Namespace * nsPtr, char
 * pattern, int resetListFirst);
     Tcl_Command (*tcl_FindCommand) (Tcl_Interp * interp, char * name,
 Tcl_Namespace * contextNsPtr, int flags);
     Tcl_Namespace * (*tcl_FindNamespace) (Tcl_Interp * interp, char *
 name, Tcl_Namespace * contextNsPtr, int flags);
     int (*tcl_GetInterpResolvers) (Tcl_Interp * interp, char * name,
 Tcl_ResolverInfo * resInfo);
     int (*tcl_GetNamespaceResolvers) (Tcl_Namespace * namespacePtr,
 Tcl_ResolverInfo * resInfo);
     Tcl_Var (*tcl_FindNamespaceVar) (Tcl_Interp * interp, char * name,
 Tcl_Namespace * contextNsPtr, int flags);
     int (*tcl_ForgetImport) (Tcl_Interp * interp, Tcl_Namespace * nsPtr,
 char * pattern);
     Tcl_Command (*tcl_GetCommandFromObj) (Tcl_Interp * interp, Tcl_Obj *
 objPtr);
     void (*tcl_GetCommandFullName) (Tcl_Interp * interp, Tcl_Command
 command, Tcl_Obj * objPtr);
     Tcl_Namespace * (*tcl_GetCurrentNamespace) (Tcl_Interp * interp);
     Tcl_Namespace * (*tcl_GetGlobalNamespace) (Tcl_Interp * interp);
     void (*tcl_GetVariableFullName) (Tcl_Interp * interp, Tcl_Var
 variable, Tcl_Obj * objPtr);
     int (*tcl_Import) (Tcl_Interp * interp, Tcl_Namespace * nsPtr, char
 * pattern, int allowOverwrite);
     void (*tcl_PopCallFrame) (Tcl_Interp* interp);
     int (*tcl_PushCallFrame) (Tcl_Interp* interp, Tcl_CallFrame *
 framePtr, Tcl_Namespace * nsPtr, int isProcCallFrame);
     int (*tcl_RemoveInterpResolvers) (Tcl_Interp * interp, char * name);
     void (*tcl_SetNamespaceResolvers) (Tcl_Namespace * namespacePtr,
 Tcl_ResolveCmdProc * cmdProc, Tcl_ResolveVarProc * varProc,
 Tcl_ResolveCompiledVarProc * compiledVarProc);
     int (*tclpHasSockets) (Tcl_Interp * interp);
     struct tm * (*tclpGetDate) (TclpTime_t time, int useGMT);
     size_t (*tclpStrftime) (char * s, size_t maxsize, const char *
 format, const struct tm * t);
     int (*tclpCheckStackSpace) (void);
     void *reserved136;
     int (*tclpChdir) (const char * dirName);
     char * (*tclGetEnv) (const char * name, Tcl_DString * valuePtr);
     int (*tclpLoadFile) (Tcl_Interp * interp, char * fileName, char *
 sym1, char * sym2, Tcl_PackageInitProc ** proc1Ptr, Tcl_PackageInitProc
 ** proc2Ptr, ClientData * clientDataPtr);
     int (*tclLooksLikeInt) (char * bytes, int length);
     char * (*tclpGetCwd) (Tcl_Interp * interp, Tcl_DString * cwdPtr);
     int (*tclSetByteCodeFromAny) (Tcl_Interp * interp, Tcl_Obj * objPtr,
 CompileHookProc * hookProc, ClientData clientData);
     int (*tclAddLiteralObj) (struct CompileEnv * envPtr, Tcl_Obj *
 objPtr, LiteralEntry ** litPtrPtr);
     void (*tclHideLiteral) (Tcl_Interp * interp, struct CompileEnv *
 envPtr, int index);
     struct AuxDataType * (*tclGetAuxDataType) (char * typeName);
     TclHandle (*tclHandleCreate) (void * ptr);
     void (*tclHandleFree) (TclHandle handle);
     TclHandle (*tclHandlePreserve) (TclHandle handle);
     void (*tclHandleRelease) (TclHandle handle);
     int (*tclRegAbout) (Tcl_Interp * interp, Tcl_RegExp re);
     void (*tclRegExpRangeUniChar) (Tcl_RegExp re, int index, int *
 startPtr, int * endPtr);
     void (*tclSetLibraryPath) (Tcl_Obj * pathPtr);
     Tcl_Obj * (*tclGetLibraryPath) (void);
     void *reserved154;
     void *reserved155;
     void (*tclRegError) (Tcl_Interp * interp, char * msg, int status);
     Var * (*tclVarTraceExists) (Tcl_Interp * interp, char * varName);
     void (*tclSetStartupScriptFileName) (char * filename);
     char * (*tclGetStartupScriptFileName) (void);
     int (*tclpMatchFilesTypes) (Tcl_Interp * interp, char * separators,
 Tcl_DString * dirPtr, char * pattern, char * tail, GlobTypeData *
 types);
     int (*tclChannelTransform) (Tcl_Interp * interp, Tcl_Channel chan,
 Tcl_Obj * cmdObjPtr);
     void (*tclChannelEventScriptInvoker) (ClientData clientData, int
 flags); } TclIntStubs;
 
 
 
 
 extern TclIntStubs *tclIntStubsPtr;
 # 2183
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
 2 # 31
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcustom.
 h" 2 # 87
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcustom.
 h"
 typedef Tcl_UniChar chr;
 typedef int pchr;
 typedef unsigned uchr;
 typedef int celt;
 # 114
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcustom.
 h"
 # 1
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regex.h" 1
 # 135
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regex.h"
 typedef long regoff_t;
 # 145
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regex.h"
 typedef void re_void;
 # 165
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regex.h"
 typedef struct {
         int re_magic;
         size_t re_nsub;
         long re_info;
 # 183
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regex.h"
         int re_csize;
         char *re_endp;
 
         char *re_guts;
         char *re_fns;
 } regex_t;
 
 
 typedef struct {
         regoff_t rm_so;
         regoff_t rm_eo;
 } regmatch_t;
 
 
 typedef struct {
         regmatch_t rm_extend;
 } rm_detail_t;
 # 314
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regex.h"
 int TclReComp (regex_t *, const Tcl_UniChar *, size_t, int);
 # 323
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regex.h"
 int TclReExec (regex_t *, const Tcl_UniChar *, size_t, rm_detail_t *,
 size_t, regmatch_t [], int);
 
 re_void TclReFree (regex_t *);
 extern size_t TclReError (int, const regex_t *, char *, size_t); # 115
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcustom.
 h" 2 # 39
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
 2 # 60
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
 # 1 "/usr/include/assert.h" 1 3 4
 # 47 "/usr/include/assert.h" 3 4
 void _assert (const void*, const void*, unsigned int);
 # 61
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
 2 # 173
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
 typedef short color;
 typedef int pcolor;
 # 191
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
 struct colors {
         color ccolor[(1<<8)];
 };
 struct ptrs {
         union tree *pptr[(1<<8)];
 };
 union tree {
         struct colors colors;
         struct ptrs ptrs;
 };
 
 
 
 
 struct colordesc {
         uchr nchrs;
         color sub;
 
         struct arc *arcs;
         int flags;
 
 
 
         union tree *block;
 };
 
 
 struct colormap {
         int magic;
 
         struct vars *v;
         size_t ncds;
         size_t max;
         color free;
         struct colordesc *cd;
 
 
         struct colordesc cdspace[((size_t)10)];
         union tree tree[((16 +8 -1)/8)];
 };
 # 254
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
 struct cvec {
         int nchrs;
         int chrspace;
         chr *chrs;
         int nranges;
         int rangespace;
         chr *ranges;
         int nmcces;
         int mccespace;
         int nmccechrs;
         chr *mcces[1];
 
 };
 # 279
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
 struct state;
 
 struct arc {
         int type;
 
         color co;
         struct state *from;
         struct state *to;
         struct arc *outchain;
 
         struct arc *inchain;
         struct arc *colorchain;
 };
 
 struct arcbatch {
         struct arcbatch *next;
 
         struct arc a[10];
 };
 
 struct state {
         int no;
 
         char flag;
         int nins;
         struct arc *ins;
         int nouts;
         struct arc *outs;
         struct arc *free;
         struct state *tmp;
         struct state *next;
         struct state *prev;
         struct arcbatch oas;
         int noas;
 };
 
 struct nfa {
         struct state *pre;
         struct state *init;
         struct state *final;
         struct state *post;
         int nstates;
         struct state *states;
         struct state *slast;
         struct state *free;
         struct colormap *cm;
         color bos[2];
         color eos[2];
         struct vars *v;
         struct nfa *parent;
 };
 
 
 
 
 
 
 struct carc {
         color co;
         int to;
 };
 
 struct cnfa {
         int nstates;
         int ncolors;
         int flags;
 
         int pre;
         int post;
         color bos[2];
         color eos[2];
         struct carc **states;
         struct carc *arcs;
 };
 # 361
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
 struct subre {
         char op;
         char flags;
 # 378
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
         short retry;
         int subno;
         short min;
         short max;
         struct subre *left;
         struct subre *right;
         struct state *begin;
         struct state *end;
         struct cnfa cnfa;
         struct subre *chain;
 };
 
 
 
 
 
 
 
 struct fns {
         void (*free) (regex_t *);
 };
 
 
 
 
 
 
 struct guts {
         int magic;
 
         int cflags;
         long info;
         size_t nsub;
         struct subre *tree;
         struct cnfa search;
         int ntree;
         struct colormap cmap;
         int (*compare) (const chr *, const chr *, size_t);
         struct subre *lacons;
         int nlacons;
 };
 # 34
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
 2
 
 
 
 
 
 
 
 int TclReComp (regex_t *, const chr *, size_t, int);
 static void moresubs (struct vars *, int);
 static int freev (struct vars *, int);
 static void makesearch (struct vars *, struct nfa *);
 static struct subre *parse (struct vars *, int, int, struct state *,
 struct state *); static struct subre *parsebranch (struct vars *, int,
 int, struct state *, struct state *, int); static void parseqatom
 (struct vars *, int, int, struct state *, struct state *, struct subre
 *); static void nonword (struct vars *, int, struct state *, struct
 state *); static void word (struct vars *, int, struct state *, struct
 state *); static int scannum (struct vars *); static void repeat (struct
 vars *, struct state *, struct state *, int, int); static void bracket
 (struct vars *, struct state *, struct state *); static void cbracket
 (struct vars *, struct state *, struct state *); static void brackpart
 (struct vars *, struct state *, struct state *); static chr *scanplain
 (struct vars *); static void leaders (struct vars *, struct cvec *);
 static void onechr (struct vars *, pchr, struct state *, struct state
 *); static void dovec (struct vars *, struct cvec *, struct state *,
 struct state *); static celt nextleader (struct vars *, pchr, pchr);
 static void wordchrs (struct vars *); static struct subre *subre (struct
 vars *, int, int, struct state *, struct state *); static void freesubre
 (struct vars *, struct subre *); static void freesrnode (struct vars *,
 struct subre *); static void optst (struct vars *, struct subre *);
 static int numst (struct subre *, int); static void markst (struct subre
 *); static void cleanst (struct vars *); static long nfatree (struct
 vars *, struct subre *, FILE *); static long nfanode (struct vars *,
 struct subre *, FILE *); static int newlacon (struct vars *, struct
 state *, struct state *, int); static void freelacons (struct subre *,
 int); static void rfree (regex_t *); static void dump (regex_t *, FILE
 *); static void dumpst (struct subre *, FILE *, int); static void stdump
 (struct subre *, FILE *, int); static char *stid (struct subre *, char
 *, size_t);
 
 static void lexstart (struct vars *);
 static void prefixes (struct vars *);
 static void lexnest (struct vars *, chr *, chr *);
 static void lexword (struct vars *);
 static int next (struct vars *);
 static int lexescape (struct vars *);
 static chr lexdigits (struct vars *, int, int, int);
 static int brenext (struct vars *, pchr);
 static void skip (struct vars *);
 static chr newline (void);
 
 
 
 static chr chrnamed (struct vars *, chr *, chr *, pchr);
 
 static void initcm (struct vars *, struct colormap *);
 static void freecm (struct colormap *);
 static void cmtreefree (struct colormap *, union tree *, int); static
 color setcolor (struct colormap *, pchr, pcolor); static color maxcolor
 (struct colormap *); static color newcolor (struct colormap *); static
 void freecolor (struct colormap *, pcolor); static color pseudocolor
 (struct colormap *); static color subcolor (struct colormap *, pchr c);
 static color newsub (struct colormap *, pcolor); static void subrange
 (struct vars *, pchr, pchr, struct state *, struct state *); static void
 subblock (struct vars *, pchr, struct state *, struct state *); static
 void okcolors (struct nfa *, struct colormap *); static void colorchain
 (struct colormap *, struct arc *); static void uncolorchain (struct
 colormap *, struct arc *); static int singleton (struct colormap *, pchr
 c); static void rainbow (struct nfa *, struct colormap *, int, pcolor,
 struct state *, struct state *); static void colorcomplement (struct nfa
 *, struct colormap *, int, struct state *, struct state *, struct state
 *);
 
 
 
 
 
 
 static struct nfa *newnfa (struct vars *, struct colormap *, struct nfa
 *); static void freenfa (struct nfa *); static struct state *newstate
 (struct nfa *); static struct state *newfstate (struct nfa *, int flag);
 static void dropstate (struct nfa *, struct state *); static void
 freestate (struct nfa *, struct state *); static void destroystate
 (struct nfa *, struct state *); static void newarc (struct nfa *, int,
 pcolor, struct state *, struct state *); static struct arc *allocarc
 (struct nfa *, struct state *); static void freearc (struct nfa *,
 struct arc *); static struct arc *findarc (struct state *, int, pcolor);
 static void cparc (struct nfa *, struct arc *, struct state *, struct
 state *); static void moveins (struct nfa *, struct state *, struct
 state *); static void copyins (struct nfa *, struct state *, struct
 state *); static void moveouts (struct nfa *, struct state *, struct
 state *); static void copyouts (struct nfa *, struct state *, struct
 state *); static void cloneouts (struct nfa *, struct state *, struct
 state *, struct state *, int); static void delsub (struct nfa *, struct
 state *, struct state *); static void deltraverse (struct nfa *, struct
 state *, struct state *); static void dupnfa (struct nfa *, struct state
 *, struct state *, struct state *, struct state *); static void
 duptraverse (struct nfa *, struct state *, struct state *); static void
 cleartraverse (struct nfa *, struct state *); static void specialcolors
 (struct nfa *); static long optimize (struct nfa *, FILE *); static void
 pullback (struct nfa *, FILE *); static int pull (struct nfa *, struct
 arc *); static void pushfwd (struct nfa *, FILE *); static int push
 (struct nfa *, struct arc *);
 
 
 
 static int combine (struct arc *, struct arc *);
 static void fixempties (struct nfa *, FILE *);
 static int unempty (struct nfa *, struct arc *);
 static void cleanup (struct nfa *);
 static void markreachable (struct nfa *, struct state *, struct state *,
 struct state *); static void markcanreach (struct nfa *, struct state *,
 struct state *, struct state *); static long analyze (struct nfa *);
 static void compact (struct nfa *, struct cnfa *); static void carcsort
 (struct carc *, struct carc *); static void freecnfa (struct cnfa *);
 static void dumpnfa (struct nfa *, FILE *);
 
 
 
 
 
 
 static void dumpcnfa (struct cnfa *, FILE *);
 
 
 
 
 static struct cvec *newcvec (int, int, int);
 static struct cvec *clearcvec (struct cvec *);
 static void addchr (struct cvec *, pchr);
 static void addrange (struct cvec *, pchr, pchr);
 static void addmcce (struct cvec *, chr *, chr *);
 static int haschr (struct cvec *, pchr);
 static struct cvec *getcvec (struct vars *, int, int, int); static void
 freecvec (struct cvec *);
 
 static int nmcces (struct vars *);
 static int nleaders (struct vars *);
 static struct cvec *allmcces (struct vars *, struct cvec *); static celt
 element (struct vars *, chr *, chr *); static struct cvec *range (struct
 vars *, celt, celt, int); static int before (celt, celt); static struct
 cvec *eclass (struct vars *, celt, int); static struct cvec *cclass
 (struct vars *, chr *, chr *, int); static struct cvec *allcases (struct
 vars *, pchr); static int cmp (const chr *, const chr *, size_t); static
 int casecmp (const chr *, const chr *, size_t);
 
 
 
 
 
 
 struct vars {
         regex_t *re;
         chr *now;
         chr *stop;
         chr *savenow;
         chr *savestop;
         int err;
         int cflags;
         int lasttype;
         int nexttype;
         chr nextvalue;
         int lexcon;
         int nsubexp;
         struct subre **subs;
         size_t nsubs;
         struct subre *sub10[10];
         struct nfa *nfa;
         struct colormap *cm;
         color nlcolor;
         struct state *wordchrs;
         struct subre *tree;
         struct subre *treechain;
         struct subre *treefree;
         int ntree;
         struct cvec *cv;
         struct cvec *cv2;
         struct cvec *mcces;
 
         struct state *mccepbegin;
         struct state *mccepend;
         struct subre *lacons;
         int nlacons;
 };
 # 273
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
 static struct fns functions =3D {
         rfree,
 };
 
 
 
 
 
 
 
 int
 TclReComp(re, string, len, flags)
 regex_t *re;
 const chr *string;
 size_t len;
 int flags;
 {
         struct vars var;
         struct vars *v =3D &var;
         struct guts *g;
         int i;
         size_t j;
         FILE *debug =3D (flags&020000) ? (&__sF[1]) : (FILE *)((void =
 *)0);
 
 
 
 
         if (re =3D=3D ((void *)0) || string =3D=3D ((void *)0))
                 return 16;
         if ((flags&000004) &&
                         (flags&(000003|000040|000300)))
                 return 16;
         if (!(flags&000001) && (flags&000002))
                 return 16;
 
 
         v->re =3D re;
         v->now =3D (chr *)string;
         v->stop =3D v->now + len;
         v->savenow =3D v->savestop =3D ((void *)0);
         v->err =3D 0;
         v->cflags =3D flags;
         v->nsubexp =3D 0;
         v->subs =3D v->sub10;
         v->nsubs =3D 10;
         for (j =3D 0; j < v->nsubs; j++)
                 v->subs[j] =3D ((void *)0);
         v->nfa =3D ((void *)0);
         v->cm =3D ((void *)0);
         v->nlcolor =3D (-1);
         v->wordchrs =3D ((void *)0);
         v->tree =3D ((void *)0);
         v->treechain =3D ((void *)0);
         v->treefree =3D ((void *)0);
         v->cv =3D ((void *)0);
         v->cv2 =3D ((void *)0);
         v->mcces =3D ((void *)0);
         v->lacons =3D ((void *)0);
         v->nlacons =3D 0;
         re->re_magic =3D 0xfed7;
         re->re_info =3D 0;
         re->re_csize =3D sizeof(chr);
         re->re_guts =3D ((void *)0);
         re->re_fns =3D ((void *)(&functions));
 
 
         re->re_guts =3D ((void *)(Tcl_Alloc(sizeof(struct guts))));
         if (re->re_guts =3D=3D ((void *)0))
                 return freev(v, 12);
         g =3D (struct guts *)re->re_guts;
         g->tree =3D ((void *)0);
         initcm(v, &g->cmap);
         v->cm =3D &g->cmap;
         g->lacons =3D ((void *)0);
         g->nlacons =3D 0;
         ((g->search).nstates =3D 0);
         v->nfa =3D newnfa(v, v->cm, (struct nfa *)((void *)0));
         { if (((v)->err !=3D 0)) return freev(v, v->err); };
         v->cv =3D newcvec(100, 20, 10);
         if (v->cv =3D=3D ((void *)0))
                 return freev(v, 12);
         i =3D nmcces(v);
         if (i > 0) {
                 v->mcces =3D newcvec(nleaders(v), 0, i);
                 { if (((v)->err !=3D 0)) return freev(v, v->err); };
                 v->mcces =3D allmcces(v, v->mcces);
                 leaders(v, v->mcces);
                 addmcce(v->mcces, (chr *)((void *)0), (chr *)((void
 *)0));
         }
         { if (((v)->err !=3D 0)) return freev(v, v->err); };
 
 
         lexstart(v);
         if ((v->cflags&000100) || (v->cflags&000200)) {
 
                 v->nlcolor =3D subcolor(v->cm, newline());
                 okcolors(v->nfa, v->cm);
         }
         { if (((v)->err !=3D 0)) return freev(v, v->err); };
         v->tree =3D parse(v, 'e', 'p', v->nfa->init, v->nfa->final);
         ((void)0);
         { if (((v)->err !=3D 0)) return freev(v, v->err); };
         ((void)0);
 
 
         specialcolors(v->nfa);
         { if (((v)->err !=3D 0)) return freev(v, v->err); };
         if (debug !=3D ((void *)0)) {
                 fprintf(debug, "\n\n\n=3D=3D=3D=3D=3D=3D=3D=3D=3D RAW =
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D\n");
                 dumpnfa(v->nfa, debug);
                 dumpst(v->tree, debug, 1);
         }
         optst(v, v->tree);
         v->ntree =3D numst(v->tree, 1);
         markst(v->tree);
         cleanst(v);
         if (debug !=3D ((void *)0)) {
                 fprintf(debug, "\n\n\n=3D=3D=3D=3D=3D=3D=3D=3D=3D TREE =
 FIXED
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D\n");
                 dumpst(v->tree, debug, 1);
         }
 
 
         re->re_info |=3D nfatree(v, v->tree, debug);
         { if (((v)->err !=3D 0)) return freev(v, v->err); };
         ((void)0);
         for (i =3D 1; i < v->nlacons; i++) {
                 if (debug !=3D ((void *)0))
                         fprintf(debug, =
 "\n\n\n=3D=3D=3D=3D=3D=3D=3D=3D=3D LA%d
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D\n", i);
                 nfanode(v, &v->lacons[i], debug);
         }
         { if (((v)->err !=3D 0)) return freev(v, v->err); };
         if (v->tree->flags&02)
                 (v->re->re_info |=3D (020000));
 
 
         if (debug !=3D ((void *)0))
                 fprintf(debug, "\n\n\n=3D=3D=3D=3D=3D=3D=3D=3D=3D SEARCH =
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D\n");
 
         (void)optimize(v->nfa, debug);
         { if (((v)->err !=3D 0)) return freev(v, v->err); };
         makesearch(v, v->nfa);
         { if (((v)->err !=3D 0)) return freev(v, v->err); };
         compact(v->nfa, &g->search);
         { if (((v)->err !=3D 0)) return freev(v, v->err); };
 
 
         re->re_nsub =3D v->nsubexp;
         v->re =3D ((void *)0);
         g->magic =3D 0xfed9;
         g->cflags =3D v->cflags;
         g->info =3D re->re_info;
         g->nsub =3D re->re_nsub;
         g->tree =3D v->tree;
         v->tree =3D ((void *)0);
         g->ntree =3D v->ntree;
         g->compare =3D (v->cflags&000010) ? casecmp : cmp;
         g->lacons =3D v->lacons;
         v->lacons =3D ((void *)0);
         g->nlacons =3D v->nlacons;
 
         if (flags&004000)
                 dump(re, (&__sF[1]));
 
         ((void)0);
         return freev(v, 0);
 }
 
 
 
 
 
 static void
 moresubs(v, wanted)
 struct vars *v;
 int wanted;
 {
         struct subre **p;
         size_t n;
 
         ((void)0);
         n =3D (size_t)wanted * 3 / 2 + 1;
         if (v->subs =3D=3D v->sub10) {
                 p =3D (struct subre **)Tcl_Alloc(n * sizeof(struct subre
 *));
                 if (p !=3D ((void *)0))
                         memcpy(((void *)(p)), ((void *)(v->subs)),
                                         v->nsubs * sizeof(struct subre
 *));
         } else
                 p =3D (struct subre **)Tcl_Realloc(((void
 *)(v->subs)),n*sizeof(struct subre *));
         if (p =3D=3D ((void *)0)) {
                 ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err : =
 ((v)->err
 =3D (12)));
                 return;
         }
         v->subs =3D p;
         for (p =3D &v->subs[v->nsubs]; v->nsubs < n; p++, v->nsubs++)
                 *p =3D ((void *)0);
         ((void)0);
         ((void)0);
 }
 
 
 
 
 
 
 
 static int
 freev(v, err)
 struct vars *v;
 int err;
 {
         if (v->re !=3D ((void *)0))
                 rfree(v->re);
         if (v->subs !=3D v->sub10)
                 Tcl_Free(((void *)(v->subs)));
         if (v->nfa !=3D ((void *)0))
                 freenfa(v->nfa);
         if (v->tree !=3D ((void *)0))
                 freesubre(v, v->tree);
         if (v->treechain !=3D ((void *)0))
                 cleanst(v);
         if (v->cv !=3D ((void *)0))
                 freecvec(v->cv);
         if (v->cv2 !=3D ((void *)0))
                 freecvec(v->cv2);
         if (v->mcces !=3D ((void *)0))
                 freecvec(v->mcces);
         if (v->lacons !=3D ((void *)0))
                 freelacons(v->lacons, v->nlacons);
         ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err : ((v)->err =3D
 (err)));
 
         return v->err;
 }
 
 
 
 
 
 
 static void
 makesearch(v, nfa)
 struct vars *v;
 struct nfa *nfa;
 {
         struct arc *a;
         struct arc *b;
         struct state *pre =3D nfa->pre;
         struct state *s;
         struct state *s2;
         struct state *slist;
 
 
         for (a =3D pre->outs; a !=3D ((void *)0); a =3D a->outchain) {
                 ((void)0);
                 if (a->co !=3D nfa->bos[0] && a->co !=3D nfa->bos[1])
                         break;
         }
         if (a !=3D ((void *)0)) {
 
                 rainbow(nfa, v->cm, 'p', (-1), pre, pre);
 
 
                 newarc(nfa, 'p', nfa->bos[0], pre, pre);
                 newarc(nfa, 'p', nfa->bos[1], pre, pre);
         }
 # 549
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
         slist =3D ((void *)0);
         for (a =3D pre->outs; a !=3D ((void *)0); a =3D a->outchain) {
                 s =3D a->to;
                 for (b =3D s->ins; b !=3D ((void *)0); b =3D b->inchain)
                         if (b->from !=3D pre)
                                 break;
                 if (b !=3D ((void *)0)) {
                         s->tmp =3D slist;
                         slist =3D s;
                 }
         }
 
 
         for (s =3D slist; s !=3D ((void *)0); s =3D s2) {
                 s2 =3D newstate(nfa);
                 copyouts(nfa, s, s2);
                 for (a =3D s->ins; a !=3D ((void *)0); a =3D b) {
                         b =3D a->inchain;
                         if (a->from !=3D pre) {
                                 cparc(nfa, a, a->from, s2);
                                 freearc(nfa, a);
                         }
                 }
                 s2 =3D s->tmp;
                 s->tmp =3D ((void *)0);
         }
 }
 # 585
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
 static struct subre *
 parse(v, stopper, type, init, final)
 struct vars *v;
 int stopper;
 int type;
 struct state *init;
 struct state *final;
 {
         struct state *left;
         struct state *right;
         struct subre *branches;
         struct subre *branch;
         struct subre *t;
         int firstbranch;
 
         ((void)0);
 
         branches =3D subre(v, '|', 01, init, final);
         {if (((v)->err !=3D 0)) return ((void *)0);};
         branch =3D branches;
         firstbranch =3D 1;
         do {
                 if (!firstbranch) {
 
                         branch->right =3D subre(v, '|', 01, init, =
 final);
                         {if (((v)->err !=3D 0)) return ((void *)0);};
                         branch =3D branch->right;
                 }
                 firstbranch =3D 0;
                 left =3D newstate(v->nfa);
                 right =3D newstate(v->nfa);
                 {if (((v)->err !=3D 0)) return ((void *)0);};
                 newarc(v->nfa, 'n', 0, init, left);
                 newarc(v->nfa, 'n', 0, right, final);
                 {if (((v)->err !=3D 0)) return ((void *)0);};
                 branch->left =3D parsebranch(v, stopper, type, left,
 right, 0);
                 {if (((v)->err !=3D 0)) return ((void *)0);};
                 branch->flags |=3D (((branch->flags |
 branch->left->flags)&~03) | (((branch->flags | branch->left->flags)<<2)
 & ((branch->flags | branch->left->flags)<<1) & 04));
                 if ((branch->flags &~ branches->flags) !=3D 0)
                         for (t =3D branches; t !=3D branch; t =3D =
 t->right)
                                 t->flags |=3D branch->flags;
         } while (((v->nexttype =3D=3D ('|')) && next(v)));
         ((void)0);
 
         if (!(v->nexttype =3D=3D (stopper))) {
                 ((void)0);
                 ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err : =
 ((v)->err
 =3D (8)));
         }
 
 
         if (branch =3D=3D branches) {
                 ((void)0);
                 t =3D branch->left;
                 branch->left =3D ((void *)0);
                 freesubre(v, branches);
                 branches =3D t;
         } else if (!((branches->flags)&(04|010|020))) {
                 freesubre(v, branches->left);
                 branches->left =3D ((void *)0);
                 freesubre(v, branches->right);
                 branches->right =3D ((void *)0);
                 branches->op =3D '=3D';
         }
 
         return branches;
 }
 # 660
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
 static struct subre *
 parsebranch(v, stopper, type, left, right, partial)
 struct vars *v;
 int stopper;
 int type;
 struct state *left;
 struct state *right;
 int partial;
 {
         struct state *lp;
         int seencontent;
         struct subre *t;
 
         lp =3D left;
         seencontent =3D 0;
         t =3D subre(v, '=3D', 0, left, right);
         {if (((v)->err !=3D 0)) return ((void *)0);};
         while (!(v->nexttype =3D=3D ('|')) && !(v->nexttype =3D=3D =
 (stopper)) &&
 !(v->nexttype =3D=3D ('e'))) {
                 if (seencontent) {
                         lp =3D newstate(v->nfa);
                         {if (((v)->err !=3D 0)) return ((void *)0);};
                         moveins(v->nfa, right, lp);
                 }
                 seencontent =3D 1;
 
 
                 parseqatom(v, stopper, type, lp, right, t);
         }
 
         if (!seencontent) {
                 if (!partial)
                         (v->re->re_info |=3D (000400));
                 ((void)0);
                 newarc(v->nfa, 'n', 0, left, right);
         }
 
         return t;
 }
 # 707
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
 static void
 parseqatom(v, stopper, type, lp, rp, top)
 struct vars *v;
 int stopper;
 int type;
 struct state *lp;
 struct state *rp;
 struct subre *top;
 {
         struct state *s;
         struct state *s2;
 
         int m, n;
         struct subre *atom;
         struct subre *t;
         int cap;
         int pos;
         int subno;
         int atomtype;
         int qprefer;
         int f;
         struct subre **atomp;
 
 
         atom =3D ((void *)0);
         ((void)0);
         ((void)0);
         subno =3D 0;
 
 
         atomtype =3D v->nexttype;
         switch (atomtype) {
 
         case '^':
                 newarc(v->nfa, '^', 1, lp, rp);
                 if (v->cflags&000200)
                         newarc(v->nfa, 'r', v->nlcolor, lp, rp);
                 (next(v));
                 return;
                 break;
         case '$':
                 newarc(v->nfa, '$', 1, lp, rp);
                 if (v->cflags&000200)
                         newarc(v->nfa, 'a', v->nlcolor, lp, rp);
                 (next(v));
                 return;
                 break;
         case 'A':
                 newarc(v->nfa, '^', 1, lp, rp);
                 newarc(v->nfa, '^', 0, lp, rp);
                 (next(v));
                 return;
                 break;
         case 'Z':
                 newarc(v->nfa, '$', 1, lp, rp);
                 newarc(v->nfa, '$', 0, lp, rp);
                 (next(v));
                 return;
                 break;
         case '<':
                 wordchrs(v);
                 s =3D newstate(v->nfa);
                 {if (((v)->err !=3D 0)) return;};
                 nonword(v, 'r', lp, s);
                 word(v, 'a', s, rp);
                 return;
                 break;
         case '>':
                 wordchrs(v);
                 s =3D newstate(v->nfa);
                 {if (((v)->err !=3D 0)) return;};
                 word(v, 'r', lp, s);
                 nonword(v, 'a', s, rp);
                 return;
                 break;
         case 'w':
                 wordchrs(v);
                 s =3D newstate(v->nfa);
                 {if (((v)->err !=3D 0)) return;};
                 nonword(v, 'r', lp, s);
                 word(v, 'a', s, rp);
                 s =3D newstate(v->nfa);
                 {if (((v)->err !=3D 0)) return;};
                 word(v, 'r', lp, s);
                 nonword(v, 'a', s, rp);
                 return;
                 break;
         case 'W':
                 wordchrs(v);
                 s =3D newstate(v->nfa);
                 {if (((v)->err !=3D 0)) return;};
                 word(v, 'r', lp, s);
                 word(v, 'a', s, rp);
                 s =3D newstate(v->nfa);
                 {if (((v)->err !=3D 0)) return;};
                 nonword(v, 'r', lp, s);
                 nonword(v, 'a', s, rp);
                 return;
                 break;
         case 'L':
                 pos =3D v->nextvalue;
                 (next(v));
                 s =3D newstate(v->nfa);
                 s2 =3D newstate(v->nfa);
                 {if (((v)->err !=3D 0)) return;};
                 t =3D parse(v, ')', 'L', s, s2);
                 freesubre(v, t);
                 ((void)0);
                 (next(v));
                 n =3D newlacon(v, s, s2, pos);
                 {if (((v)->err !=3D 0)) return;};
                 newarc(v->nfa, 'L', n, lp, rp);
                 return;
                 break;
 
         case '*':
         case '+':
         case '?':
         case '{':
                 ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err : =
 ((v)->err
 =3D (13)));
                 return;
                 break;
         default:
                 ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err : =
 ((v)->err
 =3D (15)));
                 return;
                 break;
 
         case ')':
                 if ((v->cflags&000003) !=3D 000001) {
                         ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err :
 ((v)->err =3D (8)));
                         return;
                 }
 
                 (v->re->re_info |=3D (000040));
 
         case 'p':
                 onechr(v, v->nextvalue, lp, rp);
                 okcolors(v->nfa, v->cm);
                 {if (((v)->err !=3D 0)) return;};
                 (next(v));
                 break;
         case '[':
                 if (v->nextvalue =3D=3D 1)
                         bracket(v, lp, rp);
                 else
                         cbracket(v, lp, rp);
                 ((void)0);
                 (next(v));
                 break;
         case '.':
                 rainbow(v->nfa, v->cm, 'p',
                                 (v->cflags&000100) ? v->nlcolor : (-1),
                                 lp, rp);
                 (next(v));
                 break;
 
         case '(':
                 cap =3D (type =3D=3D 'L') ? 0 : v->nextvalue;
                 if (cap) {
                         v->nsubexp++;
                         subno =3D v->nsubexp;
                         if ((size_t)subno >=3D v->nsubs)
                                 moresubs(v, subno);
                         ((void)0);
                 } else
                         atomtype =3D 'p';
                 (next(v));
 
                 s =3D newstate(v->nfa);
                 s2 =3D newstate(v->nfa);
                 {if (((v)->err !=3D 0)) return;};
                 newarc(v->nfa, 'n', 0, lp, s);
                 newarc(v->nfa, 'n', 0, s2, rp);
                 {if (((v)->err !=3D 0)) return;};
                 atom =3D parse(v, ')', 'p', s, s2);
                 ((void)0);
                 (next(v));
                 {if (((v)->err !=3D 0)) return;};
                 if (cap) {
                         v->subs[subno] =3D atom;
                         t =3D subre(v, '(', atom->flags|010, lp, rp);
                         {if (((v)->err !=3D 0)) return;};
                         t->subno =3D subno;
                         t->left =3D atom;
                         atom =3D t;
                 }
 
                 break;
         case 'b':
                 ((type !=3D 'L') ? 0 : ((v)->nexttype =3D 'e', =
 ((v)->err) ?
 (v)->err : ((v)->err =3D (6))));
                 ((v->nextvalue < v->nsubs) ? 0 : ((v)->nexttype =3D 'e',
 ((v)->err) ? (v)->err : ((v)->err =3D (6))));
                 ((v->subs[v->nextvalue] !=3D ((void *)0)) ? 0 :
 ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err : ((v)->err =3D (6))));
                 {if (((v)->err !=3D 0)) return;};
                 ((void)0);
                 atom =3D subre(v, 'b', 020, lp, rp);
                 subno =3D v->nextvalue;
                 atom->subno =3D subno;
                 newarc(v->nfa, 'n', 0, lp, rp);
                 (next(v));
                 break;
         }
 
 
         switch (v->nexttype) {
         case '*':
                 m =3D 0;
                 n =3D (255 +1);
                 qprefer =3D (v->nextvalue) ? 01 : 02;
                 (next(v));
                 break;
         case '+':
                 m =3D 1;
                 n =3D (255 +1);
                 qprefer =3D (v->nextvalue) ? 01 : 02;
                 (next(v));
                 break;
         case '?':
                 m =3D 0;
                 n =3D 1;
                 qprefer =3D (v->nextvalue) ? 01 : 02;
                 (next(v));
                 break;
         case '{':
                 (next(v));
                 m =3D scannum(v);
                 if (((v->nexttype =3D=3D (',')) && next(v))) {
                         if ((v->nexttype =3D=3D ('d')))
                                 n =3D scannum(v);
                         else
                                 n =3D (255 +1);
                         if (m > n) {
                                 ((v)->nexttype =3D 'e', ((v)->err) ?
 (v)->err : ((v)->err =3D (10)));
                                 return;
                         }
 
                         qprefer =3D (v->nextvalue) ? 01 : 02;
                 } else {
                         n =3D m;
 
                         qprefer =3D 0;
                 }
                 if (!(v->nexttype =3D=3D ('}'))) {
                         ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err :
 ((v)->err =3D (10)));
                         return;
                 }
                 (next(v));
                 break;
         default:
                 m =3D n =3D 1;
                 qprefer =3D 0;
                 break;
         }
 
 
         if (m =3D=3D 0 && n =3D=3D 0) {
                 if (atom !=3D ((void *)0))
                         freesubre(v, atom);
                 if (atomtype =3D=3D '(')
                         v->subs[subno] =3D ((void *)0);
                 delsub(v->nfa, lp, rp);
                 newarc(v->nfa, 'n', 0, lp, rp);
                 return;
         }
 
 
         ((void)0);
         f =3D top->flags | qprefer | ((atom !=3D ((void *)0)) ? =
 atom->flags
 : 0);
         if (atomtype !=3D '(' && atomtype !=3D 'b' && !(((((f)&~03) |
 (((f)<<2) & ((f)<<1) & 04)))&(04|010|020))) {
                 if (!(m =3D=3D 1 && n =3D=3D 1))
                         repeat(v, lp, rp, m, n);
                 if (atom !=3D ((void *)0))
                         freesubre(v, atom);
                 top->flags =3D f;
                 return;
         }
 # 990
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
         if (atom =3D=3D ((void *)0)) {
                 atom =3D subre(v, '=3D', 0, lp, rp);
                 {if (((v)->err !=3D 0)) return;};
         }
 # 1004
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
         s =3D newstate(v->nfa);
         s2 =3D newstate(v->nfa);
         {if (((v)->err !=3D 0)) return;};
         moveouts(v->nfa, lp, s);
         moveins(v->nfa, rp, s2);
         {if (((v)->err !=3D 0)) return;};
         atom->begin =3D s;
         atom->end =3D s2;
         s =3D newstate(v->nfa);
         s2 =3D newstate(v->nfa);
         {if (((v)->err !=3D 0)) return;};
         newarc(v->nfa, 'n', 0, lp, s);
         newarc(v->nfa, 'n', 0, lp, s2);
         {if (((v)->err !=3D 0)) return;};
 
 
         t =3D subre(v, '.', (((((qprefer)|(atom->flags))&~03) |
 ((((qprefer)|(atom->flags))<<2) & (((qprefer)|(atom->flags))<<1) & 04))
 | ((((qprefer)&03) !=3D 0) ? ((qprefer)&03) : ((atom->flags)&03))), lp,
 rp);
         t->left =3D atom;
         atomp =3D &t->left;
 
 
 
         ((void)0);
         top->left =3D subre(v, '=3D', top->flags, top->begin, lp);
         top->op =3D '.';
         top->right =3D t;
 
 
         if (atomtype =3D=3D 'b') {
                 ((void)0);
                 delsub(v->nfa, atom->begin, atom->end);
                 ((void)0);
 
 
 
                 dupnfa(v->nfa, v->subs[subno]->begin,
 v->subs[subno]->end,
                                                 atom->begin, atom->end);
                 {if (((v)->err !=3D 0)) return;};
         }
 
 
         if (m =3D=3D 0) {
                 newarc(v->nfa, 'n', 0, s2, atom->end);
                 ((void)0);
                 f =3D (((((qprefer)|(atom->flags))&~03) |
 ((((qprefer)|(atom->flags))<<2) & (((qprefer)|(atom->flags))<<1) & 04))
 | ((((qprefer)&03) !=3D 0) ? ((qprefer)&03) : ((atom->flags)&03)));
                 t =3D subre(v, '|', f, lp, atom->end);
                 {if (((v)->err !=3D 0)) return;};
                 t->left =3D atom;
                 t->right =3D subre(v, '|', ((f)&03), s2, atom->end);
                 {if (((v)->err !=3D 0)) return;};
                 t->right->left =3D subre(v, '=3D', 0, s2, atom->end);
                 {if (((v)->err !=3D 0)) return;};
                 *atomp =3D t;
                 atomp =3D &t->left;
                 m =3D 1;
         }
 
 
         if (atomtype =3D=3D 'b') {
 
                 newarc(v->nfa, 'n', 0, s, atom->begin);
 
                 repeat(v, atom->begin, atom->end, m, n);
                 atom->min =3D (short)m;
                 atom->max =3D (short)n;
                 atom->flags |=3D (((((qprefer)|(atom->flags))&~03) |
 ((((qprefer)|(atom->flags))<<2) & (((qprefer)|(atom->flags))<<1) & 04))
 | ((((qprefer)&03) !=3D 0) ? ((qprefer)&03) : ((atom->flags)&03)));
         } else if (m =3D=3D 1 && n =3D=3D 1) {
 
                 newarc(v->nfa, 'n', 0, s, atom->begin);
         } else {
 
 
                 dupnfa(v->nfa, atom->begin, atom->end, s, atom->begin);
                 ((void)0);
                 repeat(v, s, atom->begin, m-1, (n =3D=3D (255 +1)) ? n :
 n-1);
                 f =3D (((((qprefer)|(atom->flags))&~03) |
 ((((qprefer)|(atom->flags))<<2) & (((qprefer)|(atom->flags))<<1) & 04))
 | ((((qprefer)&03) !=3D 0) ? ((qprefer)&03) : ((atom->flags)&03)));
                 t =3D subre(v, '.', f, s, atom->end);
                 {if (((v)->err !=3D 0)) return;};
                 t->left =3D subre(v, '=3D', ((f)&03), s, atom->begin);
                 {if (((v)->err !=3D 0)) return;};
                 t->right =3D atom;
                 *atomp =3D t;
         }
 
 
         t =3D top->right;
         if (!((v->nexttype =3D=3D ('|')) || (v->nexttype =3D=3D =
 (stopper)) ||
 (v->nexttype =3D=3D ('e'))))
                 t->right =3D parsebranch(v, stopper, type, atom->end, =
 rp,
 1);
         else {
                 newarc(v->nfa, 'n', 0, atom->end, rp);
                 t->right =3D subre(v, '=3D', 0, atom->end, rp);
         }
         ((void)0);
         t->flags |=3D (((((t->flags)|(t->right->flags))&~03) |
 ((((t->flags)|(t->right->flags))<<2) &
 (((t->flags)|(t->right->flags))<<1) & 04)) | ((((t->flags)&03) !=3D 0) ?
 ((t->flags)&03) : ((t->right->flags)&03)));
         top->flags |=3D (((((top->flags)|(t->flags))&~03) |
 ((((top->flags)|(t->flags))<<2) & (((top->flags)|(t->flags))<<1) & 04))
 | ((((top->flags)&03) !=3D 0) ? ((top->flags)&03) : ((t->flags)&03))); }
 
 
 
 
 
 static void
 nonword(v, dir, lp, rp)
 struct vars *v;
 int dir;
 struct state *lp;
 struct state *rp;
 {
         int anchor =3D (dir =3D=3D 'a') ? '$' : '^';
 
         ((void)0);
         newarc(v->nfa, anchor, 1, lp, rp);
         newarc(v->nfa, anchor, 0, lp, rp);
         colorcomplement(v->nfa, v->cm, dir, v->wordchrs, lp, rp);
 
 }
 
 
 
 
 
 static void
 word(v, dir, lp, rp)
 struct vars *v;
 int dir;
 struct state *lp;
 struct state *rp;
 {
         ((void)0);
         cloneouts(v->nfa, v->wordchrs, lp, rp, dir);
 
 }
 
 
 
 
 
 static int
 scannum(v)
 struct vars *v;
 {
         int n =3D 0;
 
         while ((v->nexttype =3D=3D ('d')) && n < 255) {
                 n =3D n*10 + v->nextvalue;
                 (next(v));
         }
         if ((v->nexttype =3D=3D ('d')) || n > 255) {
                 ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err : =
 ((v)->err
 =3D (10)));
                 return 0;
         }
         return n;
 }
 # 1168
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
 static void
 repeat(v, lp, rp, m, n)
 struct vars *v;
 struct state *lp;
 struct state *rp;
 int m;
 int n;
 {
 
 
 
 
         const int rm =3D ( ((m) =3D=3D (255 +1)) ? 3 : (((m) > 1) ? 2 : =
 (m))
 );
         const int rn =3D ( ((n) =3D=3D (255 +1)) ? 3 : (((n) > 1) ? 2 : =
 (n))
 );
         struct state *s;
         struct state *s2;
 
         switch (((rm)*4 + (rn))) {
         case ((0)*4 + (0)):
                 delsub(v->nfa, lp, rp);
                 newarc(v->nfa, 'n', 0, lp, rp);
                 break;
         case ((0)*4 + (1)):
                 newarc(v->nfa, 'n', 0, lp, rp);
                 break;
         case ((0)*4 + (2)):
                 repeat(v, lp, rp, 1, n);
                 {if (((v)->err !=3D 0)) return;};
                 newarc(v->nfa, 'n', 0, lp, rp);
                 break;
         case ((0)*4 + (3)):
                 s =3D newstate(v->nfa);
                 {if (((v)->err !=3D 0)) return;};
                 moveouts(v->nfa, lp, s);
                 moveins(v->nfa, rp, s);
                 newarc(v->nfa, 'n', 0, lp, s);
                 newarc(v->nfa, 'n', 0, s, rp);
                 break;
         case ((1)*4 + (1)):
                 break;
         case ((1)*4 + (2)):
                 s =3D newstate(v->nfa);
                 {if (((v)->err !=3D 0)) return;};
                 moveouts(v->nfa, lp, s);
                 dupnfa(v->nfa, s, rp, lp, s);
                 {if (((v)->err !=3D 0)) return;};
                 repeat(v, lp, s, 1, n-1);
                 {if (((v)->err !=3D 0)) return;};
                 newarc(v->nfa, 'n', 0, lp, s);
                 break;
         case ((1)*4 + (3)):
                 s =3D newstate(v->nfa);
                 s2 =3D newstate(v->nfa);
                 {if (((v)->err !=3D 0)) return;};
                 moveouts(v->nfa, lp, s);
                 moveins(v->nfa, rp, s2);
                 newarc(v->nfa, 'n', 0, lp, s);
                 newarc(v->nfa, 'n', 0, s2, rp);
                 newarc(v->nfa, 'n', 0, s2, s);
                 break;
         case ((2)*4 + (2)):
                 s =3D newstate(v->nfa);
                 {if (((v)->err !=3D 0)) return;};
                 moveouts(v->nfa, lp, s);
                 dupnfa(v->nfa, s, rp, lp, s);
                 {if (((v)->err !=3D 0)) return;};
                 repeat(v, lp, s, m-1, n-1);
                 break;
         case ((2)*4 + (3)):
                 s =3D newstate(v->nfa);
                 {if (((v)->err !=3D 0)) return;};
                 moveouts(v->nfa, lp, s);
                 dupnfa(v->nfa, s, rp, lp, s);
                 {if (((v)->err !=3D 0)) return;};
                 repeat(v, lp, s, m-1, n);
                 break;
         default:
                 ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err : =
 ((v)->err
 =3D (15)));
                 break;
         }
 }
 
 
 
 
 
 
 static void
 bracket(v, lp, rp)
 struct vars *v;
 struct state *lp;
 struct state *rp;
 {
         ((void)0);
         (next(v));
         while (!(v->nexttype =3D=3D (']')) && !(v->nexttype =3D=3D =
 ('e')))
                 brackpart(v, lp, rp);
         ((void)0);
         okcolors(v->nfa, v->cm);
 }
 # 1276
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
 static void
 cbracket(v, lp, rp)
 struct vars *v;
 struct state *lp;
 struct state *rp;
 {
         struct state *left =3D newstate(v->nfa);
         struct state *right =3D newstate(v->nfa);
         struct state *s;
         struct arc *a;
         struct arc *ba;
         struct arc *pa;
         color co;
         chr *p;
         int i;
 
         {if (((v)->err !=3D 0)) return;};
         bracket(v, left, right);
         if (v->cflags&000100)
                 newarc(v->nfa, 'p', v->nlcolor, left, right);
         {if (((v)->err !=3D 0)) return;};
 
         ((void)0);
 
 
         colorcomplement(v->nfa, v->cm, 'p', left, lp, rp);
         {if (((v)->err !=3D 0)) return;};
         if (v->mcces =3D=3D ((void *)0)) {
                 dropstate(v->nfa, left);
                 ((void)0);
                 freestate(v->nfa, right);
                 return;
         }
 
 
         (v->re->re_info |=3D (002000));
         for (p =3D v->mcces->chrs, i =3D v->mcces->nchrs; i > 0; p++, =
 i--) {
                 co =3D ((v->cm)->tree->ptrs.pptr[(((*p)>>8) &
 ((1<<8)-1))]->colors.ccolor[((*p) & ((1<<8)-1))]);
                 a =3D findarc(lp, 'p', co);
                 ba =3D findarc(left, 'p', co);
                 if (ba =3D=3D ((void *)0)) {
                         ((void)0);
                         freearc(v->nfa, a);
                 } else {
                         ((void)0);
                 }
                 s =3D newstate(v->nfa);
                 {if (((v)->err !=3D 0)) return;};
                 newarc(v->nfa, 'p', co, lp, s);
                 {if (((v)->err !=3D 0)) return;};
                 pa =3D findarc(v->mccepbegin, 'p', co);
                 ((void)0);
                 if (ba =3D=3D ((void *)0)) {
                         cloneouts(v->nfa, pa->to, s, rp, 'p');
                         newarc(v->nfa, '$', 1, s, rp);
                         newarc(v->nfa, '$', 0, s, rp);
                         colorcomplement(v->nfa, v->cm, 'a', pa->to, s,
 rp);
                 } else {
                         if (findarc(ba->to, '$', 1) =3D=3D ((void *)0)) =
 {
                                 newarc(v->nfa, '$', 1, s, rp);
                                 newarc(v->nfa, '$', 0, s, rp);
                                 colorcomplement(v->nfa, v->cm, 'a',
 pa->to,
 =20
 s, rp);
                         }
                         for (pa =3D pa->to->outs; pa !=3D ((void *)0); =
 pa =3D
 pa->outchain)
                                 if (findarc(ba->to, 'p', pa->co) =3D=3D
 ((void *)0))
                                         newarc(v->nfa, 'p', pa->co, s,
 rp);
                         if (s->nouts =3D=3D 0)
                                 dropstate(v->nfa, s);
                 }
                 {if (((v)->err !=3D 0)) return;};
         }
 
         delsub(v->nfa, left, right);
         ((void)0);
         freestate(v->nfa, left);
         ((void)0);
         freestate(v->nfa, right);
 }
 
 
 
 
 
 static void
 brackpart(v, lp, rp)
 struct vars *v;
 struct state *lp;
 struct state *rp;
 {
         celt startc;
         celt endc;
         struct cvec *cv;
         chr *startp;
         chr *endp;
         chr c[1];
 
 
         switch (v->nexttype) {
         case 'R':
                 ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err : =
 ((v)->err
 =3D (11)));
                 return;
                 break;
         case 'p':
                 c[0] =3D v->nextvalue;
                 (next(v));
 
                 if (!(v->nexttype =3D=3D ('R')) && !(v->mcces !=3D =
 ((void *)0)
 && haschr(v->mcces, (c[0])))) {
                         onechr(v, c[0], lp, rp);
                         return;
                 }
                 startc =3D element(v, c, c+1);
                 {if (((v)->err !=3D 0)) return;};
                 break;
         case 'I':
                 startp =3D v->now;
                 endp =3D scanplain(v);
                 ((startp < endp) ? 0 : ((v)->nexttype =3D 'e', =
 ((v)->err)
 ? (v)->err : ((v)->err =3D (3))));
                 {if (((v)->err !=3D 0)) return;};
                 startc =3D element(v, startp, endp);
                 {if (((v)->err !=3D 0)) return;};
                 break;
         case 'E':
                 startp =3D v->now;
                 endp =3D scanplain(v);
                 ((startp < endp) ? 0 : ((v)->nexttype =3D 'e', =
 ((v)->err)
 ? (v)->err : ((v)->err =3D (3))));
                 {if (((v)->err !=3D 0)) return;};
                 startc =3D element(v, startp, endp);
                 {if (((v)->err !=3D 0)) return;};
                 cv =3D eclass(v, startc, (v->cflags&000010));
                 {if (((v)->err !=3D 0)) return;};
                 dovec(v, cv, lp, rp);
                 return;
                 break;
         case 'C':
                 startp =3D v->now;
                 endp =3D scanplain(v);
                 ((startp < endp) ? 0 : ((v)->nexttype =3D 'e', =
 ((v)->err)
 ? (v)->err : ((v)->err =3D (4))));
                 {if (((v)->err !=3D 0)) return;};
                 cv =3D cclass(v, startp, endp, (v->cflags&000010));
                 {if (((v)->err !=3D 0)) return;};
                 dovec(v, cv, lp, rp);
                 return;
                 break;
         default:
                 ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err : =
 ((v)->err
 =3D (15)));
                 return;
                 break;
         }
 
         if ((v->nexttype =3D=3D ('R'))) {
                 (next(v));
                 switch (v->nexttype) {
                 case 'p':
                 case 'R':
                         c[0] =3D v->nextvalue;
                         (next(v));
                         endc =3D element(v, c, c+1);
                         {if (((v)->err !=3D 0)) return;};
                         break;
                 case 'I':
                         startp =3D v->now;
                         endp =3D scanplain(v);
                         ((startp < endp) ? 0 : ((v)->nexttype =3D 'e',
 ((v)->err) ? (v)->err : ((v)->err =3D (3))));
                         {if (((v)->err !=3D 0)) return;};
                         endc =3D element(v, startp, endp);
                         {if (((v)->err !=3D 0)) return;};
                         break;
                 default:
                         ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err :
 ((v)->err =3D (11)));
                         return;
                         break;
                 }
         } else
                 endc =3D startc;
 
 
 
 
 
 
         if (startc !=3D endc)
                 (v->re->re_info |=3D (001000));
         cv =3D range(v, startc, endc, (v->cflags&000010));
         {if (((v)->err !=3D 0)) return;};
         dovec(v, cv, lp, rp);
 }
 
 
 
 
 
 
 
 static chr *
 scanplain(v)
 struct vars *v;
 {
         chr *endp;
 
         ((void)0);
         (next(v));
 
         endp =3D v->now;
         while ((v->nexttype =3D=3D ('p'))) {
                 endp =3D v->now;
                 (next(v));
         }
 
         ((void)0);
         (next(v));
 
         return endp;
 }
 
 
 
 
 
 
 
 static void
 leaders(v, cv)
 struct vars *v;
 struct cvec *cv;
 {
         int mcce;
         chr *p;
         chr leader;
         struct state *s;
         struct arc *a;
 
         v->mccepbegin =3D newstate(v->nfa);
         v->mccepend =3D newstate(v->nfa);
         {if (((v)->err !=3D 0)) return;};
 
         for (mcce =3D 0; mcce < cv->nmcces; mcce++) {
                 p =3D cv->mcces[mcce];
                 leader =3D *p;
                 if (!haschr(cv, leader)) {
                         addchr(cv, leader);
                         s =3D newstate(v->nfa);
                         newarc(v->nfa, 'p', subcolor(v->cm, leader),
                                                         v->mccepbegin,
 s);
                         okcolors(v->nfa, v->cm);
                 } else {
                         a =3D findarc(v->mccepbegin, 'p',
 =20
 ((v->cm)->tree->ptrs.pptr[(((leader)>>8) &
 ((1<<8)-1))]->colors.ccolor[((leader) & ((1<<8)-1))]));
                         ((void)0);
                         s =3D a->to;
                         ((void)0);
                 }
                 p++;
                 ((void)0);
                 newarc(v->nfa, 'p', subcolor(v->cm, *p), s,
 v->mccepend);
                 okcolors(v->nfa, v->cm);
         }
 }
 
 
 
 
 
 
 static void
 onechr(v, c, lp, rp)
 struct vars *v;
 pchr c;
 struct state *lp;
 struct state *rp;
 {
         if (!(v->cflags&000010)) {
                 newarc(v->nfa, 'p', subcolor(v->cm, c), lp, rp);
                 return;
         }
 
 
         dovec(v, allcases(v, c), lp, rp);
 }
 
 
 
 
 
 
 
 static void
 dovec(v, cv, lp, rp)
 struct vars *v;
 struct cvec *cv;
 struct state *lp;
 struct state *rp;
 {
         chr ch, from, to;
         celt ce;
         chr *p;
         int i;
         color co;
         struct cvec *leads;
         struct arc *a;
         struct arc *pa;
         struct state *s;
         struct state *ps;
 
 
         if (nmcces(v) > 0) {
                 ((void)0);
                 if (v->cv2 =3D=3D ((void *)0) || v->cv2->nchrs <
 v->mcces->nchrs) {
                         if (v->cv2 !=3D ((void *)0))
                                 free(v->cv2);
                         v->cv2 =3D newcvec(v->mcces->nchrs, 0,
 v->mcces->nmcces);
                         {if (((v)->err !=3D 0)) return;};
                         leads =3D v->cv2;
                 } else
                         leads =3D clearcvec(v->cv2);
         } else
                 leads =3D ((void *)0);
 
 
         for (p =3D cv->chrs, i =3D cv->nchrs; i > 0; p++, i--) {
                 ch =3D *p;
                 if (!(v->mcces !=3D ((void *)0) && haschr(v->mcces,
 (ch))))
                         newarc(v->nfa, 'p', subcolor(v->cm, ch), lp,
 rp);
                 else {
                         ((void)0);
                         ((void)0);
                         if (!haschr(leads, ch))
                                 addchr(leads, ch);
                 }
         }
 
 
         for (p =3D cv->ranges, i =3D cv->nranges; i > 0; p +=3D 2, i--) =
 {
                 from =3D *p;
                 to =3D *(p+1);
                 while (from <=3D to && (ce =3D nextleader(v, from, to)) =
 !=3D
 (-1)) {
                         if (from < ce)
                                 subrange(v, from, ce - 1, lp, rp);
                         ((void)0);
                         ((void)0);
                         if (!haschr(leads, ce))
                                 addchr(leads, ce);
                         from =3D ce + 1;
                 }
                 if (from <=3D to)
                         subrange(v, from, to, lp, rp);
         }
 
         if ((leads =3D=3D ((void *)0) || leads->nchrs =3D=3D 0) && =
 cv->nmcces =3D=3D
 0)
                 return;
 
 
         (v->re->re_info |=3D (002000));
         for (p =3D leads->chrs, i =3D leads->nchrs; i > 0; p++, i--) {
                 co =3D ((v->cm)->tree->ptrs.pptr[(((*p)>>8) &
 ((1<<8)-1))]->colors.ccolor[((*p) & ((1<<8)-1))]);
                 a =3D findarc(lp, 'p', co);
                 if (a !=3D ((void *)0))
                         s =3D a->to;
                 else {
                         s =3D newstate(v->nfa);
                         {if (((v)->err !=3D 0)) return;};
                         newarc(v->nfa, 'p', co, lp, s);
                         {if (((v)->err !=3D 0)) return;};
                 }
                 pa =3D findarc(v->mccepbegin, 'p', co);
                 ((void)0);
                 ps =3D pa->to;
                 newarc(v->nfa, '$', 1, s, rp);
                 newarc(v->nfa, '$', 0, s, rp);
                 colorcomplement(v->nfa, v->cm, 'a', ps, s, rp);
                 {if (((v)->err !=3D 0)) return;};
         }
 
 
         for (i =3D 0; i < cv->nmcces; i++) {
                 p =3D cv->mcces[i];
                 ((void)0);
                 if (!singleton(v->cm, *p)) {
                         ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err :
 ((v)->err =3D (15)));
                         return;
                 }
                 ch =3D *p++;
                 co =3D ((v->cm)->tree->ptrs.pptr[(((ch)>>8) &
 ((1<<8)-1))]->colors.ccolor[((ch) & ((1<<8)-1))]);
                 a =3D findarc(lp, 'p', co);
                 if (a !=3D ((void *)0))
                         s =3D a->to;
                 else {
                         s =3D newstate(v->nfa);
                         {if (((v)->err !=3D 0)) return;};
                         newarc(v->nfa, 'p', co, lp, s);
                         {if (((v)->err !=3D 0)) return;};
                 }
                 ((void)0);
                 ((void)0);
                 ch =3D *p++;
                 co =3D ((v->cm)->tree->ptrs.pptr[(((ch)>>8) &
 ((1<<8)-1))]->colors.ccolor[((ch) & ((1<<8)-1))]);
                 ((void)0);
                 newarc(v->nfa, 'p', co, s, rp);
                 {if (((v)->err !=3D 0)) return;};
         }
 }
 
 
 
 
 
 static celt
 nextleader(v, from, to)
 struct vars *v;
 pchr from;
 pchr to;
 {
         int i;
         chr *p;
         chr ch;
         celt it =3D (-1);
 
         if (v->mcces =3D=3D ((void *)0))
                 return it;
 
         for (i =3D v->mcces->nchrs, p =3D v->mcces->chrs; i > 0; i--, =
 p++) {
                 ch =3D *p;
                 if (from <=3D ch && ch <=3D to)
                         if (it =3D=3D (-1) || ch < it)
                                 it =3D ch;
         }
         return it;
 }
 # 1714
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
 static void
 wordchrs(v)
 struct vars *v;
 {
         struct state *left;
         struct state *right;
 
         if (v->wordchrs !=3D ((void *)0)) {
                 (next(v));
                 return;
         }
 
         left =3D newstate(v->nfa);
         right =3D newstate(v->nfa);
         {if (((v)->err !=3D 0)) return;};
 
         lexword(v);
         (next(v));
         ((void)0);
         bracket(v, left, right);
         ((void)0);
         (next(v));
         {if (((v)->err !=3D 0)) return;};
         v->wordchrs =3D left;
 }
 
 
 
 
 
 
 static struct subre *
 subre(v, op, flags, begin, end)
 struct vars *v;
 int op;
 int flags;
 struct state *begin;
 struct state *end;
 {
         struct subre *ret;
 
         ret =3D v->treefree;
         if (ret !=3D ((void *)0))
                 v->treefree =3D ret->left;
         else {
                 ret =3D (struct subre *)Tcl_Alloc(sizeof(struct subre));
                 if (ret =3D=3D ((void *)0)) {
                         ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err :
 ((v)->err =3D (12)));
                         return ((void *)0);
                 }
                 ret->chain =3D v->treechain;
                 v->treechain =3D ret;
         }
 
         ((void)0);
 
         ret->op =3D op;
         ret->flags =3D flags;
         ret->retry =3D 0;
         ret->subno =3D 0;
         ret->min =3D ret->max =3D 1;
         ret->left =3D ((void *)0);
         ret->right =3D ((void *)0);
         ret->begin =3D begin;
         ret->end =3D end;
         ((ret->cnfa).nstates =3D 0);
 
         return ret;
 }
 
 
 
 
 
 static void
 freesubre(v, sr)
 struct vars *v;
 struct subre *sr;
 {
         if (sr =3D=3D ((void *)0))
                 return;
 
         if (sr->left !=3D ((void *)0))
                 freesubre(v, sr->left);
         if (sr->right !=3D ((void *)0))
                 freesubre(v, sr->right);
 
         freesrnode(v, sr);
 }
 
 
 
 
 
 static void
 freesrnode(v, sr)
 struct vars *v;
 struct subre *sr;
 {
         if (sr =3D=3D ((void *)0))
                 return;
 
         if (!((sr->cnfa).nstates =3D=3D 0))
                 freecnfa(&sr->cnfa);
         sr->flags =3D 0;
 
         if (v !=3D ((void *)0)) {
                 sr->left =3D v->treefree;
                 v->treefree =3D sr;
         } else
                 Tcl_Free(((void *)(sr)));
 }
 
 
 
 
 
 static void
 optst(v, t)
 struct vars *v;
 struct subre *t;
 {
         if (t =3D=3D ((void *)0))
                 return;
 
 
         if (t->left !=3D ((void *)0))
                 optst(v, t->left);
         if (t->right !=3D ((void *)0))
                 optst(v, t->right);
 }
 
 
 
 
 
 static int
 numst(t, start)
 struct subre *t;
 int start;
 {
         int i;
 
         ((void)0);
 
         i =3D start;
         t->retry =3D (short)i++;
         if (t->left !=3D ((void *)0))
                 i =3D numst(t->left, i);
         if (t->right !=3D ((void *)0))
                 i =3D numst(t->right, i);
         return i;
 }
 
 
 
 
 
 static void
 markst(t)
 struct subre *t;
 {
         ((void)0);
 
         t->flags |=3D 0100;
         if (t->left !=3D ((void *)0))
                 markst(t->left);
         if (t->right !=3D ((void *)0))
                 markst(t->right);
 }
 
 
 
 
 
 static void
 cleanst(v)
 struct vars *v;
 {
         struct subre *t;
         struct subre *next;
 
         for (t =3D v->treechain; t !=3D ((void *)0); t =3D next) {
                 next =3D t->chain;
                 if (!(t->flags&0100))
                         Tcl_Free(((void *)(t)));
         }
         v->treechain =3D ((void *)0);
         v->treefree =3D ((void *)0);
 }
 
 
 
 
 
 static long
 nfatree(v, t, f)
 struct vars *v;
 struct subre *t;
 FILE *f;
 {
         ((void)0);
 
         if (t->left !=3D ((void *)0))
                 (void)nfatree(v, t->left, f);
         if (t->right !=3D ((void *)0))
                 (void)nfatree(v, t->right, f);
 
         return nfanode(v, t, f);
 }
 
 
 
 
 
 static long
 nfanode(v, t, f)
 struct vars *v;
 struct subre *t;
 FILE *f;
 {
         struct nfa *nfa;
         long ret =3D 0;
         char idbuf[50];
 
         ((void)0);
 
         if (f !=3D ((void *)0))
                 fprintf(f, "\n\n\n=3D=3D=3D=3D=3D=3D=3D=3D=3D TREE NODE =
 %s =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D\n",
                                                 stid(t, idbuf,
 sizeof(idbuf)));
         nfa =3D newnfa(v, v->cm, v->nfa);
         {if (((v)->err !=3D 0)) return 0;};
         dupnfa(nfa, t->begin, t->end, nfa->init, nfa->final);
         if (!((v)->err !=3D 0)) {
                 specialcolors(nfa);
                 ret =3D optimize(nfa, f);
         }
         if (!((v)->err !=3D 0))
                 compact(nfa, &t->cnfa);
 
         freenfa(nfa);
         return ret;
 }
 
 
 
 
 
 static int
 newlacon(v, begin, end, pos)
 struct vars *v;
 struct state *begin;
 struct state *end;
 int pos;
 {
         int n;
         struct subre *sub;
 
         if (v->nlacons =3D=3D 0) {
                 v->lacons =3D (struct subre *)Tcl_Alloc(2 * =
 sizeof(struct
 subre));
                 n =3D 1;
                 v->nlacons =3D 2;
         } else {
                 v->lacons =3D (struct subre *)Tcl_Realloc(((void
 *)(v->lacons)),(v->nlacons+1)*sizeof(struct subre));
 
                 n =3D v->nlacons++;
         }
         if (v->lacons =3D=3D ((void *)0)) {
                 ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err : =
 ((v)->err
 =3D (12)));
                 return 0;
         }
         sub =3D &v->lacons[n];
         sub->begin =3D begin;
         sub->end =3D end;
         sub->subno =3D pos;
         ((sub->cnfa).nstates =3D 0);
         return n;
 }
 
 
 
 
 
 static void
 freelacons(subs, n)
 struct subre *subs;
 int n;
 {
         struct subre *sub;
         int i;
 
         ((void)0);
         for (sub =3D subs + 1, i =3D n - 1; i > 0; sub++, i--)
                 if (!((sub->cnfa).nstates =3D=3D 0))
                         freecnfa(&sub->cnfa);
         Tcl_Free(((void *)(subs)));
 }
 
 
 
 
 
 static void
 rfree(re)
 regex_t *re;
 {
         struct guts *g;
 
         if (re =3D=3D ((void *)0) || re->re_magic !=3D 0xfed7)
                 return;
 
         re->re_magic =3D 0;
         g =3D (struct guts *)re->re_guts;
         re->re_guts =3D ((void *)0);
         re->re_fns =3D ((void *)0);
         g->magic =3D 0;
         freecm(&g->cmap);
         if (g->tree !=3D ((void *)0))
                 freesubre((struct vars *)((void *)0), g->tree);
         if (g->lacons !=3D ((void *)0))
                 freelacons(g->lacons, g->nlacons);
         if (!((g->search).nstates =3D=3D 0))
                 freecnfa(&g->search);
         Tcl_Free(((void *)(g)));
 }
 
 
 
 
 
 static void
 dump(re, f)
 regex_t *re;
 FILE *f;
 {
 # 2082
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
 }
 
 
 
 
 
 static void
 dumpst(t, f, nfapresent)
 struct subre *t;
 FILE *f;
 int nfapresent;
 {
         if (t =3D=3D ((void *)0))
                 fprintf(f, "null tree\n");
         else
                 stdump(t, f, nfapresent);
         fflush(f);
 }
 
 
 
 
 
 static void
 stdump(t, f, nfapresent)
 struct subre *t;
 FILE *f;
 int nfapresent;
 {
         char idbuf[50];
 
         fprintf(f, "%s. `%c'", stid(t, idbuf, sizeof(idbuf)), t->op);
         if (t->flags&01)
                 fprintf(f, " longest");
         if (t->flags&02)
                 fprintf(f, " shortest");
         if (t->flags&04)
                 fprintf(f, " hasmixed");
         if (t->flags&010)
                 fprintf(f, " hascapture");
         if (t->flags&020)
                 fprintf(f, " hasbackref");
         if (!(t->flags&0100))
                 fprintf(f, " UNUSED");
         if (t->subno !=3D 0)
                 fprintf(f, " (#%d)", t->subno);
         if (t->min !=3D 1 || t->max !=3D 1) {
                 fprintf(f, " {%d,", t->min);
                 if (t->max !=3D (255 +1))
                         fprintf(f, "%d", t->max);
                 fprintf(f, "}");
         }
         if (nfapresent)
                 fprintf(f, " %ld-%ld", (long)t->begin->no,
 (long)t->end->no);
         if (t->left !=3D ((void *)0))
                 fprintf(f, " L:%s", stid(t->left, idbuf,
 sizeof(idbuf)));
         if (t->right !=3D ((void *)0))
                 fprintf(f, " R:%s", stid(t->right, idbuf,
 sizeof(idbuf)));
         if (!((t->cnfa).nstates =3D=3D 0)) {
                 fprintf(f, "\n");
                 dumpcnfa(&t->cnfa, f);
                 fprintf(f, "\n");
         }
         if (t->left !=3D ((void *)0))
                 stdump(t->left, f, nfapresent);
         if (t->right !=3D ((void *)0))
                 stdump(t->right, f, nfapresent);
 }
 
 
 
 
 
 static char *
 stid(t, buf, bufsize)
 struct subre *t;
 char *buf;
 size_t bufsize;
 {
 
         if (bufsize < sizeof(int)*2 + 3 || bufsize < sizeof(t->retry)*3
 + 1)
                 return "unable";
         if (t->retry !=3D 0)
                 sprintf(buf, "%d", t->retry);
         else
                 sprintf(buf, "0x%x", (int)t);
         return buf;
 }
 
 # 1
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_lex.c
 " 1 # 68
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_lex.c
 "
 static void
 lexstart(v)
 struct vars *v;
 {
         prefixes(v);
         {if (((v)->err !=3D 0)) return;};
 
         if (v->cflags&000004) {
                 ((void)0);
                 (v->lexcon =3D (3));
         } else if (v->cflags&000001) {
                 ((void)0);
                 (v->lexcon =3D (1));
         } else {
                 ((void)0);
                 (v->lexcon =3D (2));
         }
 
         v->nexttype =3D 'n';
         next(v);
 }
 
 
 
 
 
 static void
 prefixes(v)
 struct vars *v;
 {
 
         if (v->cflags&000004)
                 return;
 
 
         if ((v->stop - v->now >=3D (4)) && ((v->stop - v->now >=3D (3)) =
 &&
 *v->now =3D=3D (((unsigned char) ('*'))) && *(v->now+1) =3D=3D =
 (((unsigned char)
 ('*'))) && *(v->now+2) =3D=3D (((unsigned char) ('*')))))
                 switch (*(v->now + 3)) {
                 case (((unsigned char) ('?'))):
                         ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err :
 ((v)->err =3D (2)));
                         return;
                         break;
                 case (((unsigned char) ('=3D'))):
                         (v->re->re_info |=3D (000200));
                         v->cflags |=3D 000004;
                         v->cflags &=3D ~(000003|000040|000300);
                         v->now +=3D 4;
                         return;
                         break;
                 case (((unsigned char) (':'))):
                         (v->re->re_info |=3D (000200));
                         v->cflags |=3D 000003;
                         v->now +=3D 4;
                         break;
                 default:
                         ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err :
 ((v)->err =3D (13)));
                         return;
                         break;
                 }
 
 
         if ((v->cflags&000003) !=3D 000003)
                 return;
 
 
         if ((v->stop - v->now >=3D (3)) && ((v->stop - v->now >=3D (2)) =
 &&
 *v->now =3D=3D (((unsigned char) ('('))) && *(v->now+1) =3D=3D =
 (((unsigned char)
 ('?')))) && Tcl_UniCharIsAlpha(*(v->now + 2))) {
                 (v->re->re_info |=3D (000200));
                 v->now +=3D 2;
                 for (; !(v->now >=3D v->stop) &&
 Tcl_UniCharIsAlpha(*v->now); v->now++)
                         switch (*v->now) {
                         case (((unsigned char) ('b'))):
                                 v->cflags &=3D ~(000003|000004);
                                 break;
                         case (((unsigned char) ('c'))):
                                 v->cflags &=3D ~000010;
                                 break;
                         case (((unsigned char) ('e'))):
                                 v->cflags |=3D 000001;
                                 v->cflags &=3D ~(000002|000004);
                                 break;
                         case (((unsigned char) ('i'))):
                                 v->cflags |=3D 000010;
                                 break;
                         case (((unsigned char) ('m'))):
                         case (((unsigned char) ('n'))):
                                 v->cflags |=3D 000300;
                                 break;
                         case (((unsigned char) ('p'))):
                                 v->cflags |=3D 000100;
                                 v->cflags &=3D ~000200;
                                 break;
                         case (((unsigned char) ('q'))):
                                 v->cflags |=3D 000004;
                                 v->cflags &=3D ~000003;
                                 break;
                         case (((unsigned char) ('s'))):
                                 v->cflags &=3D ~000300;
                                 break;
                         case (((unsigned char) ('t'))):
                                 v->cflags &=3D ~000040;
                                 break;
                         case (((unsigned char) ('w'))):
                                 v->cflags &=3D ~000100;
                                 v->cflags |=3D 000200;
                                 break;
                         case (((unsigned char) ('x'))):
                                 v->cflags |=3D 000040;
                                 break;
                         default:
                                 ((v)->nexttype =3D 'e', ((v)->err) ?
 (v)->err : ((v)->err =3D (18)));
                                 return;
                         }
                 if (!(!(v->now >=3D v->stop) && *v->now =3D=3D =
 (((unsigned
 char) (')'))))) {
                         ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err :
 ((v)->err =3D (18)));
                         return;
                 }
                 v->now++;
                 if (v->cflags&000004)
                         v->cflags &=3D ~(000040|000300);
         }
 }
 
 
 
 
 
 
 
 static void
 lexnest(v, beginp, endp)
 struct vars *v;
 chr *beginp;
 chr *endp;
 {
         ((void)0);
         v->savenow =3D v->now;
         v->savestop =3D v->stop;
         v->now =3D beginp;
         v->stop =3D endp;
 }
 
 
 
 
 static chr backd[] =3D {
         (((unsigned char) ('['))), (((unsigned char) ('['))),
 (((unsigned char) (':'))),
         (((unsigned char) ('d'))), (((unsigned char) ('i'))),
 (((unsigned char) ('g'))), (((unsigned char) ('i'))), (((unsigned char)
 ('t'))),
         (((unsigned char) (':'))), (((unsigned char) (']'))),
 (((unsigned char) (']'))) }; static chr backD[] =3D {
         (((unsigned char) ('['))), (((unsigned char) ('^'))),
 (((unsigned char) ('['))), (((unsigned char) (':'))),
         (((unsigned char) ('d'))), (((unsigned char) ('i'))),
 (((unsigned char) ('g'))), (((unsigned char) ('i'))), (((unsigned char)
 ('t'))),
         (((unsigned char) (':'))), (((unsigned char) (']'))),
 (((unsigned char) (']'))) }; static chr brbackd[] =3D {
         (((unsigned char) ('['))), (((unsigned char) (':'))),
         (((unsigned char) ('d'))), (((unsigned char) ('i'))),
 (((unsigned char) ('g'))), (((unsigned char) ('i'))), (((unsigned char)
 ('t'))),
         (((unsigned char) (':'))), (((unsigned char) (']')))
 };
 static chr backs[] =3D {
         (((unsigned char) ('['))), (((unsigned char) ('['))),
 (((unsigned char) (':'))),
         (((unsigned char) ('s'))), (((unsigned char) ('p'))),
 (((unsigned char) ('a'))), (((unsigned char) ('c'))), (((unsigned char)
 ('e'))),
         (((unsigned char) (':'))), (((unsigned char) (']'))),
 (((unsigned char) (']'))) }; static chr backS[] =3D {
         (((unsigned char) ('['))), (((unsigned char) ('^'))),
 (((unsigned char) ('['))), (((unsigned char) (':'))),
         (((unsigned char) ('s'))), (((unsigned char) ('p'))),
 (((unsigned char) ('a'))), (((unsigned char) ('c'))), (((unsigned char)
 ('e'))),
         (((unsigned char) (':'))), (((unsigned char) (']'))),
 (((unsigned char) (']'))) }; static chr brbacks[] =3D {
         (((unsigned char) ('['))), (((unsigned char) (':'))),
         (((unsigned char) ('s'))), (((unsigned char) ('p'))),
 (((unsigned char) ('a'))), (((unsigned char) ('c'))), (((unsigned char)
 ('e'))),
         (((unsigned char) (':'))), (((unsigned char) (']')))
 };
 static chr backw[] =3D {
         (((unsigned char) ('['))), (((unsigned char) ('['))),
 (((unsigned char) (':'))),
         (((unsigned char) ('a'))), (((unsigned char) ('l'))),
 (((unsigned char) ('n'))), (((unsigned char) ('u'))), (((unsigned char)
 ('m'))),
         (((unsigned char) (':'))), (((unsigned char) (']'))),
 (((unsigned char) ('_'))), (((unsigned char) (']'))) }; static chr
 backW[] =3D {
         (((unsigned char) ('['))), (((unsigned char) ('^'))),
 (((unsigned char) ('['))), (((unsigned char) (':'))),
         (((unsigned char) ('a'))), (((unsigned char) ('l'))),
 (((unsigned char) ('n'))), (((unsigned char) ('u'))), (((unsigned char)
 ('m'))),
         (((unsigned char) (':'))), (((unsigned char) (']'))),
 (((unsigned char) ('_'))), (((unsigned char) (']'))) }; static chr
 brbackw[] =3D {
         (((unsigned char) ('['))), (((unsigned char) (':'))),
         (((unsigned char) ('a'))), (((unsigned char) ('l'))),
 (((unsigned char) ('n'))), (((unsigned char) ('u'))), (((unsigned char)
 ('m'))),
         (((unsigned char) (':'))), (((unsigned char) (']'))),
 (((unsigned char) ('_'))) };
 
 
 
 
 
 
 static void
 lexword(v)
 struct vars *v;
 {
         lexnest(v, backw, ((backw) + sizeof(backw)/sizeof(chr))); }
 
 
 
 
 
 static int
 next(v)
 struct vars *v;
 {
         chr c;
 
 
         if (((v)->err !=3D 0))
                 return 0;
 
 
         v->lasttype =3D v->nexttype;
 
 
         if (v->nexttype =3D=3D 'n' && (v->cflags&002000)) {
 
                 return ((v->nexttype =3D ('A'), v->nextvalue =3D (0)), =
 1);
         }
 
 
         if (v->savenow !=3D ((void *)0) && (v->now >=3D v->stop)) {
                 v->now =3D v->savenow;
                 v->stop =3D v->savestop;
                 v->savenow =3D v->savestop =3D ((void *)0);
         }
 
 
         if (v->cflags&000040)
                 switch (v->lexcon) {
                 case 1:
                 case 2:
                 case 4:
                 case 5:
                         skip(v);
                         break;
                 }
 
 
         if ((v->now >=3D v->stop)) {
                 switch (v->lexcon) {
                 case 1:
                 case 2:
                 case 3:
                         return ((v->nexttype =3D ('e')), 1);
                         break;
                 case 4:
                 case 5:
                         return (((v)->nexttype =3D 'e', ((v)->err) ?
 (v)->err : ((v)->err =3D (9))), 0);
                         break;
                 case 6:
                 case 7:
                 case 8:
                 case 9:
                         return (((v)->nexttype =3D 'e', ((v)->err) ?
 (v)->err : ((v)->err =3D (7))), 0);
                         break;
                 }
                 ((void)0);
         }
 
 
         c =3D *v->now++;
 
 
         switch (v->lexcon) {
         case 2:
                 return brenext(v, c);
                 break;
         case 1:
                 break;
         case 3:
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D (c)), =
 1);
                 break;
         case 5:
         case 4:
                 switch (c) {
                 case (((unsigned char) ('0'))): case (((unsigned char)
 ('1'))): case (((unsigned char) ('2'))): case (((unsigned char) ('3'))):
                 case (((unsigned char) ('4'))): case (((unsigned char)
 ('5'))): case (((unsigned char) ('6'))): case (((unsigned char) ('7'))):
                 case (((unsigned char) ('8'))): case (((unsigned char)
 ('9'))):
                         return ((v->nexttype =3D ('d'), v->nextvalue =3D
 ((chr)((c)-'0'))), 1);
                         break;
                 case (((unsigned char) (','))):
                         return ((v->nexttype =3D (',')), 1);
                         break;
                 case (((unsigned char) ('}'))):
                         if ((v->lexcon =3D=3D (4))) {
                                 (v->lexcon =3D (1));
                                 if ((v->cflags&000002) && (!(v->now >=3D
 v->stop) && *v->now =3D=3D (((unsigned char) ('?'))))) {
                                         v->now++;
                                         (v->re->re_info |=3D (000200));
                                         return ((v->nexttype =3D ('}'),
 v->nextvalue =3D (0)), 1);
                                 }
                                 return ((v->nexttype =3D ('}'),
 v->nextvalue =3D (1)), 1);
                         } else
                                 return (((v)->nexttype =3D 'e', =
 ((v)->err)
 ? (v)->err : ((v)->err =3D (10))), 0);
                         break;
                 case (((unsigned char) ('\\'))):
                         if ((v->lexcon =3D=3D (5)) && (!(v->now >=3D =
 v->stop)
 && *v->now =3D=3D (((unsigned char) ('}'))))) {
                                 v->now++;
                                 (v->lexcon =3D (2));
                                 return ((v->nexttype =3D ('}')), 1);
                         } else
                                 return (((v)->nexttype =3D 'e', =
 ((v)->err)
 ? (v)->err : ((v)->err =3D (10))), 0);
                         break;
                 default:
                         return (((v)->nexttype =3D 'e', ((v)->err) ?
 (v)->err : ((v)->err =3D (10))), 0);
                         break;
                 }
                 ((void)0);
                 break;
         case 6:
                 switch (c) {
                 case (((unsigned char) (']'))):
                         if ((v->lasttype =3D=3D ('[')))
                                 return ((v->nexttype =3D ('p'),
 v->nextvalue =3D (c)), 1);
                         else {
                                 (v->lexcon =3D ((v->cflags&000001) ? 1 :
 2));
 
                                 return ((v->nexttype =3D (']')), 1);
                         }
                         break;
                 case (((unsigned char) ('\\'))):
                         (v->re->re_info |=3D (000100));
                         if (!(v->cflags&000002))
                                 return ((v->nexttype =3D ('p'),
 v->nextvalue =3D (c)), 1);
                         (v->re->re_info |=3D (000200));
                         if ((v->now >=3D v->stop))
                                 return (((v)->nexttype =3D 'e', =
 ((v)->err)
 ? (v)->err : ((v)->err =3D (5))), 0);
                         (void)lexescape(v);
                         switch (v->nexttype) {
                         case 'p':
                                 return 1;
                                 break;
                         case 'C':
                                 switch (v->nextvalue) {
                                 case 'd':
                                         lexnest(v, brbackd, ((brbackd) +
 sizeof(brbackd)/sizeof(chr)));
                                         break;
                                 case 's':
                                         lexnest(v, brbacks, ((brbacks) +
 sizeof(brbacks)/sizeof(chr)));
                                         break;
                                 case 'w':
                                         lexnest(v, brbackw, ((brbackw) +
 sizeof(brbackw)/sizeof(chr)));
                                         break;
                                 default:
                                         return (((v)->nexttype =3D 'e',
 ((v)->err) ? (v)->err : ((v)->err =3D (5))), 0);
                                         break;
                                 }
 
                                 v->nexttype =3D v->lasttype;
                                 return next(v);
                                 break;
                         }
 
                         return (((v)->nexttype =3D 'e', ((v)->err) ?
 (v)->err : ((v)->err =3D (5))), 0);
                         break;
                 case (((unsigned char) ('-'))):
                         if ((v->lasttype =3D=3D ('[')) || (!(v->now >=3D
 v->stop) && *v->now =3D=3D (((unsigned char) (']')))))
                                 return ((v->nexttype =3D ('p'),
 v->nextvalue =3D (c)), 1);
                         else
                                 return ((v->nexttype =3D ('R'),
 v->nextvalue =3D (c)), 1);
                         break;
                 case (((unsigned char) ('['))):
                         if ((v->now >=3D v->stop))
                                 return (((v)->nexttype =3D 'e', =
 ((v)->err)
 ? (v)->err : ((v)->err =3D (7))), 0);
                         switch (*v->now++) {
                         case (((unsigned char) ('.'))):
                                 (v->lexcon =3D (7));
 
                                 return ((v->nexttype =3D ('I')), 1);
                                 break;
                         case (((unsigned char) ('=3D'))):
                                 (v->lexcon =3D (8));
                                 (v->re->re_info |=3D (002000));
                                 return ((v->nexttype =3D ('E')), 1);
                                 break;
                         case (((unsigned char) (':'))):
                                 (v->lexcon =3D (9));
                                 (v->re->re_info |=3D (002000));
                                 return ((v->nexttype =3D ('C')), 1);
                                 break;
                         default:
                                 v->now--;
                                 return ((v->nexttype =3D ('p'),
 v->nextvalue =3D (c)), 1);
                                 break;
                         }
                         ((void)0);
                         break;
                 default:
                         return ((v->nexttype =3D ('p'), v->nextvalue =3D
 (c)), 1);
                         break;
                 }
                 ((void)0);
                 break;
         case 7:
                 if (c =3D=3D (((unsigned char) ('.'))) && (!(v->now >=3D
 v->stop) && *v->now =3D=3D (((unsigned char) (']'))))) {
                         v->now++;
                         (v->lexcon =3D (6));
                         return ((v->nexttype =3D ('X'), v->nextvalue =3D
 ('.')), 1);
                 } else
                         return ((v->nexttype =3D ('p'), v->nextvalue =3D
 (c)), 1);
                 break;
         case 8:
                 if (c =3D=3D (((unsigned char) ('=3D'))) && (!(v->now =
 >=3D
 v->stop) && *v->now =3D=3D (((unsigned char) (']'))))) {
                         v->now++;
                         (v->lexcon =3D (6));
                         return ((v->nexttype =3D ('X'), v->nextvalue =3D
 ('=3D')), 1);
                 } else
                         return ((v->nexttype =3D ('p'), v->nextvalue =3D
 (c)), 1);
                 break;
         case 9:
                 if (c =3D=3D (((unsigned char) (':'))) && (!(v->now >=3D
 v->stop) && *v->now =3D=3D (((unsigned char) (']'))))) {
                         v->now++;
                         (v->lexcon =3D (6));
                         return ((v->nexttype =3D ('X'), v->nextvalue =3D
 (':')), 1);
                 } else
                         return ((v->nexttype =3D ('p'), v->nextvalue =3D
 (c)), 1);
                 break;
         default:
                 ((void)0);
                 break;
         }
 
 
         ((void)0);
 
 
         switch (c) {
         case (((unsigned char) ('|'))):
                 return ((v->nexttype =3D ('|')), 1);
                 break;
         case (((unsigned char) ('*'))):
                 if ((v->cflags&000002) && (!(v->now >=3D v->stop) &&
 *v->now =3D=3D (((unsigned char) ('?'))))) {
                         v->now++;
                         (v->re->re_info |=3D (000200));
                         return ((v->nexttype =3D ('*'), v->nextvalue =3D
 (0)), 1);
                 }
                 return ((v->nexttype =3D ('*'), v->nextvalue =3D (1)), =
 1);
                 break;
         case (((unsigned char) ('+'))):
                 if ((v->cflags&000002) && (!(v->now >=3D v->stop) &&
 *v->now =3D=3D (((unsigned char) ('?'))))) {
                         v->now++;
                         (v->re->re_info |=3D (000200));
                         return ((v->nexttype =3D ('+'), v->nextvalue =3D
 (0)), 1);
                 }
                 return ((v->nexttype =3D ('+'), v->nextvalue =3D (1)), =
 1);
                 break;
         case (((unsigned char) ('?'))):
                 if ((v->cflags&000002) && (!(v->now >=3D v->stop) &&
 *v->now =3D=3D (((unsigned char) ('?'))))) {
                         v->now++;
                         (v->re->re_info |=3D (000200));
                         return ((v->nexttype =3D ('?'), v->nextvalue =3D
 (0)), 1);
                 }
                 return ((v->nexttype =3D ('?'), v->nextvalue =3D (1)), =
 1);
                 break;
         case (((unsigned char) ('{'))):
                 if (v->cflags&000040)
                         skip(v);
                 if ((v->now >=3D v->stop) || =
 !Tcl_UniCharIsDigit(*v->now))
 {
                         (v->re->re_info |=3D (000010));
                         (v->re->re_info |=3D (000400));
                         return ((v->nexttype =3D ('p'), v->nextvalue =3D
 (c)), 1);
                 } else {
                         (v->re->re_info |=3D (000004));
                         (v->lexcon =3D (4));
                         return ((v->nexttype =3D ('{')), 1);
                 }
                 ((void)0);
                 break;
         case (((unsigned char) ('('))):
                 if ((v->cflags&000002) && (!(v->now >=3D v->stop) &&
 *v->now =3D=3D (((unsigned char) ('?'))))) {
                         (v->re->re_info |=3D (000200));
                         v->now++;
                         switch (*v->now++) {
                         case (((unsigned char) (':'))):
                                 return ((v->nexttype =3D ('('),
 v->nextvalue =3D (0)), 1);
                                 break;
                         case (((unsigned char) ('#'))):
                                 while (!(v->now >=3D v->stop) && *v->now
 !=3D (((unsigned char) (')'))))
                                         v->now++;
                                 if (!(v->now >=3D v->stop))
                                         v->now++;
                                 ((void)0);
                                 return next(v);
                                 break;
                         case (((unsigned char) ('=3D'))):
                                 (v->re->re_info |=3D (000002));
                                 return ((v->nexttype =3D ('L'),
 v->nextvalue =3D (1)), 1);
                                 break;
                         case (((unsigned char) ('!'))):
                                 (v->re->re_info |=3D (000002));
                                 return ((v->nexttype =3D ('L'),
 v->nextvalue =3D (0)), 1);
                                 break;
                         default:
                                 return (((v)->nexttype =3D 'e', =
 ((v)->err)
 ? (v)->err : ((v)->err =3D (13))), 0);
                                 break;
                         }
                         ((void)0);
                 }
                 if (v->cflags&000020)
                         return ((v->nexttype =3D ('('), v->nextvalue =3D
 (0)), 1);
                 else
                         return ((v->nexttype =3D ('('), v->nextvalue =3D
 (1)), 1);
                 break;
         case (((unsigned char) (')'))):
                 if ((v->lasttype =3D=3D ('('))) {
                         (v->re->re_info |=3D (000400));
                 }
                 return ((v->nexttype =3D (')'), v->nextvalue =3D (c)), =
 1);
                 break;
         case (((unsigned char) ('['))):
                 if ((v->stop - v->now >=3D (6)) && *(v->now+0) =3D=3D
 (((unsigned char) ('['))) &&
                                 *(v->now+1) =3D=3D (((unsigned char) =
 (':')))
 &&
                                 (*(v->now+2) =3D=3D (((unsigned char)
 ('<'))) ||
                                                 *(v->now+2) =3D=3D
 (((unsigned char) ('>')))) &&
                                 *(v->now+3) =3D=3D (((unsigned char) =
 (':')))
 &&
                                 *(v->now+4) =3D=3D (((unsigned char) =
 (']')))
 &&
                                 *(v->now+5) =3D=3D (((unsigned char)
 (']')))) {
                         c =3D *(v->now+2);
                         v->now +=3D 6;
                         (v->re->re_info |=3D (000200));
                         return ((v->nexttype =3D ((c =3D=3D (((unsigned =
 char)
 ('<')))) ? '<' : '>')), 1);
                 }
                 (v->lexcon =3D (6));
                 if ((!(v->now >=3D v->stop) && *v->now =3D=3D =
 (((unsigned
 char) ('^'))))) {
                         v->now++;
                         return ((v->nexttype =3D ('['), v->nextvalue =3D
 (0)), 1);
                 }
                 return ((v->nexttype =3D ('['), v->nextvalue =3D (1)), =
 1);
                 break;
         case (((unsigned char) ('.'))):
                 return ((v->nexttype =3D ('.')), 1);
                 break;
         case (((unsigned char) ('^'))):
                 return ((v->nexttype =3D ('^')), 1);
                 break;
         case (((unsigned char) ('$'))):
                 return ((v->nexttype =3D ('$')), 1);
                 break;
         case (((unsigned char) ('\\'))):
                 if ((v->now >=3D v->stop))
                         return (((v)->nexttype =3D 'e', ((v)->err) ?
 (v)->err : ((v)->err =3D (5))), 0);
                 break;
         default:
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D (c)), =
 1);
                 break;
         }
 
 
         ((void)0);
         if (!(v->cflags&000002)) {
                 if (Tcl_UniCharIsAlnum(*v->now)) {
                         (v->re->re_info |=3D (000020));
                         (v->re->re_info |=3D (000400));
                 }
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D
 (*v->now++)), 1);
         }
         (void)lexescape(v);
         if (((v)->err !=3D 0))
                 return (((v)->nexttype =3D 'e', ((v)->err) ? (v)->err :
 ((v)->err =3D (5))), 0);
         if (v->nexttype =3D=3D 'C') {
                 switch (v->nextvalue) {
                 case 'd': lexnest(v, backd, ((backd) +
 sizeof(backd)/sizeof(chr))); break;
                 case 'D': lexnest(v, backD, ((backD) +
 sizeof(backD)/sizeof(chr))); break;
                 case 's': lexnest(v, backs, ((backs) +
 sizeof(backs)/sizeof(chr))); break;
                 case 'S': lexnest(v, backS, ((backS) +
 sizeof(backS)/sizeof(chr))); break;
                 case 'w': lexnest(v, backw, ((backw) +
 sizeof(backw)/sizeof(chr))); break;
                 case 'W': lexnest(v, backW, ((backW) +
 sizeof(backW)/sizeof(chr))); break;
                 default:
                         ((void)0);
                         return (((v)->nexttype =3D 'e', ((v)->err) ?
 (v)->err : ((v)->err =3D (15))), 0);
                         break;
                 }
 
                 v->nexttype =3D v->lasttype;
                 return next(v);
         }
 
         return !((v)->err !=3D 0);
 }
 
 
 
 
 
 
 static int
 lexescape(v)
 struct vars *v;
 {
         chr c;
         static chr alert[] =3D {
                 (((unsigned char) ('a'))), (((unsigned char) ('l'))),
 (((unsigned char) ('e'))), (((unsigned char) ('r'))), (((unsigned char)
 ('t')))
         };
         static chr esc[] =3D {
                 (((unsigned char) ('E'))), (((unsigned char) ('S'))),
 (((unsigned char) ('C')))
         };
         chr *save;
 
         ((void)0);
 
         ((void)0);
         c =3D *v->now++;
         if (!Tcl_UniCharIsAlnum(c))
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D (c)), =
 1);
 
         (v->re->re_info |=3D (000200));
         switch (c) {
         case (((unsigned char) ('a'))):
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D
 (chrnamed(v, alert, ((alert) + sizeof(alert)/sizeof(chr)), (((unsigned
 char) ('\007')))))), 1);
                 break;
         case (((unsigned char) ('A'))):
                 return ((v->nexttype =3D ('A'), v->nextvalue =3D (0)), =
 1);
                 break;
         case (((unsigned char) ('b'))):
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D
 ((((unsigned char) ('\b'))))), 1);
                 break;
         case (((unsigned char) ('B'))):
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D
 ((((unsigned char) ('\\'))))), 1);
                 break;
         case (((unsigned char) ('c'))):
                 (v->re->re_info |=3D (001000));
                 if ((v->now >=3D v->stop))
                         return (((v)->nexttype =3D 'e', ((v)->err) ?
 (v)->err : ((v)->err =3D (5))), 0);
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D
 ((chr)(*v->now++ & 037))), 1);
                 break;
         case (((unsigned char) ('d'))):
                 (v->re->re_info |=3D (002000));
                 return ((v->nexttype =3D ('C'), v->nextvalue =3D ('d')), =
 1);
                 break;
         case (((unsigned char) ('D'))):
                 (v->re->re_info |=3D (002000));
                 return ((v->nexttype =3D ('C'), v->nextvalue =3D ('D')), =
 1);
                 break;
         case (((unsigned char) ('e'))):
                 (v->re->re_info |=3D (001000));
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D
 (chrnamed(v, esc, ((esc) + sizeof(esc)/sizeof(chr)), (((unsigned char)
 ('\033')))))), 1);
                 break;
         case (((unsigned char) ('f'))):
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D
 ((((unsigned char) ('\f'))))), 1);
                 break;
         case (((unsigned char) ('m'))):
                 return ((v->nexttype =3D ('<')), 1);
                 break;
         case (((unsigned char) ('M'))):
                 return ((v->nexttype =3D ('>')), 1);
                 break;
         case (((unsigned char) ('n'))):
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D
 ((((unsigned char) ('\n'))))), 1);
                 break;
         case (((unsigned char) ('r'))):
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D
 ((((unsigned char) ('\r'))))), 1);
                 break;
         case (((unsigned char) ('s'))):
                 (v->re->re_info |=3D (002000));
                 return ((v->nexttype =3D ('C'), v->nextvalue =3D ('s')), =
 1);
                 break;
         case (((unsigned char) ('S'))):
                 (v->re->re_info |=3D (002000));
                 return ((v->nexttype =3D ('C'), v->nextvalue =3D ('S')), =
 1);
                 break;
         case (((unsigned char) ('t'))):
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D
 ((((unsigned char) ('\t'))))), 1);
                 break;
         case (((unsigned char) ('u'))):
                 c =3D lexdigits(v, 16, 4, 4);
                 if (((v)->err !=3D 0))
                         return (((v)->nexttype =3D 'e', ((v)->err) ?
 (v)->err : ((v)->err =3D (5))), 0);
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D (c)), =
 1);
                 break;
         case (((unsigned char) ('U'))):
                 c =3D lexdigits(v, 16, 8, 8);
                 if (((v)->err !=3D 0))
                         return (((v)->nexttype =3D 'e', ((v)->err) ?
 (v)->err : ((v)->err =3D (5))), 0);
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D (c)), =
 1);
                 break;
         case (((unsigned char) ('v'))):
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D
 ((((unsigned char) ('\v'))))), 1);
                 break;
         case (((unsigned char) ('w'))):
                 (v->re->re_info |=3D (002000));
                 return ((v->nexttype =3D ('C'), v->nextvalue =3D ('w')), =
 1);
                 break;
         case (((unsigned char) ('W'))):
                 (v->re->re_info |=3D (002000));
                 return ((v->nexttype =3D ('C'), v->nextvalue =3D ('W')), =
 1);
                 break;
         case (((unsigned char) ('x'))):
                 (v->re->re_info |=3D (001000));
                 c =3D lexdigits(v, 16, 1, 255);
                 if (((v)->err !=3D 0))
                         return (((v)->nexttype =3D 'e', ((v)->err) ?
 (v)->err : ((v)->err =3D (5))), 0);
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D (c)), =
 1);
                 break;
         case (((unsigned char) ('y'))):
                 (v->re->re_info |=3D (002000));
                 return ((v->nexttype =3D ('w'), v->nextvalue =3D (0)), =
 1);
                 break;
         case (((unsigned char) ('Y'))):
                 (v->re->re_info |=3D (002000));
                 return ((v->nexttype =3D ('W'), v->nextvalue =3D (0)), =
 1);
                 break;
         case (((unsigned char) ('Z'))):
                 return ((v->nexttype =3D ('Z'), v->nextvalue =3D (0)), =
 1);
                 break;
         case (((unsigned char) ('1'))): case (((unsigned char) ('2'))):
 case (((unsigned char) ('3'))): case (((unsigned char) ('4'))):
         case (((unsigned char) ('5'))): case (((unsigned char) ('6'))):
 case (((unsigned char) ('7'))): case (((unsigned char) ('8'))):
         case (((unsigned char) ('9'))):
                 save =3D v->now;
                 v->now--;
                 c =3D lexdigits(v, 10, 1, 255);
                 if (((v)->err !=3D 0))
                         return (((v)->nexttype =3D 'e', ((v)->err) ?
 (v)->err : ((v)->err =3D (5))), 0);
 
                 if (v->now - save =3D=3D 0 || (int)c <=3D v->nsubexp) {
                         (v->re->re_info |=3D (000001));
                         return ((v->nexttype =3D ('b'), v->nextvalue =3D
 ((chr)c)), 1);
                 }
 
                 v->now =3D save;
 
         case (((unsigned char) ('0'))):
                 (v->re->re_info |=3D (001000));
                 v->now--;
                 c =3D lexdigits(v, 8, 1, 3);
                 if (((v)->err !=3D 0))
                         return (((v)->nexttype =3D 'e', ((v)->err) ?
 (v)->err : ((v)->err =3D (5))), 0);
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D (c)), =
 1);
                 break;
         default:
                 ((void)0);
                 return (((v)->nexttype =3D 'e', ((v)->err) ? (v)->err :
 ((v)->err =3D (5))), 0);
                 break;
         }
         ((void)0);
 }
 
 
 
 
 
 static chr
 lexdigits(v, base, minlen, maxlen)
 struct vars *v;
 int base;
 int minlen;
 int maxlen;
 {
         uchr n;
         int len;
         chr c;
         int d;
         const uchr ub =3D (uchr) base;
 
         n =3D 0;
         for (len =3D 0; len < maxlen && !(v->now >=3D v->stop); len++) {
                 c =3D *v->now++;
                 switch (c) {
                 case (((unsigned char) ('0'))): case (((unsigned char)
 ('1'))): case (((unsigned char) ('2'))): case (((unsigned char) ('3'))):
                 case (((unsigned char) ('4'))): case (((unsigned char)
 ('5'))): case (((unsigned char) ('6'))): case (((unsigned char) ('7'))):
                 case (((unsigned char) ('8'))): case (((unsigned char)
 ('9'))):
                         d =3D ((c)-'0');
                         break;
                 case (((unsigned char) ('a'))): case (((unsigned char)
 ('A'))): d =3D 10; break;
                 case (((unsigned char) ('b'))): case (((unsigned char)
 ('B'))): d =3D 11; break;
                 case (((unsigned char) ('c'))): case (((unsigned char)
 ('C'))): d =3D 12; break;
                 case (((unsigned char) ('d'))): case (((unsigned char)
 ('D'))): d =3D 13; break;
                 case (((unsigned char) ('e'))): case (((unsigned char)
 ('E'))): d =3D 14; break;
                 case (((unsigned char) ('f'))): case (((unsigned char)
 ('F'))): d =3D 15; break;
                 default:
                         v->now--;
                         d =3D -1;
                         break;
                 }
 
                 if (d >=3D base) {
                         v->now--;
                         d =3D -1;
                 }
                 if (d < 0)
                         break;
                 n =3D n*ub + (uchr)d;
         }
         if (len < minlen)
                 ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err : =
 ((v)->err
 =3D (5)));
 
         return (chr)n;
 }
 
 
 
 
 
 
 
 static int
 brenext(v, pc)
 struct vars *v;
 pchr pc;
 {
         chr c =3D (chr)pc;
 
         switch (c) {
         case (((unsigned char) ('*'))):
                 if ((v->lasttype =3D=3D ('n')) || (v->lasttype =3D=3D =
 ('(')) ||
 (v->lasttype =3D=3D ('^')))
                         return ((v->nexttype =3D ('p'), v->nextvalue =3D
 (c)), 1);
                 return ((v->nexttype =3D ('*')), 1);
                 break;
         case (((unsigned char) ('['))):
                 if ((v->stop - v->now >=3D (6)) && *(v->now+0) =3D=3D
 (((unsigned char) ('['))) &&
                                 *(v->now+1) =3D=3D (((unsigned char) =
 (':')))
 &&
                                 (*(v->now+2) =3D=3D (((unsigned char)
 ('<'))) ||
                                                 *(v->now+2) =3D=3D
 (((unsigned char) ('>')))) &&
                                 *(v->now+3) =3D=3D (((unsigned char) =
 (':')))
 &&
                                 *(v->now+4) =3D=3D (((unsigned char) =
 (']')))
 &&
                                 *(v->now+5) =3D=3D (((unsigned char)
 (']')))) {
                         c =3D *(v->now+2);
                         v->now +=3D 6;
                         (v->re->re_info |=3D (000200));
                         return ((v->nexttype =3D ((c =3D=3D (((unsigned =
 char)
 ('<')))) ? '<' : '>')), 1);
                 }
                 (v->lexcon =3D (6));
                 if ((!(v->now >=3D v->stop) && *v->now =3D=3D =
 (((unsigned
 char) ('^'))))) {
                         v->now++;
                         return ((v->nexttype =3D ('['), v->nextvalue =3D
 (0)), 1);
                 }
                 return ((v->nexttype =3D ('['), v->nextvalue =3D (1)), =
 1);
                 break;
         case (((unsigned char) ('.'))):
                 return ((v->nexttype =3D ('.')), 1);
                 break;
         case (((unsigned char) ('^'))):
                 if ((v->lasttype =3D=3D ('n')))
                         return ((v->nexttype =3D ('^')), 1);
                 if ((v->lasttype =3D=3D ('('))) {
                         (v->re->re_info |=3D (000400));
                         return ((v->nexttype =3D ('^')), 1);
                 }
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D (c)), =
 1);
                 break;
         case (((unsigned char) ('$'))):
                 if (v->cflags&000040)
                         skip(v);
                 if ((v->now >=3D v->stop))
                         return ((v->nexttype =3D ('$')), 1);
                 if (((v->stop - v->now >=3D (2)) && *v->now =3D=3D =
 (((unsigned
 char) ('\\'))) && *(v->now+1) =3D=3D (((unsigned char) (')'))))) {
                         (v->re->re_info |=3D (000400));
                         return ((v->nexttype =3D ('$')), 1);
                 }
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D (c)), =
 1);
                 break;
         case (((unsigned char) ('\\'))):
                 break;
         default:
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D (c)), =
 1);
                 break;
         }
 
         ((void)0);
 
         if ((v->now >=3D v->stop))
                 return (((v)->nexttype =3D 'e', ((v)->err) ? (v)->err :
 ((v)->err =3D (5))), 0);
 
         c =3D *v->now++;
         switch (c) {
         case (((unsigned char) ('{'))):
                 (v->lexcon =3D (5));
                 (v->re->re_info |=3D (000004));
                 return ((v->nexttype =3D ('{')), 1);
                 break;
         case (((unsigned char) ('('))):
                 return ((v->nexttype =3D ('('), v->nextvalue =3D (1)), =
 1);
                 break;
         case (((unsigned char) (')'))):
                 return ((v->nexttype =3D (')'), v->nextvalue =3D (c)), =
 1);
                 break;
         case (((unsigned char) ('<'))):
                 (v->re->re_info |=3D (000200));
                 return ((v->nexttype =3D ('<')), 1);
                 break;
         case (((unsigned char) ('>'))):
                 (v->re->re_info |=3D (000200));
                 return ((v->nexttype =3D ('>')), 1);
                 break;
         case (((unsigned char) ('1'))): case (((unsigned char) ('2'))):
 case (((unsigned char) ('3'))): case (((unsigned char) ('4'))):
         case (((unsigned char) ('5'))): case (((unsigned char) ('6'))):
 case (((unsigned char) ('7'))): case (((unsigned char) ('8'))):
         case (((unsigned char) ('9'))):
                 (v->re->re_info |=3D (000001));
                 return ((v->nexttype =3D ('b'), v->nextvalue =3D
 ((chr)((c)-'0'))), 1);
                 break;
         default:
                 if (Tcl_UniCharIsAlnum(c)) {
                         (v->re->re_info |=3D (000020));
                         (v->re->re_info |=3D (000400));
                 }
                 return ((v->nexttype =3D ('p'), v->nextvalue =3D (c)), =
 1);
                 break;
         }
 
         ((void)0);
 }
 
 
 
 
 
 static void
 skip(v)
 struct vars *v;
 {
         chr *start =3D v->now;
 
         ((void)0);
 
         for (;;) {
                 while (!(v->now >=3D v->stop) &&
 Tcl_UniCharIsSpace(*v->now))
                         v->now++;
                 if ((v->now >=3D v->stop) || *v->now !=3D (((unsigned =
 char)
 ('#'))))
                         break;
                 ((void)0);
                 while (!(v->now >=3D v->stop) && *v->now !=3D =
 (((unsigned
 char) ('\n'))))
                         v->now++;
 
         }
 
         if (v->now !=3D start)
                 (v->re->re_info |=3D (000200));
 }
 
 
 
 
 
 
 static chr
 newline()
 {
         return (((unsigned char) ('\n')));
 }
 # 1036
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_lex.c
 "
 static chr
 chrnamed(v, startp, endp, lastresort)
 struct vars *v;
 chr *startp;
 chr *endp;
 pchr lastresort;
 {
         celt c;
         int errsave;
         int e;
         struct cvec *cv;
 
         errsave =3D v->err;
         v->err =3D 0;
         c =3D element(v, startp, endp);
         e =3D v->err;
         v->err =3D errsave;
 
         if (e !=3D 0)
                 return (chr)lastresort;
 
         cv =3D range(v, c, c, 0);
         if (cv->nchrs =3D=3D 0)
                 return (chr)lastresort;
         return cv->chrs[0];
 }
 # 2172
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
 2 # 1
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_color
 .c" 1 # 48
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_color
 .c"
 static void
 initcm(v, cm)
 struct vars *v;
 struct colormap *cm;
 {
         int i;
         int j;
         union tree *t;
         union tree *nextt;
         struct colordesc *cd;
 
         cm->magic =3D 0x876;
         cm->v =3D v;
 
         cm->ncds =3D ((size_t)10);
         cm->cd =3D cm->cdspace;
         cm->max =3D 0;
         cm->free =3D 0;
 
         cd =3D cm->cd;
         cd->sub =3D (-1);
         cd->arcs =3D ((void *)0);
         cd->flags =3D 0;
         cd->nchrs =3D 0xffff - 0x0000 + 1;
 
 
         for (t =3D &cm->tree[0], j =3D ((16 +8 -1)/8)-1; j > 0; t =3D =
 nextt,
 j--) {
                 nextt =3D t + 1;
                 for (i =3D (1<<8)-1; i >=3D 0; i--)
                         t->ptrs.pptr[i] =3D nextt;
         }
 
         t =3D &cm->tree[((16 +8 -1)/8)-1];
         for (i =3D (1<<8)-1; i >=3D 0; i--)
                 t->colors.ccolor[i] =3D 0;
         cd->block =3D t;
 }
 
 
 
 
 
 static void
 freecm(cm)
 struct colormap *cm;
 {
         size_t i;
         union tree *cb;
 
         cm->magic =3D 0;
         if (((16 +8 -1)/8) > 1)
                 cmtreefree(cm, cm->tree, 0);
         for (i =3D 1; i <=3D cm->max; i++)
                 if (!((&cm->cd[i])->flags&01)) {
                         cb =3D cm->cd[i].block;
                         if (cb !=3D ((void *)0))
                                 Tcl_Free(((void *)(cb)));
                 }
         if (cm->cd !=3D cm->cdspace)
                 Tcl_Free(((void *)(cm->cd)));
 }
 
 
 
 
 
 static void
 cmtreefree(cm, tree, level)
 struct colormap *cm;
 union tree *tree;
 int level;
 {
         int i;
         union tree *t;
         union tree *fillt =3D &cm->tree[level+1];
         union tree *cb;
 
         ((void)0);
         for (i =3D (1<<8)-1; i >=3D 0; i--) {
                 t =3D tree->ptrs.pptr[i];
                 ((void)0);
                 if (t !=3D fillt) {
                         if (level < ((16 +8 -1)/8)-2) {
                                 cmtreefree(cm, t, level+1);
                                 Tcl_Free(((void *)(t)));
                         } else {
                                 cb =3D =
 cm->cd[t->colors.ccolor[0]].block;
                                 if (t !=3D cb)
                                         Tcl_Free(((void *)(t)));
                         }
                 }
         }
 }
 
 
 
 
 
 static color
 setcolor(cm, c, co)
 struct colormap *cm;
 pchr c;
 pcolor co;
 {
         uchr uc =3D c;
         int shift;
         int level;
         int b;
         int bottom;
         union tree *t;
         union tree *newt;
         union tree *fillt;
         union tree *lastt;
         union tree *cb;
         color prev;
 
         ((void)0);
         if (((cm->v)->err !=3D 0) || co =3D=3D (-1))
                 return (-1);
 
         t =3D cm->tree;
         for (level =3D 0, shift =3D 8 * (((16 +8 -1)/8) - 1); shift > 0;
                                                 level++, shift -=3D 8) {
                 b =3D (uc >> shift) & ((1<<8)-1);
                 lastt =3D t;
                 t =3D lastt->ptrs.pptr[b];
                 ((void)0);
                 fillt =3D &cm->tree[level+1];
                 bottom =3D (shift <=3D 8) ? 1 : 0;
                 cb =3D (bottom) ? cm->cd[t->colors.ccolor[0]].block :
 fillt;
                 if (t =3D=3D fillt || t =3D=3D cb) {
                         newt =3D (union tree *)Tcl_Alloc((bottom) ?
 sizeof(struct colors) : sizeof(struct ptrs));
 
                         if (newt =3D=3D ((void *)0)) {
                                 ((cm->v)->nexttype =3D 'e', =
 ((cm->v)->err)
 ? (cm->v)->err : ((cm->v)->err =3D ((12))));
                                 return (-1);
                         }
                         if (bottom)
                                 memcpy(((void *)(newt->colors.ccolor)),
 ((void *)(t->colors.ccolor)),
 =20
 (1<<8)*sizeof(color));
                         else
                                 memcpy(((void *)(newt->ptrs.pptr)),
 ((void *)(t->ptrs.pptr)),
                                                 (1<<8)*sizeof(union tree
 *));
                         t =3D newt;
                         lastt->ptrs.pptr[b] =3D t;
                 }
         }
 
         b =3D uc & ((1<<8)-1);
         prev =3D t->colors.ccolor[b];
         t->colors.ccolor[b] =3D (color)co;
         return prev;
 }
 
 
 
 
 
 static color
 maxcolor(cm)
 struct colormap *cm;
 {
         if (((cm->v)->err !=3D 0))
                 return (-1);
 
         return (color)cm->max;
 }
 
 
 
 
 
 
 static color
 newcolor(cm)
 struct colormap *cm;
 {
         struct colordesc *cd;
         struct colordesc *new;
         size_t n;
 
         if (((cm->v)->err !=3D 0))
                 return (-1);
 
         if (cm->free !=3D 0) {
                 ((void)0);
                 ((void)0);
                 cd =3D &cm->cd[cm->free];
                 ((void)0);
                 ((void)0);
                 cm->free =3D cd->sub;
         } else if (cm->max < cm->ncds - 1) {
                 cm->max++;
                 cd =3D &cm->cd[cm->max];
         } else {
 
                 n =3D cm->ncds * 2;
                 if (cm->cd =3D=3D cm->cdspace) {
                         new =3D (struct colordesc *)Tcl_Alloc(n *
 sizeof(struct colordesc));
 
                         if (new !=3D ((void *)0))
                                 memcpy(((void *)(new)), ((void
 *)(cm->cdspace)), cm->ncds *
                                                 sizeof(struct
 colordesc));
                 } else
                         new =3D (struct colordesc *)Tcl_Realloc(((void
 *)(cm->cd)),n * sizeof(struct colordesc));
 
                 if (new =3D=3D ((void *)0)) {
                         ((cm->v)->nexttype =3D 'e', ((cm->v)->err) ?
 (cm->v)->err : ((cm->v)->err =3D ((12))));
                         return (-1);
                 }
                 cm->cd =3D new;
                 cm->ncds =3D n;
                 ((void)0);
                 cm->max++;
                 cd =3D &cm->cd[cm->max];
         }
 
         cd->nchrs =3D 0;
         cd->sub =3D (-1);
         cd->arcs =3D ((void *)0);
         cd->flags =3D 0;
         cd->block =3D ((void *)0);
 
         return (color)(cd - cm->cd);
 }
 
 
 
 
 
 static void
 freecolor(cm, co)
 struct colormap *cm;
 pcolor co;
 {
         struct colordesc *cd =3D &cm->cd[co];
         color pco, nco;
 
         ((void)0);
         if (co =3D=3D 0)
                 return;
 
         ((void)0);
         ((void)0);
         ((void)0);
         cd->flags =3D 01;
         if (cd->block !=3D ((void *)0)) {
                 Tcl_Free(((void *)(cd->block)));
                 cd->block =3D ((void *)0);
         }
 
         if ((size_t)co =3D=3D cm->max) {
                 while (cm->max > 0 && ((&cm->cd[cm->max])->flags&01))
                         cm->max--;
                 ((void)0);
                 while ((size_t)cm->free > cm->max)
                         cm->free =3D cm->cd[cm->free].sub;
                 if (cm->free > 0) {
                         ((void)0);
                         pco =3D cm->free;
                         nco =3D cm->cd[pco].sub;
                         while (nco > 0)
                                 if ((size_t)nco > cm->max) {
 
                                         nco =3D cm->cd[nco].sub;
                                         cm->cd[pco].sub =3D nco;
                                 } else {
                                         ((void)0);
                                         pco =3D nco;
                                         nco =3D cm->cd[pco].sub;
                                 }
                 }
         } else {
                 cd->sub =3D cm->free;
                 cm->free =3D (color)(cd - cm->cd);
         }
 }
 
 
 
 
 
 static color
 pseudocolor(cm)
 struct colormap *cm;
 {
         color co;
 
         co =3D newcolor(cm);
         if (((cm->v)->err !=3D 0))
                 return (-1);
         cm->cd[co].nchrs =3D 1;
         cm->cd[co].flags =3D 02;
         return co;
 }
 
 
 
 
 
 static color
 subcolor(cm, c)
 struct colormap *cm;
 pchr c;
 {
         color co;
         color sco;
 
         co =3D ((cm)->tree->ptrs.pptr[(((c)>>8) &
 ((1<<8)-1))]->colors.ccolor[((c) & ((1<<8)-1))]);
         sco =3D newsub(cm, co);
         if (((cm->v)->err !=3D 0))
                 return (-1);
         ((void)0);
 
         if (co =3D=3D sco)
                 return co;
         cm->cd[co].nchrs--;
         cm->cd[sco].nchrs++;
         setcolor(cm, c, sco);
         return sco;
 }
 
 
 
 
 
 static color
 newsub(cm, co)
 struct colormap *cm;
 pcolor co;
 {
         color sco;
 
         sco =3D cm->cd[co].sub;
         if (sco =3D=3D (-1)) {
                 if (cm->cd[co].nchrs =3D=3D 1)
                         return co;
                 sco =3D newcolor(cm);
                 if (sco =3D=3D (-1)) {
                         ((void)0);
                         return (-1);
                 }
                 cm->cd[co].sub =3D sco;
                 cm->cd[sco].sub =3D sco;
         }
         ((void)0);
 
         return sco;
 }
 
 
 
 
 
 
 static void
 subrange(v, from, to, lp, rp)
 struct vars *v;
 pchr from;
 pchr to;
 struct state *lp;
 struct state *rp;
 {
         uchr uf;
         int i;
 
         ((void)0);
 
 
         uf =3D (uchr)from;
         i =3D (int)( ((uf + (1<<8)-1) & (uchr)~((1<<8)-1)) - uf );
         for (; from <=3D to && i > 0; i--, from++)
                 newarc(v->nfa, 'p', subcolor(v->cm, from), lp, rp);
         if (from > to)
                 return;
 
 
         for (; to - from >=3D (1<<8); from +=3D (1<<8))
                 subblock(v, from, lp, rp);
 
 
         for (; from <=3D to; from++)
                 newarc(v->nfa, 'p', subcolor(v->cm, from), lp, rp); }
 
 
 
 
 
 static void
 subblock(v, start, lp, rp)
 struct vars *v;
 pchr start;
 struct state *lp;
 struct state *rp;
 {
         uchr uc =3D start;
         struct colormap *cm =3D v->cm;
         int shift;
         int level;
         int i;
         int b;
         union tree *t;
         union tree *cb;
         union tree *fillt;
         union tree *lastt;
         int previ;
         int ndone;
         color co;
         color sco;
 
         ((void)0);
 
 
         t =3D cm->tree;
         fillt =3D ((void *)0);
         for (level =3D 0, shift =3D 8 * (((16 +8 -1)/8) - 1); shift > 0;
                                                 level++, shift -=3D 8) {
                 b =3D (uc >> shift) & ((1<<8)-1);
                 lastt =3D t;
                 t =3D lastt->ptrs.pptr[b];
                 ((void)0);
                 fillt =3D &cm->tree[level+1];
                 if (t =3D=3D fillt && shift > 8) {
                         t =3D (union tree *)Tcl_Alloc(sizeof(struct
 ptrs));
                         if (t =3D=3D ((void *)0)) {
                                 ((cm->v)->nexttype =3D 'e', =
 ((cm->v)->err)
 ? (cm->v)->err : ((cm->v)->err =3D ((12))));
                                 return;
                         }
                         memcpy(((void *)(t->ptrs.pptr)), ((void
 *)(fillt->ptrs.pptr)),
                                                 (1<<8)*sizeof(union tree
 *));
                         lastt->ptrs.pptr[b] =3D t;
                 }
         }
 
 
         co =3D t->colors.ccolor[0];
         cb =3D cm->cd[co].block;
         if (t =3D=3D fillt || t =3D=3D cb) {
 
                 sco =3D newsub(cm, co);
                 t =3D cm->cd[sco].block;
                 if (t =3D=3D ((void *)0)) {
                         t =3D (union tree *)Tcl_Alloc(sizeof(struct
 colors));
                         if (t =3D=3D ((void *)0)) {
                                 ((cm->v)->nexttype =3D 'e', =
 ((cm->v)->err)
 ? (cm->v)->err : ((cm->v)->err =3D ((12))));
                                 return;
                         }
                         for (i =3D 0; i < (1<<8); i++)
                                 t->colors.ccolor[i] =3D sco;
                         cm->cd[sco].block =3D t;
                 }
 
                 lastt->ptrs.pptr[b] =3D t;
                 newarc(v->nfa, 'p', sco, lp, rp);
                 cm->cd[co].nchrs -=3D (1<<8);
                 cm->cd[sco].nchrs +=3D (1<<8);
                 return;
         }
 
 
         i =3D 0;
         while (i < (1<<8)) {
                 co =3D t->colors.ccolor[i];
                 sco =3D newsub(cm, co);
                 newarc(v->nfa, 'p', sco, lp, rp);
                 previ =3D i;
                 do {
                         t->colors.ccolor[i++] =3D sco;
                 } while (i < (1<<8) && t->colors.ccolor[i] =3D=3D co);
                 ndone =3D i - previ;
                 cm->cd[co].nchrs -=3D ndone;
                 cm->cd[sco].nchrs +=3D ndone;
         }
 }
 
 
 
 
 
 static void
 okcolors(nfa, cm)
 struct nfa *nfa;
 struct colormap *cm;
 {
         struct colordesc *cd;
         struct colordesc *end =3D (&(cm)->cd[(cm)->max + 1]);
         struct colordesc *scd;
         struct arc *a;
         color co;
         color sco;
 
         for (cd =3D cm->cd, co =3D 0; cd < end; cd++, co++) {
                 sco =3D cd->sub;
                 if (((cd)->flags&01) || sco =3D=3D (-1)) {
 
                 } else if (sco =3D=3D co) {
 
                 } else if (cd->nchrs =3D=3D 0) {
 
                         cd->sub =3D (-1);
                         scd =3D &cm->cd[sco];
                         ((void)0);
                         ((void)0);
                         scd->sub =3D (-1);
                         while ((a =3D cd->arcs) !=3D ((void *)0)) {
                                 ((void)0);
 
                                 cd->arcs =3D a->colorchain;
                                 a->co =3D sco;
 
                                 a->colorchain =3D scd->arcs;
                                 scd->arcs =3D a;
                         }
                         freecolor(cm, co);
                 } else {
 
                         cd->sub =3D (-1);
                         scd =3D &cm->cd[sco];
                         ((void)0);
                         ((void)0);
                         scd->sub =3D (-1);
                         for (a =3D cd->arcs; a !=3D ((void *)0); a =3D
 a->colorchain) {
                                 ((void)0);
                                 newarc(nfa, a->type, sco, a->from,
 a->to);
                         }
                 }
         }
 }
 
 
 
 
 
 static void
 colorchain(cm, a)
 struct colormap *cm;
 struct arc *a;
 {
         struct colordesc *cd =3D &cm->cd[a->co];
 
         a->colorchain =3D cd->arcs;
         cd->arcs =3D a;
 }
 
 
 
 
 
 static void
 uncolorchain(cm, a)
 struct colormap *cm;
 struct arc *a;
 {
         struct colordesc *cd =3D &cm->cd[a->co];
         struct arc *aa;
 
         aa =3D cd->arcs;
         if (aa =3D=3D a)
                 cd->arcs =3D a->colorchain;
         else {
                 for (; aa !=3D ((void *)0) && aa->colorchain !=3D a; aa =
 =3D
 aa->colorchain)
                         continue;
                 ((void)0);
                 aa->colorchain =3D a->colorchain;
         }
         a->colorchain =3D ((void *)0);
 }
 
 
 
 
 
 static int
 singleton(cm, c)
 struct colormap *cm;
 pchr c;
 {
         color co;
 
         co =3D ((cm)->tree->ptrs.pptr[(((c)>>8) &
 ((1<<8)-1))]->colors.ccolor[((c) & ((1<<8)-1))]);
         if (cm->cd[co].nchrs =3D=3D 1 && cm->cd[co].sub =3D=3D (-1))
                 return 1;
         return 0;
 }
 
 
 
 
 
 
 static void
 rainbow(nfa, cm, type, but, from, to)
 struct nfa *nfa;
 struct colormap *cm;
 int type;
 pcolor but;
 struct state *from;
 struct state *to;
 {
         struct colordesc *cd;
         struct colordesc *end =3D (&(cm)->cd[(cm)->max + 1]);
         color co;
 
         for (cd =3D cm->cd, co =3D 0; cd < end && !((cm->v)->err !=3D =
 0);
 cd++, co++)
                 if (!((cd)->flags&01) && cd->sub !=3D co && co !=3D but =
 &&
                                                         !(cd->flags&02))
                         newarc(nfa, type, co, from, to);
 }
 
 
 
 
 
 
 
 static void
 colorcomplement(nfa, cm, type, of, from, to)
 struct nfa *nfa;
 struct colormap *cm;
 int type;
 struct state *of;
 struct state *from;
 struct state *to;
 {
         struct colordesc *cd;
         struct colordesc *end =3D (&(cm)->cd[(cm)->max + 1]);
         color co;
 
         ((void)0);
         for (cd =3D cm->cd, co =3D 0; cd < end && !((cm->v)->err !=3D =
 0);
 cd++, co++)
                 if (!((cd)->flags&01) && !(cd->flags&02))
                         if (findarc(of, 'p', co) =3D=3D ((void *)0))
                                 newarc(nfa, type, co, from, to); } #
 2173
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
 2 # 1
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c
 " 1 # 46
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c
 "
 static struct nfa *
 newnfa(v, cm, parent)
 struct vars *v;
 struct colormap *cm;
 struct nfa *parent;
 {
         struct nfa *nfa;
 
         nfa =3D (struct nfa *)Tcl_Alloc(sizeof(struct nfa));
         if (nfa =3D=3D ((void *)0))
                 return ((void *)0);
 
         nfa->states =3D ((void *)0);
         nfa->slast =3D ((void *)0);
         nfa->free =3D ((void *)0);
         nfa->nstates =3D 0;
         nfa->cm =3D cm;
         nfa->v =3D v;
         nfa->bos[0] =3D nfa->bos[1] =3D (-1);
         nfa->eos[0] =3D nfa->eos[1] =3D (-1);
         nfa->post =3D newfstate(nfa, '@');
         nfa->pre =3D newfstate(nfa, '>');
         nfa->parent =3D parent;
 
         nfa->init =3D newstate(nfa);
         nfa->final =3D newstate(nfa);
         if (((v)->err !=3D 0)) {
                 freenfa(nfa);
                 return ((void *)0);
         }
         rainbow(nfa, nfa->cm, 'p', (-1), nfa->pre, nfa->init);
         newarc(nfa, '^', 1, nfa->pre, nfa->init);
         newarc(nfa, '^', 0, nfa->pre, nfa->init);
         rainbow(nfa, nfa->cm, 'p', (-1), nfa->final, nfa->post);
         newarc(nfa, '$', 1, nfa->final, nfa->post);
         newarc(nfa, '$', 0, nfa->final, nfa->post);
 
         if (((v)->err !=3D 0)) {
                 freenfa(nfa);
                 return ((void *)0);
         }
         return nfa;
 }
 
 
 
 
 
 static void
 freenfa(nfa)
 struct nfa *nfa;
 {
         struct state *s;
 
         while ((s =3D nfa->states) !=3D ((void *)0)) {
                 s->nins =3D s->nouts =3D 0;
                 freestate(nfa, s);
         }
         while ((s =3D nfa->free) !=3D ((void *)0)) {
                 nfa->free =3D s->next;
                 destroystate(nfa, s);
         }
 
         nfa->slast =3D ((void *)0);
         nfa->nstates =3D -1;
         nfa->pre =3D ((void *)0);
         nfa->post =3D ((void *)0);
         Tcl_Free(((void *)(nfa)));
 }
 
 
 
 
 
 static struct state *
 newstate(nfa)
 struct nfa *nfa;
 {
         struct state *s;
 
         if (nfa->free !=3D ((void *)0)) {
                 s =3D nfa->free;
                 nfa->free =3D s->next;
         } else {
                 s =3D (struct state *)Tcl_Alloc(sizeof(struct state));
                 if (s =3D=3D ((void *)0)) {
                         ((nfa->v)->nexttype =3D 'e', ((nfa->v)->err) ?
 (nfa->v)->err : ((nfa->v)->err =3D ((12))));
                         return ((void *)0);
                 }
                 s->oas.next =3D ((void *)0);
                 s->free =3D ((void *)0);
                 s->noas =3D 0;
         }
 
         ((void)0);
         s->no =3D nfa->nstates++;
         s->flag =3D 0;
         if (nfa->states =3D=3D ((void *)0))
                 nfa->states =3D s;
         s->nins =3D 0;
         s->ins =3D ((void *)0);
         s->nouts =3D 0;
         s->outs =3D ((void *)0);
         s->tmp =3D ((void *)0);
         s->next =3D ((void *)0);
         if (nfa->slast !=3D ((void *)0)) {
                 ((void)0);
                 nfa->slast->next =3D s;
         }
         s->prev =3D nfa->slast;
         nfa->slast =3D s;
         return s;
 }
 
 
 
 
 
 static struct state *
 newfstate(nfa, flag)
 struct nfa *nfa;
 int flag;
 {
         struct state *s;
 
         s =3D newstate(nfa);
         if (s !=3D ((void *)0))
                 s->flag =3D (char)flag;
         return s;
 }
 
 
 
 
 
 static void
 dropstate(nfa, s)
 struct nfa *nfa;
 struct state *s;
 {
         struct arc *a;
 
         while ((a =3D s->ins) !=3D ((void *)0))
                 freearc(nfa, a);
         while ((a =3D s->outs) !=3D ((void *)0))
                 freearc(nfa, a);
         freestate(nfa, s);
 }
 
 
 
 
 
 static void
 freestate(nfa, s)
 struct nfa *nfa;
 struct state *s;
 {
         ((void)0);
         ((void)0);
 
         s->no =3D (-1);
         s->flag =3D 0;
         if (s->next !=3D ((void *)0))
                 s->next->prev =3D s->prev;
         else {
                 ((void)0);
                 nfa->slast =3D s->prev;
         }
         if (s->prev !=3D ((void *)0))
                 s->prev->next =3D s->next;
         else {
                 ((void)0);
                 nfa->states =3D s->next;
         }
         s->prev =3D ((void *)0);
         s->next =3D nfa->free;
         nfa->free =3D s;
 }
 
 
 
 
 
 static void
 destroystate(nfa, s)
 struct nfa *nfa;
 struct state *s;
 {
         struct arcbatch *ab;
         struct arcbatch *abnext;
 
         ((void)0);
         for (ab =3D s->oas.next; ab !=3D ((void *)0); ab =3D abnext) {
                 abnext =3D ab->next;
                 Tcl_Free(((void *)(ab)));
         }
         s->ins =3D ((void *)0);
         s->outs =3D ((void *)0);
         s->next =3D ((void *)0);
         Tcl_Free(((void *)(s)));
 }
 
 
 
 
 
 
 static void
 newarc(nfa, t, co, from, to)
 struct nfa *nfa;
 int t;
 pcolor co;
 struct state *from;
 struct state *to;
 {
         struct arc *a;
 
         ((void)0);
 
 
         for (a =3D from->outs; a !=3D ((void *)0); a =3D a->outchain)
                 if (a->to =3D=3D to && a->co =3D=3D co && a->type =3D=3D =
 t)
                         return;
 
         a =3D allocarc(nfa, from);
         if (((nfa->v)->err !=3D 0))
                 return;
         ((void)0);
 
         a->type =3D t;
         a->co =3D (color)co;
         a->to =3D to;
         a->from =3D from;
 
 
 
 
 
 
 
         a->inchain =3D to->ins;
         to->ins =3D a;
         a->outchain =3D from->outs;
         from->outs =3D a;
 
         from->nouts++;
         to->nins++;
 
         if (((a)->type =3D=3D 'p' || (a)->type =3D=3D 'a' || (a)->type =
 =3D=3D 'r')
 && nfa->parent =3D=3D ((void *)0))
                 colorchain(nfa->cm, a);
 
         return;
 }
 
 
 
 
 
 static struct arc *
 allocarc(nfa, s)
 struct nfa *nfa;
 struct state *s;
 {
         struct arc *a;
         struct arcbatch *new;
         int i;
 
 
         if (s->free =3D=3D ((void *)0) && s->noas < 10) {
                 a =3D &s->oas.a[s->noas];
                 s->noas++;
                 return a;
         }
 
 
         if (s->free =3D=3D ((void *)0)) {
                 new =3D (struct arcbatch *)Tcl_Alloc(sizeof(struct
 arcbatch));
                 if (new =3D=3D ((void *)0)) {
                         ((nfa->v)->nexttype =3D 'e', ((nfa->v)->err) ?
 (nfa->v)->err : ((nfa->v)->err =3D ((12))));
                         return ((void *)0);
                 }
                 new->next =3D s->oas.next;
                 s->oas.next =3D new;
 
                 for (i =3D 0; i < 10; i++) {
                         new->a[i].type =3D 0;
                         new->a[i].outchain =3D &new->a[i+1];
                 }
                 new->a[10 -1].outchain =3D ((void *)0);
                 s->free =3D &new->a[0];
         }
         ((void)0);
 
         a =3D s->free;
         s->free =3D a->outchain;
         return a;
 }
 
 
 
 
 
 static void
 freearc(nfa, victim)
 struct nfa *nfa;
 struct arc *victim;
 {
         struct state *from =3D victim->from;
         struct state *to =3D victim->to;
         struct arc *a;
 
         ((void)0);
 
 
         if (((victim)->type =3D=3D 'p' || (victim)->type =3D=3D 'a' ||
 (victim)->type =3D=3D 'r') && nfa->parent =3D=3D ((void *)0))
                 uncolorchain(nfa->cm, victim);
 
 
         ((void)0);
         ((void)0);
         a =3D from->outs;
         if (a =3D=3D victim)
                 from->outs =3D victim->outchain;
         else {
                 for (; a !=3D ((void *)0) && a->outchain !=3D victim; a =
 =3D
 a->outchain)
                         continue;
                 ((void)0);
                 a->outchain =3D victim->outchain;
         }
         from->nouts--;
 
 
         ((void)0);
         ((void)0);
         a =3D to->ins;
         if (a =3D=3D victim)
                 to->ins =3D victim->inchain;
         else {
                 for (; a !=3D ((void *)0) && a->inchain !=3D victim; a =
 =3D
 a->inchain)
                         continue;
                 ((void)0);
                 a->inchain =3D victim->inchain;
         }
         to->nins--;
 
 
         victim->type =3D 0;
         victim->from =3D ((void *)0);
         victim->to =3D ((void *)0);
         victim->inchain =3D ((void *)0);
         victim->outchain =3D ((void *)0);
         victim->outchain =3D from->free;
         from->free =3D victim;
 }
 
 
 
 
 
 
 static struct arc *
 findarc(s, type, co)
 struct state *s;
 int type;
 pcolor co;
 {
         struct arc *a;
 
         for (a =3D s->outs; a !=3D ((void *)0); a =3D a->outchain)
                 if (a->type =3D=3D type && a->co =3D=3D co)
                         return a;
         return ((void *)0);
 }
 
 
 
 
 
 
 static void
 cparc(nfa, oa, from, to)
 struct nfa *nfa;
 struct arc *oa;
 struct state *from;
 struct state *to;
 {
         newarc(nfa, oa->type, oa->co, from, to);
 }
 # 444
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c
 "
 static void
 moveins(nfa, old, new)
 struct nfa *nfa;
 struct state *old;
 struct state *new;
 {
         struct arc *a;
 
         ((void)0);
 
         while ((a =3D old->ins) !=3D ((void *)0)) {
                 cparc(nfa, a, a->from, new);
                 freearc(nfa, a);
         }
         ((void)0);
         ((void)0);
 }
 
 
 
 
 
 static void
 copyins(nfa, old, new)
 struct nfa *nfa;
 struct state *old;
 struct state *new;
 {
         struct arc *a;
 
         ((void)0);
 
         for (a =3D old->ins; a !=3D ((void *)0); a =3D a->inchain)
                 cparc(nfa, a, a->from, new);
 }
 
 
 
 
 
 static void
 moveouts(nfa, old, new)
 struct nfa *nfa;
 struct state *old;
 struct state *new;
 {
         struct arc *a;
 
         ((void)0);
 
         while ((a =3D old->outs) !=3D ((void *)0)) {
                 cparc(nfa, a, new, a->to);
                 freearc(nfa, a);
         }
 }
 
 
 
 
 
 static void
 copyouts(nfa, old, new)
 struct nfa *nfa;
 struct state *old;
 struct state *new;
 {
         struct arc *a;
 
         ((void)0);
 
         for (a =3D old->outs; a !=3D ((void *)0); a =3D a->outchain)
                 cparc(nfa, a, new, a->to);
 }
 
 
 
 
 
 
 static void
 cloneouts(nfa, old, from, to, type)
 struct nfa *nfa;
 struct state *old;
 struct state *from;
 struct state *to;
 int type;
 {
         struct arc *a;
 
         ((void)0);
 
         for (a =3D old->outs; a !=3D ((void *)0); a =3D a->outchain)
                 newarc(nfa, type, a->co, from, to);
 }
 
 
 
 
 
 
 
 static void
 delsub(nfa, lp, rp)
 struct nfa *nfa;
 struct state *lp;
 struct state *rp;
 {
         ((void)0);
 
         rp->tmp =3D rp;
 
         deltraverse(nfa, lp, lp);
         ((void)0);
         ((void)0);
 
         rp->tmp =3D ((void *)0);
         lp->tmp =3D ((void *)0);
 }
 
 
 
 
 
 
 static void
 deltraverse(nfa, leftend, s)
 struct nfa *nfa;
 struct state *leftend;
 struct state *s;
 {
         struct arc *a;
         struct state *to;
 
         if (s->nouts =3D=3D 0)
                 return;
         if (s->tmp !=3D ((void *)0))
                 return;
 
         s->tmp =3D s;
 
         while ((a =3D s->outs) !=3D ((void *)0)) {
                 to =3D a->to;
                 deltraverse(nfa, leftend, to);
                 ((void)0);
                 freearc(nfa, a);
                 if (to->nins =3D=3D 0 && to->tmp =3D=3D ((void *)0)) {
                         ((void)0);
                         freestate(nfa, to);
                 }
         }
 
         ((void)0);
         ((void)0);
         ((void)0);
 
         s->tmp =3D ((void *)0);
 }
 # 610
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c
 "
 static void
 dupnfa(nfa, start, stop, from, to)
 struct nfa *nfa;
 struct state *start;
 struct state *stop;
 struct state *from;
 struct state *to;
 {
         if (start =3D=3D stop) {
                 newarc(nfa, 'n', 0, from, to);
                 return;
         }
 
         stop->tmp =3D to;
         duptraverse(nfa, start, from);
 
 
         stop->tmp =3D ((void *)0);
         cleartraverse(nfa, start);
 }
 
 
 
 
 
 static void
 duptraverse(nfa, s, stmp)
 struct nfa *nfa;
 struct state *s;
 struct state *stmp;
 {
         struct arc *a;
 
         if (s->tmp !=3D ((void *)0))
                 return;
 
         s->tmp =3D (stmp =3D=3D ((void *)0)) ? newstate(nfa) : stmp;
         if (s->tmp =3D=3D ((void *)0)) {
                 ((void)0);
                 return;
         }
 
         for (a =3D s->outs; a !=3D ((void *)0) && !((nfa->v)->err !=3D =
 0); a =3D
 a->outchain) {
                 duptraverse(nfa, a->to, (struct state *)((void *)0));
                 ((void)0);
                 cparc(nfa, a, s->tmp, a->to->tmp);
         }
 }
 
 
 
 
 
 static void
 cleartraverse(nfa, s)
 struct nfa *nfa;
 struct state *s;
 {
         struct arc *a;
 
         if (s->tmp =3D=3D ((void *)0))
                 return;
         s->tmp =3D ((void *)0);
 
         for (a =3D s->outs; a !=3D ((void *)0); a =3D a->outchain)
                 cleartraverse(nfa, a->to);
 }
 
 
 
 
 
 static void
 specialcolors(nfa)
 struct nfa *nfa;
 {
 
         if (nfa->parent =3D=3D ((void *)0)) {
                 nfa->bos[0] =3D pseudocolor(nfa->cm);
                 nfa->bos[1] =3D pseudocolor(nfa->cm);
                 nfa->eos[0] =3D pseudocolor(nfa->cm);
                 nfa->eos[1] =3D pseudocolor(nfa->cm);
         } else {
                 ((void)0);
                 nfa->bos[0] =3D nfa->parent->bos[0];
                 ((void)0);
                 nfa->bos[1] =3D nfa->parent->bos[1];
                 ((void)0);
                 nfa->eos[0] =3D nfa->parent->eos[0];
                 ((void)0);
                 nfa->eos[1] =3D nfa->parent->eos[1];
         }
 }
 
 
 
 
 
 static long
 optimize(nfa, f)
 struct nfa *nfa;
 FILE *f;
 {
         int verbose =3D (f !=3D ((void *)0)) ? 1 : 0;
 
         if (verbose)
                 fprintf(f, "\ninitial cleanup:\n");
         cleanup(nfa);
         if (verbose)
                 dumpnfa(nfa, f);
         if (verbose)
                 fprintf(f, "\nempties:\n");
         fixempties(nfa, f);
         if (verbose)
                 fprintf(f, "\nconstraints:\n");
         pullback(nfa, f);
         pushfwd(nfa, f);
         if (verbose)
                 fprintf(f, "\nfinal cleanup:\n");
         cleanup(nfa);
         return analyze(nfa);
 }
 
 
 
 
 
 static void
 pullback(nfa, f)
 struct nfa *nfa;
 FILE *f;
 {
         struct state *s;
         struct state *nexts;
         struct arc *a;
         struct arc *nexta;
         int progress;
 
 
         do {
                 progress =3D 0;
                 for (s =3D nfa->states; s !=3D ((void *)0) &&
 !((nfa->v)->err !=3D 0); s =3D nexts) {
                         nexts =3D s->next;
                         for (a =3D s->outs; a !=3D ((void *)0) &&
 !((nfa->v)->err !=3D 0); a =3D nexta) {
                                 nexta =3D a->outchain;
                                 if (a->type =3D=3D '^' || a->type =3D=3D =
 'r')
                                         if (pull(nfa, a))
                                                 progress =3D 1;
                                 ((void)0);
                         }
                 }
                 if (progress && f !=3D ((void *)0))
                         dumpnfa(nfa, f);
         } while (progress && !((nfa->v)->err !=3D 0));
         if (((nfa->v)->err !=3D 0))
                 return;
 
         for (a =3D nfa->pre->outs; a !=3D ((void *)0); a =3D nexta) {
                 nexta =3D a->outchain;
                 if (a->type =3D=3D '^') {
                         ((void)0);
                         newarc(nfa, 'p', nfa->bos[a->co], a->from,
 a->to);
                         freearc(nfa, a);
                 }
         }
 }
 # 784
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c
 "
 static int
 pull(nfa, con)
 struct nfa *nfa;
 struct arc *con;
 {
         struct state *from =3D con->from;
         struct state *to =3D con->to;
         struct arc *a;
         struct arc *nexta;
         struct state *s;
 
         if (from =3D=3D to) {
                 freearc(nfa, con);
                 return 1;
         }
         if (from->flag)
                 return 0;
         if (from->nins =3D=3D 0) {
                 freearc(nfa, con);
                 return 1;
         }
 
 
         if (from->nouts > 1) {
                 s =3D newstate(nfa);
                 if (((nfa->v)->err !=3D 0))
                         return 0;
                 ((void)0);
                 copyins(nfa, from, s);
                 cparc(nfa, con, s, to);
                 freearc(nfa, con);
                 from =3D s;
                 con =3D from->outs;
         }
         ((void)0);
 
 
         for (a =3D from->ins; a !=3D ((void *)0); a =3D nexta) {
                 nexta =3D a->inchain;
                 switch (combine(con, a)) {
                 case 1:
                         freearc(nfa, a);
                         break;
                 case 2:
                         break;
                 case 3:
                         s =3D newstate(nfa);
                         if (((nfa->v)->err !=3D 0))
                                 return 0;
                         cparc(nfa, a, s, to);
                         cparc(nfa, con, a->from, s);
                         if (((nfa->v)->err !=3D 0))
                                 return 0;
                         freearc(nfa, a);
                         break;
                 default:
                         ((void)0);
                         break;
                 }
         }
 
 
         moveins(nfa, from, to);
         dropstate(nfa, from);
         return 1;
 }
 
 
 
 
 
 static void
 pushfwd(nfa, f)
 struct nfa *nfa;
 FILE *f;
 {
         struct state *s;
         struct state *nexts;
         struct arc *a;
         struct arc *nexta;
         int progress;
 
 
         do {
                 progress =3D 0;
                 for (s =3D nfa->states; s !=3D ((void *)0) &&
 !((nfa->v)->err !=3D 0); s =3D nexts) {
                         nexts =3D s->next;
                         for (a =3D s->ins; a !=3D ((void *)0) &&
 !((nfa->v)->err !=3D 0); a =3D nexta) {
                                 nexta =3D a->inchain;
                                 if (a->type =3D=3D '$' || a->type =3D=3D =
 'a')
                                         if (push(nfa, a))
                                                 progress =3D 1;
                                 ((void)0);
                         }
                 }
                 if (progress && f !=3D ((void *)0))
                         dumpnfa(nfa, f);
         } while (progress && !((nfa->v)->err !=3D 0));
         if (((nfa->v)->err !=3D 0))
                 return;
 
         for (a =3D nfa->post->ins; a !=3D ((void *)0); a =3D nexta) {
                 nexta =3D a->inchain;
                 if (a->type =3D=3D '$') {
                         ((void)0);
                         newarc(nfa, 'p', nfa->eos[a->co], a->from,
 a->to);
                         freearc(nfa, a);
                 }
         }
 }
 # 902
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c
 "
 static int
 push(nfa, con)
 struct nfa *nfa;
 struct arc *con;
 {
         struct state *from =3D con->from;
         struct state *to =3D con->to;
         struct arc *a;
         struct arc *nexta;
         struct state *s;
 
         if (to =3D=3D from) {
                 freearc(nfa, con);
                 return 1;
         }
         if (to->flag)
                 return 0;
         if (to->nouts =3D=3D 0) {
                 freearc(nfa, con);
                 return 1;
         }
 
 
         if (to->nins > 1) {
                 s =3D newstate(nfa);
                 if (((nfa->v)->err !=3D 0))
                         return 0;
                 copyouts(nfa, to, s);
                 cparc(nfa, con, from, s);
                 freearc(nfa, con);
                 to =3D s;
                 con =3D to->ins;
         }
         ((void)0);
 
 
         for (a =3D to->outs; a !=3D ((void *)0); a =3D nexta) {
                 nexta =3D a->outchain;
                 switch (combine(con, a)) {
                 case 1:
                         freearc(nfa, a);
                         break;
                 case 2:
                         break;
                 case 3:
                         s =3D newstate(nfa);
                         if (((nfa->v)->err !=3D 0))
                                 return 0;
                         cparc(nfa, con, s, a->to);
                         cparc(nfa, a, from, s);
                         if (((nfa->v)->err !=3D 0))
                                 return 0;
                         freearc(nfa, a);
                         break;
                 default:
                         ((void)0);
                         break;
                 }
         }
 
 
         moveouts(nfa, to, from);
         dropstate(nfa, to);
         return 1;
 }
 # 975
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c
 "
 static int
 combine(con, a)
 struct arc *con;
 struct arc *a;
 {
 
 
         switch ((((con->type)<<8) | (a->type))) {
         case ((('^')<<8) | ('p')):
         case ((('$')<<8) | ('p')):
                 return 1;
                 break;
         case ((('a')<<8) | ('p')):
         case ((('r')<<8) | ('p')):
                 if (con->co =3D=3D a->co)
                         return 2;
                 return 1;
                 break;
         case ((('^')<<8) | ('^')):
         case ((('$')<<8) | ('$')):
         case ((('a')<<8) | ('a')):
         case ((('r')<<8) | ('r')):
                 if (con->co =3D=3D a->co)
                         return 2;
                 return 1;
                 break;
         case ((('^')<<8) | ('r')):
         case ((('r')<<8) | ('^')):
         case ((('$')<<8) | ('a')):
         case ((('a')<<8) | ('$')):
                 return 1;
                 break;
         case ((('^')<<8) | ('$')):
         case ((('^')<<8) | ('a')):
         case ((('r')<<8) | ('$')):
         case ((('r')<<8) | ('a')):
         case ((('$')<<8) | ('^')):
         case ((('$')<<8) | ('r')):
         case ((('a')<<8) | ('^')):
         case ((('a')<<8) | ('r')):
         case ((('^')<<8) | ('L')):
         case ((('r')<<8) | ('L')):
         case ((('$')<<8) | ('L')):
         case ((('a')<<8) | ('L')):
                 return 3;
                 break;
         }
         ((void)0);
         return 1;
 }
 
 
 
 
 
 static void
 fixempties(nfa, f)
 struct nfa *nfa;
 FILE *f;
 {
         struct state *s;
         struct state *nexts;
         struct arc *a;
         struct arc *nexta;
         int progress;
 
 
         do {
                 progress =3D 0;
                 for (s =3D nfa->states; s !=3D ((void *)0) &&
 !((nfa->v)->err !=3D 0); s =3D nexts) {
                         nexts =3D s->next;
                         for (a =3D s->outs; a !=3D ((void *)0) &&
 !((nfa->v)->err !=3D 0); a =3D nexta) {
                                 nexta =3D a->outchain;
                                 if (a->type =3D=3D 'n' && unempty(nfa, =
 a))
                                         progress =3D 1;
                                 ((void)0);
                         }
                 }
                 if (progress && f !=3D ((void *)0))
                         dumpnfa(nfa, f);
         } while (progress && !((nfa->v)->err !=3D 0));
 }
 
 
 
 
 
 
 
 static int
 unempty(nfa, a)
 struct nfa *nfa;
 struct arc *a;
 {
         struct state *from =3D a->from;
         struct state *to =3D a->to;
         int usefrom;
 
         ((void)0);
         ((void)0);
 
         if (from =3D=3D to) {
                 freearc(nfa, a);
                 return 1;
         }
 
 
         usefrom =3D 1;
         if (from->nouts > to->nins)
                 usefrom =3D 0;
         else if (from->nouts =3D=3D to->nins) {
 
                 if (from->nins > to->nouts)
                         usefrom =3D 0;
         }
 
         freearc(nfa, a);
         if (usefrom) {
                 if (from->nouts =3D=3D 0) {
 
                         moveins(nfa, from, to);
                         freestate(nfa, from);
                 } else
                         copyins(nfa, from, to);
         } else {
                 if (to->nins =3D=3D 0) {
 
                         moveouts(nfa, to, from);
                         freestate(nfa, to);
                 } else
                         copyouts(nfa, to, from);
         }
 
         return 1;
 }
 
 
 
 
 
 static void
 cleanup(nfa)
 struct nfa *nfa;
 {
         struct state *s;
         struct state *nexts;
         int n;
 
 
 
         markreachable(nfa, nfa->pre, (struct state *)((void *)0),
 nfa->pre);
         markcanreach(nfa, nfa->post, nfa->pre, nfa->post);
         for (s =3D nfa->states; s !=3D ((void *)0); s =3D nexts) {
                 nexts =3D s->next;
                 if (s->tmp !=3D nfa->post && !s->flag)
                         dropstate(nfa, s);
         }
         ((void)0);
         cleartraverse(nfa, nfa->pre);
         ((void)0);
 
 
 
         n =3D 0;
         for (s =3D nfa->states; s !=3D ((void *)0); s =3D s->next)
                 s->no =3D n++;
         nfa->nstates =3D n;
 }
 
 
 
 
 
 
 static void
 markreachable(nfa, s, okay, mark)
 struct nfa *nfa;
 struct state *s;
 struct state *okay;
 struct state *mark;
 {
         struct arc *a;
 
         if (s->tmp !=3D okay)
                 return;
         s->tmp =3D mark;
 
         for (a =3D s->outs; a !=3D ((void *)0); a =3D a->outchain)
                 markreachable(nfa, a->to, okay, mark);
 }
 
 
 
 
 
 
 static void
 markcanreach(nfa, s, okay, mark)
 struct nfa *nfa;
 struct state *s;
 struct state *okay;
 struct state *mark;
 {
         struct arc *a;
 
         if (s->tmp !=3D okay)
                 return;
         s->tmp =3D mark;
 
         for (a =3D s->ins; a !=3D ((void *)0); a =3D a->inchain)
                 markcanreach(nfa, a->from, okay, mark);
 }
 
 
 
 
 
 static long
 analyze(nfa)
 struct nfa *nfa;
 {
         struct arc *a;
         struct arc *aa;
 
         if (nfa->pre->outs =3D=3D ((void *)0))
                 return 010000;
         for (a =3D nfa->pre->outs; a !=3D ((void *)0); a =3D =
 a->outchain)
                 for (aa =3D a->to->outs; aa !=3D ((void *)0); aa =3D
 aa->outchain)
                         if (aa->to =3D=3D nfa->post)
                                 return 004000;
         return 0;
 }
 
 
 
 
 
 static void
 compact(nfa, cnfa)
 struct nfa *nfa;
 struct cnfa *cnfa;
 {
         struct state *s;
         struct arc *a;
         size_t nstates;
         size_t narcs;
         struct carc *ca;
         struct carc *first;
 
         ((void)0);
 
         nstates =3D 0;
         narcs =3D 0;
         for (s =3D nfa->states; s !=3D ((void *)0); s =3D s->next) {
                 nstates++;
                 narcs +=3D 1 + s->nouts + 1;
 
         }
 
         cnfa->states =3D (struct carc **)Tcl_Alloc(nstates * =
 sizeof(struct
 carc *));
         cnfa->arcs =3D (struct carc *)Tcl_Alloc(narcs * sizeof(struct
 carc));
         if (cnfa->states =3D=3D ((void *)0) || cnfa->arcs =3D=3D ((void =
 *)0)) {
                 if (cnfa->states !=3D ((void *)0))
                         Tcl_Free(((void *)(cnfa->states)));
                 if (cnfa->arcs !=3D ((void *)0))
                         Tcl_Free(((void *)(cnfa->arcs)));
                 ((nfa->v)->nexttype =3D 'e', ((nfa->v)->err) ?
 (nfa->v)->err : ((nfa->v)->err =3D ((12))));
                 return;
         }
         cnfa->nstates =3D nstates;
         cnfa->pre =3D nfa->pre->no;
         cnfa->post =3D nfa->post->no;
         cnfa->bos[0] =3D nfa->bos[0];
         cnfa->bos[1] =3D nfa->bos[1];
         cnfa->eos[0] =3D nfa->eos[0];
         cnfa->eos[1] =3D nfa->eos[1];
         cnfa->ncolors =3D maxcolor(nfa->cm) + 1;
         cnfa->flags =3D 0;
 
         ca =3D cnfa->arcs;
         for (s =3D nfa->states; s !=3D ((void *)0); s =3D s->next) {
                 ((void)0);
                 cnfa->states[s->no] =3D ca;
                 ca->co =3D 0;
                 ca++;
                 first =3D ca;
                 for (a =3D s->outs; a !=3D ((void *)0); a =3D =
 a->outchain)
                         switch (a->type) {
                         case 'p':
                                 ca->co =3D a->co;
                                 ca->to =3D a->to->no;
                                 ca++;
                                 break;
                         case 'L':
                                 ((void)0);
                                 ca->co =3D (color)(cnfa->ncolors + =
 a->co);
                                 ca->to =3D a->to->no;
                                 ca++;
                                 cnfa->flags |=3D 01;
                                 break;
                         default:
                                 ((void)0);
                                 break;
                         }
                 carcsort(first, ca-1);
                 ca->co =3D (-1);
                 ca->to =3D 0;
                 ca++;
         }
         ((void)0);
         ((void)0);
 
 
         for (a =3D nfa->pre->outs; a !=3D ((void *)0); a =3D =
 a->outchain)
                 cnfa->states[a->to->no]->co =3D 1;
         cnfa->states[nfa->pre->no]->co =3D 1;
 }
 
 
 
 
 
 
 
 static void
 carcsort(first, last)
 struct carc *first;
 struct carc *last;
 {
         struct carc *p;
         struct carc *q;
         struct carc tmp;
 
         if (last - first <=3D 1)
                 return;
 
         for (p =3D first; p <=3D last; p++)
                 for (q =3D p; q <=3D last; q++)
                         if (p->co > q->co ||
                                         (p->co =3D=3D q->co && p->to >
 q->to)) {
                                 ((void)0);
                                 tmp =3D *p;
                                 *p =3D *q;
                                 *q =3D tmp;
                         }
 }
 
 
 
 
 
 static void
 freecnfa(cnfa)
 struct cnfa *cnfa;
 {
         ((void)0);
         cnfa->nstates =3D 0;
         Tcl_Free(((void *)(cnfa->states)));
         Tcl_Free(((void *)(cnfa->arcs)));
 }
 
 
 
 
 
 static void
 dumpnfa(nfa, f)
 struct nfa *nfa;
 FILE *f;
 {
 # 1364
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c
 "
 }
 # 1508
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c
 "
 static void
 dumpcnfa(cnfa, f)
 struct cnfa *cnfa;
 FILE *f;
 {
 # 1532
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c
 "
 }
 # 2174
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
 2 # 1
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_cvec.
 c" 1 # 37
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_cvec.
 c"
 static struct cvec *
 newcvec(nchrs, nranges, nmcces)
 int nchrs;
 int nranges;
 int nmcces;
 {
         size_t n;
         size_t nc;
         struct cvec *cv;
 
         nc =3D (size_t)nchrs + (size_t)nmcces*(2 +1) + =
 (size_t)nranges*2;
         n =3D sizeof(struct cvec) + (size_t)(nmcces-1)*sizeof(chr *) +
 =20
 nc*sizeof(chr);
         cv =3D (struct cvec *)Tcl_Alloc(n);
         if (cv =3D=3D ((void *)0))
                 return ((void *)0);
         cv->chrspace =3D nc;
         cv->chrs =3D (chr *)&cv->mcces[nmcces];
         cv->mccespace =3D nmcces;
         cv->ranges =3D cv->chrs + nchrs + nmcces*(2 +1);
         cv->rangespace =3D nranges;
         return clearcvec(cv);
 }
 
 
 
 
 
 
 static struct cvec *
 clearcvec(cv)
 struct cvec *cv;
 {
         int i;
 
         ((void)0);
         cv->nchrs =3D 0;
         ((void)0);
         cv->nmcces =3D 0;
         cv->nmccechrs =3D 0;
         cv->nranges =3D 0;
         for (i =3D 0; i < cv->mccespace; i++)
                 cv->mcces[i] =3D ((void *)0);
 
         return cv;
 }
 
 
 
 
 
 static void
 addchr(cv, c)
 struct cvec *cv;
 pchr c;
 {
         ((void)0);
         cv->chrs[cv->nchrs++] =3D (chr)c;
 }
 
 
 
 
 
 static void
 addrange(cv, from, to)
 struct cvec *cv;
 pchr from;
 pchr to;
 {
         ((void)0);
         cv->ranges[cv->nranges*2] =3D (chr)from;
         cv->ranges[cv->nranges*2 + 1] =3D (chr)to;
         cv->nranges++;
 }
 
 
 
 
 
 static void
 addmcce(cv, startp, endp)
 struct cvec *cv;
 chr *startp;
 chr *endp;
 {
         int len;
         int i;
         chr *s;
         chr *d;
 
         if (startp =3D=3D ((void *)0) && endp =3D=3D ((void *)0))
                 return;
         len =3D endp - startp;
         ((void)0);
         ((void)0);
         ((void)0);
         d =3D &cv->chrs[cv->chrspace - cv->nmccechrs - len - 1];
         cv->mcces[cv->nmcces++] =3D d;
         for (s =3D startp, i =3D len; i > 0; s++, i--)
                 *d++ =3D *s;
         *d++ =3D 0;
         ((void)0);
         cv->nmccechrs +=3D len + 1;
 }
 
 
 
 
 
 static int
 haschr(cv, c)
 struct cvec *cv;
 pchr c;
 {
         int i;
         chr *p;
 
         for (p =3D cv->chrs, i =3D cv->nchrs; i > 0; p++, i--)
                 if (*p =3D=3D c)
                         return 1;
         for (p =3D cv->ranges, i =3D cv->nranges; i > 0; p +=3D 2, i--)
                 if (*p <=3D c && c <=3D *(p+1))
                         return 1;
         return 0;
 }
 
 
 
 
 
 static struct cvec *
 getcvec(v, nchrs, nranges, nmcces)
 struct vars *v;
 int nchrs;
 int nranges;
 int nmcces;
 {
         if (v->cv !=3D ((void *)0) && nchrs <=3D v->cv->chrspace &&
                                         nranges <=3D v->cv->rangespace =
 &&
                                         nmcces <=3D v->cv->mccespace)
                 return clearcvec(v->cv);
 
         if (v->cv !=3D ((void *)0))
                 freecvec(v->cv);
         v->cv =3D newcvec(nchrs, nranges, nmcces);
         if (v->cv =3D=3D ((void *)0))
                 ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err : =
 ((v)->err
 =3D (12)));
 
         return v->cv;
 }
 
 
 
 
 
 static void
 freecvec(cv)
 struct cvec *cv;
 {
         Tcl_Free(((void *)(cv)));
 }
 # 2175
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
 2 # 1
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_local
 e.c" 1 # 17
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_local
 e.c"
 static struct cname {
         char *name;
         char code;
 } cnames[] =3D {
         {"NUL", '\0'},
         {"SOH", '\001'},
         {"STX", '\002'},
         {"ETX", '\003'},
         {"EOT", '\004'},
         {"ENQ", '\005'},
         {"ACK", '\006'},
         {"BEL", '\007'},
         {"alert", '\007'},
         {"BS", '\010'},
         {"backspace", '\b'},
         {"HT", '\011'},
         {"tab", '\t'},
         {"LF", '\012'},
         {"newline", '\n'},
         {"VT", '\013'},
         {"vertical-tab", '\v'},
         {"FF", '\014'},
         {"form-feed", '\f'},
         {"CR", '\015'},
         {"carriage-return", '\r'},
         {"SO", '\016'},
         {"SI", '\017'},
         {"DLE", '\020'},
         {"DC1", '\021'},
         {"DC2", '\022'},
         {"DC3", '\023'},
         {"DC4", '\024'},
         {"NAK", '\025'},
         {"SYN", '\026'},
         {"ETB", '\027'},
         {"CAN", '\030'},
         {"EM", '\031'},
         {"SUB", '\032'},
         {"ESC", '\033'},
         {"IS4", '\034'},
         {"FS", '\034'},
         {"IS3", '\035'},
         {"GS", '\035'},
         {"IS2", '\036'},
         {"RS", '\036'},
         {"IS1", '\037'},
         {"US", '\037'},
         {"space", ' '},
         {"exclamation-mark", '!'},
         {"quotation-mark", '"'},
         {"number-sign", '#'},
         {"dollar-sign", '$'},
         {"percent-sign", '%'},
         {"ampersand", '&'},
         {"apostrophe", '\''},
         {"left-parenthesis", '('},
         {"right-parenthesis", ')'},
         {"asterisk", '*'},
         {"plus-sign", '+'},
         {"comma", ','},
         {"hyphen", '-'},
         {"hyphen-minus", '-'},
         {"period", '.'},
         {"full-stop", '.'},
         {"slash", '/'},
         {"solidus", '/'},
         {"zero", '0'},
         {"one", '1'},
         {"two", '2'},
         {"three", '3'},
         {"four", '4'},
         {"five", '5'},
         {"six", '6'},
         {"seven", '7'},
         {"eight", '8'},
         {"nine", '9'},
         {"colon", ':'},
         {"semicolon", ';'},
         {"less-than-sign", '<'},
         {"equals-sign", '=3D'},
         {"greater-than-sign", '>'},
         {"question-mark", '?'},
         {"commercial-at", '@'},
         {"left-square-bracket", '['},
         {"backslash", '\\'},
         {"reverse-solidus", '\\'},
         {"right-square-bracket", ']'},
         {"circumflex", '^'},
         {"circumflex-accent", '^'},
         {"underscore", '_'},
         {"low-line", '_'},
         {"grave-accent", '`'},
         {"left-brace", '{'},
         {"left-curly-bracket", '{'},
         {"vertical-line", '|'},
         {"right-brace", '}'},
         {"right-curly-bracket", '}'},
         {"tilde", '~'},
         {"DEL", '\177'},
         {((void *)0), 0}
 };
 
 
 
 typedef struct crange {
     chr start;
     chr end;
 } crange;
 
 
 
 static crange alphaRangeTable[] =3D {
     {0x0041, 0x005a}, {0x0061, 0x007a}, {0x00c0, 0x00d6}, {0x00d8,
 0x00f6},
     {0x00f8, 0x01f5}, {0x01fa, 0x0217}, {0x0250, 0x02a8}, {0x02b0,
 0x02b8},
     {0x02bb, 0x02c1}, {0x02e0, 0x02e4}, {0x0388, 0x038a}, {0x038e,
 0x03a1},
     {0x03a3, 0x03ce}, {0x03d0, 0x03d6}, {0x03e2, 0x03f3}, {0x0401,
 0x040c},
     {0x040e, 0x044f}, {0x0451, 0x045c}, {0x045e, 0x0481}, {0x0490,
 0x04c4},
     {0x04d0, 0x04eb}, {0x04ee, 0x04f5}, {0x0531, 0x0556}, {0x0561,
 0x0587},
     {0x05d0, 0x05ea}, {0x05f0, 0x05f2}, {0x0621, 0x063a}, {0x0640,
 0x064a},
     {0x0671, 0x06b7}, {0x06ba, 0x06be}, {0x06c0, 0x06ce}, {0x06d0,
 0x06d3},
     {0x0905, 0x0939}, {0x0958, 0x0961}, {0x0985, 0x098c}, {0x0993,
 0x09a8},
     {0x09aa, 0x09b0}, {0x09b6, 0x09b9}, {0x09df, 0x09e1}, {0x0a05,
 0x0a0a},
     {0x0a13, 0x0a28}, {0x0a2a, 0x0a30}, {0x0a59, 0x0a5c}, {0x0a72,
 0x0a74},
     {0x0a85, 0x0a8b}, {0x0a8f, 0x0a91}, {0x0a93, 0x0aa8}, {0x0aaa,
 0x0ab0},
     {0x0ab5, 0x0ab9}, {0x0b05, 0x0b0c}, {0x0b13, 0x0b28}, {0x0b2a,
 0x0b30},
     {0x0b36, 0x0b39}, {0x0b5f, 0x0b61}, {0x0b85, 0x0b8a}, {0x0b8e,
 0x0b90},
     {0x0b92, 0x0b95}, {0x0ba8, 0x0baa}, {0x0bae, 0x0bb5}, {0x0bb7,
 0x0bb9},
     {0x0c05, 0x0c0c}, {0x0c0e, 0x0c10}, {0x0c12, 0x0c28}, {0x0c2a,
 0x0c33},
     {0x0c35, 0x0c39}, {0x0c85, 0x0c8c}, {0x0c8e, 0x0c90}, {0x0c92,
 0x0ca8},
     {0x0caa, 0x0cb3}, {0x0cb5, 0x0cb9}, {0x0d05, 0x0d0c}, {0x0d0e,
 0x0d10},
     {0x0d12, 0x0d28}, {0x0d2a, 0x0d39}, {0x0e01, 0x0e30}, {0x0e40,
 0x0e46},
     {0x0e94, 0x0e97}, {0x0e99, 0x0e9f}, {0x0ea1, 0x0ea3}, {0x0ead,
 0x0eb0},
     {0x0ec0, 0x0ec4}, {0x0f40, 0x0f47}, {0x0f49, 0x0f69}, {0x0f88,
 0x0f8b},
     {0x10a0, 0x10c5}, {0x10d0, 0x10f6}, {0x1100, 0x1159}, {0x115f,
 0x11a2},
     {0x11a8, 0x11f9}, {0x1e00, 0x1e9b}, {0x1ea0, 0x1ef9}, {0x1f00,
 0x1f15},
     {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50,
 0x1f57},
     {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc}, {0x1fc2,
 0x1fc4},
     {0x1fc6, 0x1fcc}, {0x1fd0, 0x1fd3}, {0x1fd6, 0x1fdb}, {0x1fe0,
 0x1fec},
     {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc}, {0x210a, 0x2113}, {0x2118,
 0x211d},
     {0x212a, 0x2131}, {0x2133, 0x2138}, {0x3031, 0x3035}, {0x3041,
 0x3094},
     {0x30a1, 0x30fa}, {0x30fc, 0x30fe}, {0x3105, 0x312c}, {0x3131,
 0x318e},
     {0x4e00, 0x9fa5}, {0xac00, 0xd7a3}, {0xf900, 0xfa2d}, {0xfb00,
 0xfb06},
     {0xfb13, 0xfb17}, {0xfb1f, 0xfb28}, {0xfb2a, 0xfb36}, {0xfb38,
 0xfb3c},
     {0xfb46, 0xfbb1}, {0xfbd3, 0xfd3d}, {0xfd50, 0xfd8f}, {0xfd92,
 0xfdc7},
     {0xfdf0, 0xfdfb}, {0xfe70, 0xfe72}, {0xfe76, 0xfefc}, {0xff21,
 0xff3a},
     {0xff41, 0xff5a}, {0xff66, 0xffbe}, {0xffc2, 0xffc7}, {0xffca,
 0xffcf},
     {0xffd2, 0xffd7}, {0xffda, 0xffdc}
 };
 
 
 
 static chr alphaCharTable[] =3D {
     0x00aa, 0x00b5, 0x00ba, 0x02d0, 0x02d1, 0x037a, 0x0386, 0x038c,
 0x03da,
     0x03dc, 0x03de, 0x03e0, 0x04c7, 0x04c8, 0x04cb, 0x04cc, 0x04f8,
 0x04f9,
     0x0559, 0x06d5, 0x06e5, 0x06e6, 0x093d, 0x0950, 0x098f, 0x0990,
 0x09b2,
     0x09dc, 0x09dd, 0x09f0, 0x09f1, 0x0a0f, 0x0a10, 0x0a32, 0x0a33,
 0x0a35,
     0x0a36, 0x0a38, 0x0a39, 0x0a5e, 0x0a8d, 0x0ab2, 0x0ab3, 0x0abd,
 0x0ad0,
     0x0ae0, 0x0b0f, 0x0b10, 0x0b32, 0x0b33, 0x0b3d, 0x0b5c, 0x0b5d,
 0x0b99,
     0x0b9a, 0x0b9c, 0x0b9e, 0x0b9f, 0x0ba3, 0x0ba4, 0x0c60, 0x0c61,
 0x0cde,
     0x0ce0, 0x0ce1, 0x0d60, 0x0d61, 0x0e32, 0x0e33, 0x0e81, 0x0e82,
 0x0e84,
     0x0e87, 0x0e88, 0x0e8a, 0x0e8d, 0x0ea5, 0x0ea7, 0x0eaa, 0x0eab,
 0x0eb2,
     0x0eb3, 0x0ebd, 0x0ec6, 0x0edc, 0x0edd, 0x0f00, 0x1f59, 0x1f5b,
 0x1f5d,
     0x1fbe, 0x207f, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128,
 0x3005,
     0x3006, 0x309d, 0x309e, 0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44,
 0xfe74 };
 
 
 
 
 
 static crange digitRangeTable[] =3D {
     {0x0030, 0x0039}, {0x0660, 0x0669}, {0x06f0, 0x06f9}, {0x0966,
 0x096f},
     {0x09e6, 0x09ef}, {0x0a66, 0x0a6f}, {0x0ae6, 0x0aef}, {0x0b66,
 0x0b6f},
     {0x0be7, 0x0bef}, {0x0c66, 0x0c6f}, {0x0ce6, 0x0cef}, {0x0d66,
 0x0d6f},
     {0x0e50, 0x0e59}, {0x0ed0, 0x0ed9}, {0x0f20, 0x0f29}, {0xff10,
 0xff19} };
 
 
 
 
 
 static crange punctRangeTable[] =3D {
     {0x0021, 0x0023}, {0x0025, 0x002a}, {0x002c, 0x002f}, {0x005b,
 0x005d},
     {0x055a, 0x055f}, {0x066a, 0x066d}, {0x0f04, 0x0f12}, {0x0f3a,
 0x0f3d},
     {0x2010, 0x2027}, {0x2030, 0x2043}, {0x3001, 0x3003}, {0x3008,
 0x3011},
     {0x3014, 0x301f}, {0xfe30, 0xfe44}, {0xfe49, 0xfe52}, {0xfe54,
 0xfe61},
     {0xff01, 0xff03}, {0xff05, 0xff0a}, {0xff0c, 0xff0f}, {0xff3b,
 0xff3d},
     {0xff61, 0xff65}
 };
 
 
 
 static chr punctCharTable[] =3D {
     0x003a, 0x003b, 0x003f, 0x0040, 0x005f, 0x007b, 0x007d, 0x00a1,
 0x00ab,
     0x00ad, 0x00b7, 0x00bb, 0x00bf, 0x037e, 0x0387, 0x0589, 0x05be,
 0x05c0,
     0x05c3, 0x05f3, 0x05f4, 0x060c, 0x061b, 0x061f, 0x06d4, 0x0964,
 0x0965,
     0x0970, 0x0e5a, 0x0e5b, 0x0f85, 0x10fb, 0x2045, 0x2046, 0x207d,
 0x207e,
     0x208d, 0x208e, 0x2329, 0x232a, 0x3030, 0x30fb, 0xfd3e, 0xfd3f,
 0xfe63,
     0xfe68, 0xfe6a, 0xfe6b, 0xff1a, 0xff1b, 0xff1f, 0xff20, 0xff3f,
 0xff5b,
     0xff5d
 };
 
 
 
 
 
 static crange spaceRangeTable[] =3D {
     {0x0009, 0x000d}, {0x2000, 0x200b},
 };
 
 
 
 static chr spaceCharTable[] =3D {
     0x0020, 0x00a0, 0x2028, 0x2029, 0x3000
 };
 
 
 
 
 
 static crange lowerRangeTable[] =3D {
     {0x0061, 0x007a}, {0x00df, 0x00f6}, {0x00f8, 0x00ff}, {0x017e,
 0x0180},
     {0x0199, 0x019b}, {0x0250, 0x02a8}, {0x03ac, 0x03ce}, {0x03ef,
 0x03f2},
     {0x0430, 0x044f}, {0x0451, 0x045c}, {0x0561, 0x0587}, {0x10d0,
 0x10f6},
     {0x1e95, 0x1e9b}, {0x1f00, 0x1f07}, {0x1f10, 0x1f15}, {0x1f20,
 0x1f27},
     {0x1f30, 0x1f37}, {0x1f40, 0x1f45}, {0x1f50, 0x1f57}, {0x1f60,
 0x1f67},
     {0x1f70, 0x1f7d}, {0x1f80, 0x1f87}, {0x1f90, 0x1f97}, {0x1fa0,
 0x1fa7},
     {0x1fb0, 0x1fb4}, {0x1fc2, 0x1fc4}, {0x1fd0, 0x1fd3}, {0x1fe0,
 0x1fe7},
     {0x1ff2, 0x1ff4}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, {0xff41,
 0xff5a} };
 
 
 
 static chr lowerCharTable[] =3D {
     0x00aa, 0x00b5, 0x00ba, 0x0101, 0x0103, 0x0105, 0x0107, 0x0109,
 0x010b,
     0x010d, 0x010f, 0x0111, 0x0113, 0x0115, 0x0117, 0x0119, 0x011b,
 0x011d,
     0x011f, 0x0121, 0x0123, 0x0125, 0x0127, 0x0129, 0x012b, 0x012d,
 0x012f,
     0x0131, 0x0133, 0x0135, 0x0137, 0x0138, 0x013a, 0x013c, 0x013e,
 0x0140,
     0x0142, 0x0144, 0x0146, 0x0148, 0x0149, 0x014b, 0x014d, 0x014f,
 0x0151,
     0x0153, 0x0155, 0x0157, 0x0159, 0x015b, 0x015d, 0x015f, 0x0161,
 0x0163,
     0x0165, 0x0167, 0x0169, 0x016b, 0x016d, 0x016f, 0x0171, 0x0173,
 0x0175,
     0x0177, 0x017a, 0x017c, 0x0183, 0x0185, 0x0188, 0x018c, 0x018d,
 0x0192,
     0x0195, 0x019e, 0x01a1, 0x01a3, 0x01a5, 0x01a8, 0x01ab, 0x01ad,
 0x01b0,
     0x01b4, 0x01b6, 0x01b9, 0x01ba, 0x01bd, 0x01c6, 0x01c9, 0x01cc,
 0x01ce,
     0x01d0, 0x01d2, 0x01d4, 0x01d6, 0x01d8, 0x01da, 0x01dc, 0x01dd,
 0x01df,
     0x01e1, 0x01e3, 0x01e5, 0x01e7, 0x01e9, 0x01eb, 0x01ed, 0x01ef,
 0x01f0,
     0x01f3, 0x01f5, 0x01fb, 0x01fd, 0x01ff, 0x0201, 0x0203, 0x0205,
 0x0207,
     0x0209, 0x020b, 0x020d, 0x020f, 0x0211, 0x0213, 0x0215, 0x0217,
 0x0390,
     0x03d0, 0x03d1, 0x03d5, 0x03d6, 0x03e3, 0x03e5, 0x03e7, 0x03e9,
 0x03eb,
     0x03ed, 0x045e, 0x045f, 0x0461, 0x0463, 0x0465, 0x0467, 0x0469,
 0x046b,
     0x046d, 0x046f, 0x0471, 0x0473, 0x0475, 0x0477, 0x0479, 0x047b,
 0x047d,
     0x047f, 0x0481, 0x0491, 0x0493, 0x0495, 0x0497, 0x0499, 0x049b,
 0x049d,
     0x049f, 0x04a1, 0x04a3, 0x04a5, 0x04a7, 0x04a9, 0x04ab, 0x04ad,
 0x04af,
     0x04b1, 0x04b3, 0x04b5, 0x04b7, 0x04b9, 0x04bb, 0x04bd, 0x04bf,
 0x04c2,
     0x04c4, 0x04c8, 0x04cc, 0x04d1, 0x04d3, 0x04d5, 0x04d7, 0x04d9,
 0x04db,
     0x04dd, 0x04df, 0x04e1, 0x04e3, 0x04e5, 0x04e7, 0x04e9, 0x04eb,
 0x04ef,
     0x04f1, 0x04f3, 0x04f5, 0x04f9, 0x1e01, 0x1e03, 0x1e05, 0x1e07,
 0x1e09,
     0x1e0b, 0x1e0d, 0x1e0f, 0x1e11, 0x1e13, 0x1e15, 0x1e17, 0x1e19,
 0x1e1b,
     0x1e1d, 0x1e1f, 0x1e21, 0x1e23, 0x1e25, 0x1e27, 0x1e29, 0x1e2b,
 0x1e2d,
     0x1e2f, 0x1e31, 0x1e33, 0x1e35, 0x1e37, 0x1e39, 0x1e3b, 0x1e3d,
 0x1e3f,
     0x1e41, 0x1e43, 0x1e45, 0x1e47, 0x1e49, 0x1e4b, 0x1e4d, 0x1e4f,
 0x1e51,
     0x1e53, 0x1e55, 0x1e57, 0x1e59, 0x1e5b, 0x1e5d, 0x1e5f, 0x1e61,
 0x1e63,
     0x1e65, 0x1e67, 0x1e69, 0x1e6b, 0x1e6d, 0x1e6f, 0x1e71, 0x1e73,
 0x1e75,
     0x1e77, 0x1e79, 0x1e7b, 0x1e7d, 0x1e7f, 0x1e81, 0x1e83, 0x1e85,
 0x1e87,
     0x1e89, 0x1e8b, 0x1e8d, 0x1e8f, 0x1e91, 0x1e93, 0x1ea1, 0x1ea3,
 0x1ea5,
     0x1ea7, 0x1ea9, 0x1eab, 0x1ead, 0x1eaf, 0x1eb1, 0x1eb3, 0x1eb5,
 0x1eb7,
     0x1eb9, 0x1ebb, 0x1ebd, 0x1ebf, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ec7,
 0x1ec9,
     0x1ecb, 0x1ecd, 0x1ecf, 0x1ed1, 0x1ed3, 0x1ed5, 0x1ed7, 0x1ed9,
 0x1edb,
     0x1edd, 0x1edf, 0x1ee1, 0x1ee3, 0x1ee5, 0x1ee7, 0x1ee9, 0x1eeb,
 0x1eed,
     0x1eef, 0x1ef1, 0x1ef3, 0x1ef5, 0x1ef7, 0x1ef9, 0x1fb6, 0x1fb7,
 0x1fbe,
     0x1fc6, 0x1fc7, 0x1fd6, 0x1fd7, 0x1ff6, 0x1ff7, 0x207f, 0x210a,
 0x210e,
     0x210f, 0x2113, 0x2118, 0x212e, 0x212f, 0x2134
 };
 
 
 
 
 
 static crange upperRangeTable[] =3D {
     {0x0041, 0x005a}, {0x00c0, 0x00d6}, {0x00d8, 0x00de}, {0x0189,
 0x018b},
     {0x018e, 0x0191}, {0x0196, 0x0198}, {0x01b1, 0x01b3}, {0x0388,
 0x038a},
     {0x0391, 0x03a1}, {0x03a3, 0x03ab}, {0x03d2, 0x03d4}, {0x0401,
 0x040c},
     {0x040e, 0x042f}, {0x0531, 0x0556}, {0x10a0, 0x10c5}, {0x1f08,
 0x1f0f},
     {0x1f18, 0x1f1d}, {0x1f28, 0x1f2f}, {0x1f38, 0x1f3f}, {0x1f48,
 0x1f4d},
     {0x1f68, 0x1f6f}, {0x1f88, 0x1f8f}, {0x1f98, 0x1f9f}, {0x1fa8,
 0x1faf},
     {0x1fb8, 0x1fbc}, {0x1fc8, 0x1fcc}, {0x1fd8, 0x1fdb}, {0x1fe8,
 0x1fec},
     {0x1ff8, 0x1ffc}, {0x210b, 0x210d}, {0x2110, 0x2112}, {0x2119,
 0x211d},
     {0x212a, 0x212d}, {0xff21, 0xff3a}
 };
 
 
 
 static chr upperCharTable[] =3D {
     0x0100, 0x0102, 0x0104, 0x0106, 0x0108, 0x010a, 0x010c, 0x010e,
 0x0110,
     0x0112, 0x0114, 0x0116, 0x0118, 0x011a, 0x011c, 0x011e, 0x0120,
 0x0122,
     0x0124, 0x0126, 0x0128, 0x012a, 0x012c, 0x012e, 0x0130, 0x0132,
 0x0134,
     0x0136, 0x0139, 0x013b, 0x013d, 0x013f, 0x0141, 0x0143, 0x0145,
 0x0147,
     0x014a, 0x014c, 0x014e, 0x0150, 0x0152, 0x0154, 0x0156, 0x0158,
 0x015a,
     0x015c, 0x015e, 0x0160, 0x0162, 0x0164, 0x0166, 0x0168, 0x016a,
 0x016c,
     0x016e, 0x0170, 0x0172, 0x0174, 0x0176, 0x0178, 0x0179, 0x017b,
 0x017d,
     0x0181, 0x0182, 0x0184, 0x0186, 0x0187, 0x0193, 0x0194, 0x019c,
 0x019d,
     0x019f, 0x01a0, 0x01a2, 0x01a4, 0x01a6, 0x01a7, 0x01a9, 0x01ac,
 0x01ae,
     0x01af, 0x01b5, 0x01b7, 0x01b8, 0x01bc, 0x01c4, 0x01c7, 0x01ca,
 0x01cd,
     0x01cf, 0x01d1, 0x01d3, 0x01d5, 0x01d7, 0x01d9, 0x01db, 0x01de,
 0x01e0,
     0x01e2, 0x01e4, 0x01e6, 0x01e8, 0x01ea, 0x01ec, 0x01ee, 0x01f1,
 0x01f4,
     0x01fa, 0x01fc, 0x01fe, 0x0200, 0x0202, 0x0204, 0x0206, 0x0208,
 0x020a,
     0x020c, 0x020e, 0x0210, 0x0212, 0x0214, 0x0216, 0x0386, 0x038c,
 0x038e,
     0x038f, 0x03da, 0x03dc, 0x03de, 0x03e0, 0x03e2, 0x03e4, 0x03e6,
 0x03e8,
     0x03ea, 0x03ec, 0x03ee, 0x0460, 0x0462, 0x0464, 0x0466, 0x0468,
 0x046a,
     0x046c, 0x046e, 0x0470, 0x0472, 0x0474, 0x0476, 0x0478, 0x047a,
 0x047c,
     0x047e, 0x0480, 0x0490, 0x0492, 0x0494, 0x0496, 0x0498, 0x049a,
 0x049c,
     0x049e, 0x04a0, 0x04a2, 0x04a4, 0x04a6, 0x04a8, 0x04aa, 0x04ac,
 0x04ae,
     0x04b0, 0x04b2, 0x04b4, 0x04b6, 0x04b8, 0x04ba, 0x04bc, 0x04be,
 0x04c1,
     0x04c3, 0x04c7, 0x04cb, 0x04d0, 0x04d2, 0x04d4, 0x04d6, 0x04d8,
 0x04da,
     0x04dc, 0x04de, 0x04e0, 0x04e2, 0x04e4, 0x04e6, 0x04e8, 0x04ea,
 0x04ee,
     0x04f0, 0x04f2, 0x04f4, 0x04f8, 0x1e00, 0x1e02, 0x1e04, 0x1e06,
 0x1e08,
     0x1e0a, 0x1e0c, 0x1e0e, 0x1e10, 0x1e12, 0x1e14, 0x1e16, 0x1e18,
 0x1e1a,
     0x1e1c, 0x1e1e, 0x1e20, 0x1e22, 0x1e24, 0x1e26, 0x1e28, 0x1e2a,
 0x1e2c,
     0x1e2e, 0x1e30, 0x1e32, 0x1e34, 0x1e36, 0x1e38, 0x1e3a, 0x1e3c,
 0x1e3e,
     0x1e40, 0x1e42, 0x1e44, 0x1e46, 0x1e48, 0x1e4a, 0x1e4c, 0x1e4e,
 0x1e50,
     0x1e52, 0x1e54, 0x1e56, 0x1e58, 0x1e5a, 0x1e5c, 0x1e5e, 0x1e60,
 0x1e62,
     0x1e64, 0x1e66, 0x1e68, 0x1e6a, 0x1e6c, 0x1e6e, 0x1e70, 0x1e72,
 0x1e74,
     0x1e76, 0x1e78, 0x1e7a, 0x1e7c, 0x1e7e, 0x1e80, 0x1e82, 0x1e84,
 0x1e86,
     0x1e88, 0x1e8a, 0x1e8c, 0x1e8e, 0x1e90, 0x1e92, 0x1e94, 0x1ea0,
 0x1ea2,
     0x1ea4, 0x1ea6, 0x1ea8, 0x1eaa, 0x1eac, 0x1eae, 0x1eb0, 0x1eb2,
 0x1eb4,
     0x1eb6, 0x1eb8, 0x1eba, 0x1ebc, 0x1ebe, 0x1ec0, 0x1ec2, 0x1ec4,
 0x1ec6,
     0x1ec8, 0x1eca, 0x1ecc, 0x1ece, 0x1ed0, 0x1ed2, 0x1ed4, 0x1ed6,
 0x1ed8,
     0x1eda, 0x1edc, 0x1ede, 0x1ee0, 0x1ee2, 0x1ee4, 0x1ee6, 0x1ee8,
 0x1eea,
     0x1eec, 0x1eee, 0x1ef0, 0x1ef2, 0x1ef4, 0x1ef6, 0x1ef8, 0x1f59,
 0x1f5b,
     0x1f5d, 0x1f5f, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128,
 0x2130,
     0x2131, 0x2133
 };
 # 357
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_local
 e.c"
 static crange graphRangeTable[] =3D {
     {0x0021, 0x007e}, {0x00a0, 0x011f}, {0x0121, 0x01f5}, {0x01fa,
 0x0217},
     {0x0250, 0x02a8}, {0x02b0, 0x02de}, {0x02e0, 0x02e9}, {0x0300,
 0x031f},
     {0x0321, 0x0345}, {0x0384, 0x038a}, {0x038e, 0x03a1}, {0x03a3,
 0x03ce},
     {0x03d0, 0x03d6}, {0x03e2, 0x03f3}, {0x0401, 0x040c}, {0x040e,
 0x041f},
     {0x0421, 0x044f}, {0x0451, 0x045c}, {0x045e, 0x0486}, {0x0490,
 0x04c4},
     {0x04d0, 0x04eb}, {0x04ee, 0x04f5}, {0x0531, 0x0556}, {0x0559,
 0x055f},
     {0x0561, 0x0587}, {0x0591, 0x05a1}, {0x05a3, 0x05b9}, {0x05bb,
 0x05c4},
     {0x05d0, 0x05ea}, {0x05f0, 0x05f4}, {0x0621, 0x063a}, {0x0640,
 0x0652},
     {0x0660, 0x066d}, {0x0670, 0x06b7}, {0x06ba, 0x06be}, {0x06c0,
 0x06ce},
     {0x06d0, 0x06ed}, {0x06f0, 0x06f9}, {0x0901, 0x0903}, {0x0905,
 0x091f},
     {0x0921, 0x0939}, {0x093c, 0x094d}, {0x0950, 0x0954}, {0x0958,
 0x0970},
     {0x0981, 0x0983}, {0x0985, 0x098c}, {0x0993, 0x09a8}, {0x09aa,
 0x09b0},
     {0x09b6, 0x09b9}, {0x09be, 0x09c4}, {0x09cb, 0x09cd}, {0x09df,
 0x09e3},
     {0x09e6, 0x09fa}, {0x0a05, 0x0a0a}, {0x0a13, 0x0a1f}, {0x0a21,
 0x0a28},
     {0x0a2a, 0x0a30}, {0x0a3e, 0x0a42}, {0x0a4b, 0x0a4d}, {0x0a59,
 0x0a5c},
     {0x0a66, 0x0a74}, {0x0a81, 0x0a83}, {0x0a85, 0x0a8b}, {0x0a8f,
 0x0a91},
     {0x0a93, 0x0aa8}, {0x0aaa, 0x0ab0}, {0x0ab5, 0x0ab9}, {0x0abc,
 0x0ac5},
     {0x0ac7, 0x0ac9}, {0x0acb, 0x0acd}, {0x0ae6, 0x0aef}, {0x0b01,
 0x0b03},
     {0x0b05, 0x0b0c}, {0x0b13, 0x0b1f}, {0x0b21, 0x0b28}, {0x0b2a,
 0x0b30},
     {0x0b36, 0x0b39}, {0x0b3c, 0x0b43}, {0x0b4b, 0x0b4d}, {0x0b5f,
 0x0b61},
     {0x0b66, 0x0b70}, {0x0b85, 0x0b8a}, {0x0b8e, 0x0b90}, {0x0b92,
 0x0b95},
     {0x0ba8, 0x0baa}, {0x0bae, 0x0bb5}, {0x0bb7, 0x0bb9}, {0x0bbe,
 0x0bc2},
     {0x0bc6, 0x0bc8}, {0x0bca, 0x0bcd}, {0x0be7, 0x0bf2}, {0x0c01,
 0x0c03},
     {0x0c05, 0x0c0c}, {0x0c0e, 0x0c10}, {0x0c12, 0x0c1f}, {0x0c21,
 0x0c28},
     {0x0c2a, 0x0c33}, {0x0c35, 0x0c39}, {0x0c3e, 0x0c44}, {0x0c46,
 0x0c48},
     {0x0c4a, 0x0c4d}, {0x0c66, 0x0c6f}, {0x0c85, 0x0c8c}, {0x0c8e,
 0x0c90},
     {0x0c92, 0x0ca8}, {0x0caa, 0x0cb3}, {0x0cb5, 0x0cb9}, {0x0cbe,
 0x0cc4},
     {0x0cc6, 0x0cc8}, {0x0cca, 0x0ccd}, {0x0ce6, 0x0cef}, {0x0d05,
 0x0d0c},
     {0x0d0e, 0x0d10}, {0x0d12, 0x0d1f}, {0x0d21, 0x0d28}, {0x0d2a,
 0x0d39},
     {0x0d3e, 0x0d43}, {0x0d46, 0x0d48}, {0x0d4a, 0x0d4d}, {0x0d66,
 0x0d6f},
     {0x0e01, 0x0e1f}, {0x0e21, 0x0e3a}, {0x0e3f, 0x0e5b}, {0x0e94,
 0x0e97},
     {0x0e99, 0x0e9f}, {0x0ea1, 0x0ea3}, {0x0ead, 0x0eb9}, {0x0ebb,
 0x0ebd},
     {0x0ec0, 0x0ec4}, {0x0ec8, 0x0ecd}, {0x0ed0, 0x0ed9}, {0x0f00,
 0x0f1f},
     {0x0f21, 0x0f47}, {0x0f49, 0x0f69}, {0x0f71, 0x0f8b}, {0x0f90,
 0x0f95},
     {0x0f99, 0x0fad}, {0x0fb1, 0x0fb7}, {0x10a0, 0x10c5}, {0x10d0,
 0x10f6},
     {0x1100, 0x111f}, {0x1121, 0x1159}, {0x115f, 0x11a2}, {0x11a8,
 0x11f9},
     {0x1e00, 0x1e1f}, {0x1e21, 0x1e9b}, {0x1ea0, 0x1ef9}, {0x1f00,
 0x1f15},
     {0x1f18, 0x1f1d}, {0x1f21, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50,
 0x1f57},
     {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fc4}, {0x1fc6,
 0x1fd3},
     {0x1fd6, 0x1fdb}, {0x1fdd, 0x1fef}, {0x1ff2, 0x1ff4}, {0x1ff6,
 0x1ffe},
     {0x2000, 0x200b}, {0x2010, 0x201f}, {0x2021, 0x2029}, {0x2030,
 0x2046},
     {0x2074, 0x208e}, {0x20a0, 0x20ac}, {0x20d0, 0x20e1}, {0x2100,
 0x211f},
     {0x2121, 0x2138}, {0x2153, 0x2182}, {0x2190, 0x21ea}, {0x2200,
 0x221f},
     {0x2221, 0x22f1}, {0x2302, 0x231f}, {0x2321, 0x237a}, {0x2400,
 0x241f},
     {0x2421, 0x2424}, {0x2440, 0x244a}, {0x2460, 0x24ea}, {0x2500,
 0x251f},
     {0x2521, 0x2595}, {0x25a0, 0x25ef}, {0x2600, 0x2613}, {0x261a,
 0x261f},
     {0x2621, 0x266f}, {0x2701, 0x2704}, {0x2706, 0x2709}, {0x270c,
 0x271f},
     {0x2721, 0x2727}, {0x2729, 0x274b}, {0x274f, 0x2752}, {0x2758,
 0x275e},
     {0x2761, 0x2767}, {0x2776, 0x2794}, {0x2798, 0x27af}, {0x27b1,
 0x27be},
     {0x3000, 0x301f}, {0x3021, 0x3037}, {0x3041, 0x3094}, {0x3099,
 0x309e},
     {0x30a1, 0x30fe}, {0x3105, 0x311f}, {0x3121, 0x312c}, {0x3131,
 0x318e},
     {0x3190, 0x319f}, {0x3200, 0x321c}, {0x3221, 0x3243}, {0x3260,
 0x327b},
     {0x327f, 0x32b0}, {0x32c0, 0x32cb}, {0x32d0, 0x32fe}, {0x3300,
 0x331f},
     {0x3321, 0x3376}, {0x337b, 0x33dd}, {0x33e0, 0x33fe}, {0x4e00,
 0x4e1f},
     {0x4e21, 0x4f1f}, {0x4f21, 0x501f}, {0x5021, 0x511f}, {0x5121,
 0x521f},
     {0x5221, 0x531f}, {0x5321, 0x541f}, {0x5421, 0x551f}, {0x5521,
 0x561f},
     {0x5621, 0x571f}, {0x5721, 0x581f}, {0x5821, 0x591f}, {0x5921,
 0x5a1f},
     {0x5a21, 0x5b1f}, {0x5b21, 0x5c1f}, {0x5c21, 0x5d1f}, {0x5d21,
 0x5e1f},
     {0x5e21, 0x5f1f}, {0x5f21, 0x601f}, {0x6021, 0x611f}, {0x6121,
 0x621f},
     {0x6221, 0x631f}, {0x6321, 0x641f}, {0x6421, 0x651f}, {0x6521,
 0x661f},
     {0x6621, 0x671f}, {0x6721, 0x681f}, {0x6821, 0x691f}, {0x6921,
 0x6a1f},
     {0x6a21, 0x6b1f}, {0x6b21, 0x6c1f}, {0x6c21, 0x6d1f}, {0x6d21,
 0x6e1f},
     {0x6e21, 0x6f1f}, {0x6f21, 0x701f}, {0x7021, 0x711f}, {0x7121,
 0x721f},
     {0x7221, 0x731f}, {0x7321, 0x741f}, {0x7421, 0x751f}, {0x7521,
 0x761f},
     {0x7621, 0x771f}, {0x7721, 0x781f}, {0x7821, 0x791f}, {0x7921,
 0x7a1f},
     {0x7a21, 0x7b1f}, {0x7b21, 0x7c1f}, {0x7c21, 0x7d1f}, {0x7d21,
 0x7e1f},
     {0x7e21, 0x7f1f}, {0x7f21, 0x801f}, {0x8021, 0x811f}, {0x8121,
 0x821f},
     {0x8221, 0x831f}, {0x8321, 0x841f}, {0x8421, 0x851f}, {0x8521,
 0x861f},
     {0x8621, 0x871f}, {0x8721, 0x881f}, {0x8821, 0x891f}, {0x8921,
 0x8a1f},
     {0x8a21, 0x8b1f}, {0x8b21, 0x8c1f}, {0x8c21, 0x8d1f}, {0x8d21,
 0x8e1f},
     {0x8e21, 0x8f1f}, {0x8f21, 0x901f}, {0x9021, 0x911f}, {0x9121,
 0x921f},
     {0x9221, 0x931f}, {0x9321, 0x941f}, {0x9421, 0x951f}, {0x9521,
 0x961f},
     {0x9621, 0x971f}, {0x9721, 0x981f}, {0x9821, 0x991f}, {0x9921,
 0x9a1f},
     {0x9a21, 0x9b1f}, {0x9b21, 0x9c1f}, {0x9c21, 0x9d1f}, {0x9d21,
 0x9e1f},
     {0x9e21, 0x9f1f}, {0x9f21, 0x9fa5}, {0xac00, 0xac1f}, {0xac21,
 0xad1f},
     {0xad21, 0xae1f}, {0xae21, 0xaf1f}, {0xaf21, 0xb01f}, {0xb021,
 0xb11f},
     {0xb121, 0xb21f}, {0xb221, 0xb31f}, {0xb321, 0xb41f}, {0xb421,
 0xb51f},
     {0xb521, 0xb61f}, {0xb621, 0xb71f}, {0xb721, 0xb81f}, {0xb821,
 0xb91f},
     {0xb921, 0xba1f}, {0xba21, 0xbb1f}, {0xbb21, 0xbc1f}, {0xbc21,
 0xbd1f},
     {0xbd21, 0xbe1f}, {0xbe21, 0xbf1f}, {0xbf21, 0xc01f}, {0xc021,
 0xc11f},
     {0xc121, 0xc21f}, {0xc221, 0xc31f}, {0xc321, 0xc41f}, {0xc421,
 0xc51f},
     {0xc521, 0xc61f}, {0xc621, 0xc71f}, {0xc721, 0xc81f}, {0xc821,
 0xc91f},
     {0xc921, 0xca1f}, {0xca21, 0xcb1f}, {0xcb21, 0xcc1f}, {0xcc21,
 0xcd1f},
     {0xcd21, 0xce1f}, {0xce21, 0xcf1f}, {0xcf21, 0xd01f}, {0xd021,
 0xd11f},
     {0xd121, 0xd21f}, {0xd221, 0xd31f}, {0xd321, 0xd41f}, {0xd421,
 0xd51f},
     {0xd521, 0xd61f}, {0xd621, 0xd71f}, {0xd721, 0xd7a3}, {0xf900,
 0xf91f},
     {0xf921, 0xfa1f}, {0xfa21, 0xfa2d}, {0xfb00, 0xfb06}, {0xfb13,
 0xfb17},
     {0xfb21, 0xfb36}, {0xfb38, 0xfb3c}, {0xfb46, 0xfbb1}, {0xfbd3,
 0xfc1f},
     {0xfc21, 0xfd1f}, {0xfd21, 0xfd3f}, {0xfd50, 0xfd8f}, {0xfd92,
 0xfdc7},
     {0xfdf0, 0xfdfb}, {0xfe21, 0xfe23}, {0xfe30, 0xfe44}, {0xfe49,
 0xfe52},
     {0xfe54, 0xfe66}, {0xfe68, 0xfe6b}, {0xfe70, 0xfe72}, {0xfe76,
 0xfefc},
     {0xff01, 0xff1f}, {0xff21, 0xff5e}, {0xff61, 0xffbe}, {0xffc2,
 0xffc7},
     {0xffca, 0xffcf}, {0xffd2, 0xffd7}, {0xffda, 0xffdc}, {0xffe0,
 0xffe6},
     {0xffe8, 0xffee}
 };
 
 
 
 static chr graphCharTable[] =3D {
     0x0360, 0x0361, 0x0374, 0x0375, 0x037a, 0x037e, 0x038c, 0x03da,
 0x03dc,
     0x03de, 0x03e0, 0x04c7, 0x04c8, 0x04cb, 0x04cc, 0x04f8, 0x04f9,
 0x0589,
     0x060c, 0x061b, 0x061f, 0x098f, 0x0990, 0x09b2, 0x09bc, 0x09c7,
 0x09c8,
     0x09d7, 0x09dc, 0x09dd, 0x0a02, 0x0a0f, 0x0a10, 0x0a32, 0x0a33,
 0x0a35,
     0x0a36, 0x0a38, 0x0a39, 0x0a3c, 0x0a47, 0x0a48, 0x0a5e, 0x0a8d,
 0x0ab2,
     0x0ab3, 0x0ad0, 0x0ae0, 0x0b0f, 0x0b10, 0x0b32, 0x0b33, 0x0b47,
 0x0b48,
     0x0b56, 0x0b57, 0x0b5c, 0x0b5d, 0x0b82, 0x0b83, 0x0b99, 0x0b9a,
 0x0b9c,
     0x0b9e, 0x0b9f, 0x0ba3, 0x0ba4, 0x0bd7, 0x0c55, 0x0c56, 0x0c60,
 0x0c61,
     0x0c82, 0x0c83, 0x0cd5, 0x0cd6, 0x0cde, 0x0ce0, 0x0ce1, 0x0d02,
 0x0d03,
     0x0d57, 0x0d60, 0x0d61, 0x0e81, 0x0e82, 0x0e84, 0x0e87, 0x0e88,
 0x0e8a,
     0x0e8d, 0x0ea5, 0x0ea7, 0x0eaa, 0x0eab, 0x0ec6, 0x0edc, 0x0edd,
 0x0f97,
     0x0fb9, 0x10fb, 0x1f59, 0x1f5b, 0x1f5d, 0x2070, 0x2300, 0x274d,
 0x2756,
     0x303f, 0xfb1e, 0xfb1f, 0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44,
 0xfe74,
     0xfffc, 0xfffd
 };
 # 482
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_local
 e.c"
 static int
 nmcces(v)
 struct vars *v;
 {
         return 0;
 }
 
 
 
 
 
 static int
 nleaders(v)
 struct vars *v;
 {
         return 0;
 }
 
 
 
 
 
 static struct cvec *
 allmcces(v, cv)
 struct vars *v;
 struct cvec *cv;
 {
         return clearcvec(cv);
 }
 
 
 
 
 
 static celt
 element(v, startp, endp)
 struct vars *v;
 chr *startp;
 chr *endp;
 {
         struct cname *cn;
         size_t len;
         Tcl_DString ds;
         char *np;
 
 
         ((void)0);
         len =3D endp - startp;
         if (len =3D=3D 1)
                 return *startp;
 
         (v->re->re_info |=3D (002000));
 
 
         Tcl_DStringInit(&ds);
         np =3D Tcl_UniCharToUtfDString(startp, (int)len, &ds);
         for (cn =3D cnames; cn->name !=3D ((void *)0); cn++)
                 if (strlen(cn->name) =3D=3D len && strncmp(cn->name, np,
 len) =3D=3D 0)
                         break;
         Tcl_DStringFree(&ds);
         if (cn->name !=3D ((void *)0))
                 return (((unsigned char) (cn->code)));
 
 
         ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err : ((v)->err =3D =
 (3)));
         return 0;
 }
 
 
 
 
 
 static struct cvec *
 range(v, a, b, cases)
 struct vars *v;
 celt a;
 celt b;
 int cases;
 {
         int nchrs;
         struct cvec *cv;
         celt c, lc, uc, tc;
 
         if (a !=3D b && !before(a, b)) {
                 ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err : =
 ((v)->err
 =3D (11)));
                 return ((void *)0);
         }
 
         if (!cases) {
                 cv =3D getcvec(v, 0, 1, 0);
                 {if (((v)->err !=3D 0)) return ((void *)0);};
                 addrange(cv, a, b);
                 return cv;
         }
 # 584
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_local
 e.c"
         nchrs =3D (b - a + 1)*2 + 4;
 
         cv =3D getcvec(v, nchrs, 0, 0);
         {if (((v)->err !=3D 0)) return ((void *)0);};
 
         for (c =3D a; c <=3D b; c++) {
                 addchr(cv, c);
                 lc =3D Tcl_UniCharToLower((chr)c);
                 uc =3D Tcl_UniCharToUpper((chr)c);
                 tc =3D Tcl_UniCharToTitle((chr)c);
                 if (c !=3D lc) {
                         addchr(cv, lc);
                 }
                 if (c !=3D uc) {
                         addchr(cv, uc);
                 }
                 if (c !=3D tc && tc !=3D uc) {
                         addchr(cv, tc);
                 }
         }
 
         return cv;
 }
 
 
 
 
 
 static int
 before(x, y)
 celt x;
 celt y;
 {
 
         if (x < y)
                 return 1;
         return 0;
 }
 
 
 
 
 
 
 static struct cvec *
 eclass(v, c, cases)
 struct vars *v;
 celt c;
 int cases;
 {
         struct cvec *cv;
 
 
         if ((v->cflags&010000) && c =3D=3D 'x') {
                 cv =3D getcvec(v, 4, 0, 0);
                 addchr(cv, (chr)'x');
                 addchr(cv, (chr)'y');
                 if (cases) {
                         addchr(cv, (chr)'X');
                         addchr(cv, (chr)'Y');
                 }
                 return cv;
         }
 
 
         if (cases)
                 return allcases(v, c);
         cv =3D getcvec(v, 1, 0, 0);
         ((void)0);
         addchr(cv, (chr)c);
         return cv;
 }
 
 
 
 
 
 
 static struct cvec *
 cclass(v, startp, endp, cases)
 struct vars *v;
 chr *startp;
 chr *endp;
 int cases;
 {
     size_t len;
     struct cvec *cv =3D ((void *)0);
     Tcl_DString ds;
     char *np, **namePtr;
     int i, index;
 
 
 
 
 
     static char *classNames[] =3D {
         "alnum", "alpha", "ascii", "blank", "cntrl", "digit", "graph",
         "lower", "print", "punct", "space", "upper", "xdigit", ((void
 *)0)
     };
 
     enum classes {
         CC_ALNUM, CC_ALPHA, CC_ASCII, CC_BLANK, CC_CNTRL, CC_DIGIT,
 CC_GRAPH,
         CC_LOWER, CC_PRINT, CC_PUNCT, CC_SPACE, CC_UPPER, CC_XDIGIT
     };
 
 
 
 
 
 
     len =3D endp - startp;
     Tcl_DStringInit(&ds);
     np =3D Tcl_UniCharToUtfDString(startp, (int)len, &ds);
 
 
 
 
 
     if (cases && len =3D=3D 5 && (strncmp("lower", np, 5) =3D=3D 0
             || strncmp("upper", np, 5) =3D=3D 0)) {
         np =3D "alpha";
     }
 
 
 
 
 
     index =3D -1;
     for (namePtr =3D classNames, i =3D 0; *namePtr !=3D ((void *)0);
 namePtr++, i++) {
         if ((strlen(*namePtr) =3D=3D len) && (strncmp(*namePtr, np, len) =
 =3D=3D
 0)) {
             index =3D i;
             break;
         }
     }
     Tcl_DStringInit(&ds);
     if (index =3D=3D -1) {
         ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err : ((v)->err =3D =
 (4)));
         return ((void *)0);
     }
 
 
 
 
 
     switch((enum classes) index) {
         case CC_PRINT:
         case CC_ALNUM:
             cv =3D getcvec(v, (sizeof(alphaCharTable)/sizeof(chr)),
                     (sizeof(digitRangeTable)/sizeof(crange)) +
 (sizeof(alphaRangeTable)/sizeof(crange)), 0);
             if (cv) {
                 for (i =3D 0; i < (sizeof(alphaCharTable)/sizeof(chr));
 i++) {
                     addchr(cv, alphaCharTable[i]);
                 }
                 for (i =3D 0; i <
 (sizeof(alphaRangeTable)/sizeof(crange)); i++) {
                     addrange(cv, alphaRangeTable[i].start,
                              alphaRangeTable[i].end);
                 }
                 for (i =3D 0; i <
 (sizeof(digitRangeTable)/sizeof(crange)); i++) {
                     addrange(cv, digitRangeTable[i].start,
                             digitRangeTable[i].end);
                 }
             }
             break;
         case CC_ALPHA:
             cv =3D getcvec(v, (sizeof(alphaCharTable)/sizeof(chr)),
 (sizeof(alphaRangeTable)/sizeof(crange)), 0);
             if (cv) {
                 for (i =3D 0; i <
 (sizeof(alphaRangeTable)/sizeof(crange)); i++) {
                     addrange(cv, alphaRangeTable[i].start,
                              alphaRangeTable[i].end);
                 }
                 for (i =3D 0; i < (sizeof(alphaCharTable)/sizeof(chr));
 i++) {
                     addchr(cv, alphaCharTable[i]);
                 }
             }
             break;
         case CC_ASCII:
             cv =3D getcvec(v, 0, 1, 0);
             if (cv) {
                 addrange(cv, 0, 0x7f);
             }
             break;
         case CC_BLANK:
             cv =3D getcvec(v, 2, 0, 0);
             addchr(cv, '\t');
             addchr(cv, ' ');
             break;
         case CC_CNTRL:
             cv =3D getcvec(v, 0, 2, 0);
             addrange(cv, 0x0, 0x1f);
             addrange(cv, 0x7f, 0x9f);
             break;
         case CC_DIGIT:
             cv =3D getcvec(v, 0, =
 (sizeof(digitRangeTable)/sizeof(crange)),
 0);
             if (cv) {
                 for (i =3D 0; i <
 (sizeof(digitRangeTable)/sizeof(crange)); i++) {
                     addrange(cv, digitRangeTable[i].start,
                             digitRangeTable[i].end);
                 }
             }
             break;
         case CC_PUNCT:
             cv =3D getcvec(v, (sizeof(punctCharTable)/sizeof(chr)),
 (sizeof(punctRangeTable)/sizeof(crange)), 0);
             if (cv) {
                 for (i =3D 0; i <
 (sizeof(punctRangeTable)/sizeof(crange)); i++) {
                     addrange(cv, punctRangeTable[i].start,
                              punctRangeTable[i].end);
                 }
                 for (i =3D 0; i < (sizeof(punctCharTable)/sizeof(chr));
 i++) {
                     addchr(cv, punctCharTable[i]);
                 }
             }
             break;
         case CC_XDIGIT:
             cv =3D getcvec(v, 0,
 (sizeof(digitRangeTable)/sizeof(crange))+2, 0);
             if (cv) {
                 addrange(cv, '0', '9');
                 addrange(cv, 'a', 'f');
                 addrange(cv, 'A', 'F');
             }
             break;
         case CC_SPACE:
             cv =3D getcvec(v, (sizeof(spaceCharTable)/sizeof(chr)),
 (sizeof(spaceRangeTable)/sizeof(crange)), 0);
             if (cv) {
                 for (i =3D 0; i <
 (sizeof(spaceRangeTable)/sizeof(crange)); i++) {
                     addrange(cv, spaceRangeTable[i].start,
                              spaceRangeTable[i].end);
                 }
                 for (i =3D 0; i < (sizeof(spaceCharTable)/sizeof(chr));
 i++) {
                     addchr(cv, spaceCharTable[i]);
                 }
             }
             break;
         case CC_LOWER:
             cv =3D getcvec(v, (sizeof(lowerCharTable)/sizeof(chr)),
 (sizeof(lowerRangeTable)/sizeof(crange)), 0);
             if (cv) {
                 for (i =3D 0; i <
 (sizeof(lowerRangeTable)/sizeof(crange)); i++) {
                     addrange(cv, lowerRangeTable[i].start,
                              lowerRangeTable[i].end);
                 }
                 for (i =3D 0; i < (sizeof(lowerCharTable)/sizeof(chr));
 i++) {
                     addchr(cv, lowerCharTable[i]);
                 }
             }
             break;
         case CC_UPPER:
             cv =3D getcvec(v, (sizeof(upperCharTable)/sizeof(chr)),
 (sizeof(upperRangeTable)/sizeof(crange)), 0);
             if (cv) {
                 for (i =3D 0; i <
 (sizeof(upperRangeTable)/sizeof(crange)); i++) {
                     addrange(cv, upperRangeTable[i].start,
                              upperRangeTable[i].end);
                 }
                 for (i =3D 0; i < (sizeof(upperCharTable)/sizeof(chr));
 i++) {
                     addchr(cv, upperCharTable[i]);
                 }
             }
             break;
         case CC_GRAPH:
             cv =3D getcvec(v, (sizeof(graphCharTable)/sizeof(chr)),
 (sizeof(graphRangeTable)/sizeof(crange)), 0);
             if (cv) {
                 for (i =3D 0; i <
 (sizeof(graphRangeTable)/sizeof(crange)); i++) {
                     addrange(cv, graphRangeTable[i].start,
                              graphRangeTable[i].end);
                 }
                 for (i =3D 0; i < (sizeof(graphCharTable)/sizeof(chr));
 i++) {
                     addchr(cv, graphCharTable[i]);
                 }
             }
             break;
     }
     if (cv =3D=3D ((void *)0)) {
         ((v)->nexttype =3D 'e', ((v)->err) ? (v)->err : ((v)->err =3D
 (12)));
     }
     return cv;
 }
 
 
 
 
 
 
 
 static struct cvec *
 allcases(v, pc)
 struct vars *v;
 pchr pc;
 {
         struct cvec *cv;
         chr c =3D (chr)pc;
         chr lc, uc, tc;
 
         lc =3D Tcl_UniCharToLower((chr)c);
         uc =3D Tcl_UniCharToUpper((chr)c);
         tc =3D Tcl_UniCharToTitle((chr)c);
 
         if (tc !=3D uc) {
             cv =3D getcvec(v, 3, 0, 0);
             addchr(cv, tc);
         } else {
             cv =3D getcvec(v, 2, 0, 0);
         }
         addchr(cv, lc);
         if (lc !=3D uc) {
             addchr(cv, uc);
         }
         return cv;
 }
 # 899
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_local
 e.c"
 static int
 cmp(x, y, len)
 const chr *x;
 const chr *y;
 size_t len;
 {
         return memcmp(((void *)(x)), ((void *)(y)), len*sizeof(chr)); }
 # 916
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_local
 e.c"
 static int
 casecmp(x, y, len)
 const chr *x;
 const chr *y;
 size_t len;
 {
         size_t i;
         const chr *xp;
         const chr *yp;
 
         for (xp =3D x, yp =3D y, i =3D len; i > 0; i--)
                 if (Tcl_UniCharToLower(*xp++) !=3D
 Tcl_UniCharToLower(*yp++))
                         return 1;
         return 0;
 }
 # 2176
 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
 2


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: optimization/8367: ICE compiling tcl/generic/regcomp.c (new in last week)
@ 2002-10-30 12:15 paolo
  0 siblings, 0 replies; 3+ messages in thread
From: paolo @ 2002-10-30 12:15 UTC (permalink / raw)
  To: donnte, gcc-bugs, gcc-prs, nobody

Synopsis: ICE compiling tcl/generic/regcomp.c (new in last week)

State-Changed-From-To: open->closed
State-Changed-By: paolo
State-Changed-When: Wed Oct 30 12:15:33 2002
State-Changed-Why:
    Closed upon submitter's request.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=8367


^ permalink raw reply	[flat|nested] 3+ messages in thread

* optimization/8367: ICE compiling tcl/generic/regcomp.c (new in last week)
@ 2002-10-26 17:16 donnte
  0 siblings, 0 replies; 3+ messages in thread
From: donnte @ 2002-10-26 17:16 UTC (permalink / raw)
  To: gcc-gnats


>Number:         8367
>Category:       optimization
>Synopsis:       ICE compiling tcl/generic/regcomp.c (new in last week)
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Oct 26 17:16:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Donn Terry
>Release:        Current CVS leading edge
>Organization:
>Environment:
Interix
>Description:
Sometime since last Monday afternoon (and before ~5PM PDT friday), this bug was introduced.  The problem is in alias.c, line 2814:

2814                      else if (REG_N_SETS (regno) == 1
2815                               && GET_CODE (src) == PLUS
2816                               && GET_CODE (XEXP (src, 0)) == REG
2817                               && REGNO (XEXP (src, 0)) >= FIRST_PSEUDO_REGI
STER

REG_N_SETS devolves to VARRAY_REG (reg_n_info, N)->sets,
and VARRAY_REG(...) is NULL for this value of regno.

Command line:
/dev/fs/C/home/donn.intel/gnu2.intel/local_bin/cc1 -fpreprocessed regcomp.i -quiet -dumpbase regcomp.c -auxbase regcomp -g -O2 -O -Wall -Wconversion -Wno-implicit-int -version -o regcomp.s

Alias.c has not changed recently (in this area), but whether it should be more robust and allow the null, or whether the presence of the null is itself a bug, I don't know.
>How-To-Repeat:
Command line and .i file attached.  Repeats with CVS synced as of ~noon PDT Saturday on Interix.
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/plain; name="regcomp.i"
Content-Disposition: inline; filename="regcomp.i"

# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
# 33 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h" 1
# 38 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcustom.h" 1
# 30 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcustom.h"
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h" 1
# 30 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
# 1 "/usr/include/stdio.h" 1 3 4
# 67 "/usr/include/stdio.h" 3 4
# 1 "/usr/include/features.h" 1 3 4
# 68 "/usr/include/stdio.h" 2 3 4

# 1 "/usr/include/sys/types.h" 1 3 4
# 37 "/usr/include/sys/types.h" 3 4
# 1 "/usr/include/sys/endian.h" 1 3 4
# 38 "/usr/include/sys/types.h" 2 3 4







typedef unsigned long mode_t;




typedef unsigned long nlink_t;




typedef long pid_t;




typedef unsigned long gid_t;




typedef unsigned long uid_t;



typedef long off_t;




typedef unsigned long dev_t;




typedef unsigned long ino_t;




typedef long time_t;




typedef unsigned int size_t;




typedef signed int ssize_t;
# 106 "/usr/include/sys/types.h" 3 4
typedef long clock_t;




typedef unsigned long useconds_t;




typedef unsigned long id_t;




typedef char *caddr_t;


typedef int key_t;


typedef unsigned char uchar_t;
typedef unsigned int uint_t;
typedef unsigned short ushort_t;
typedef unsigned long ulong_t;


typedef signed char int8_t;
typedef unsigned char u_int8_t;
typedef short int16_t;
typedef unsigned short u_int16_t;
typedef int int32_t;
typedef unsigned int u_int32_t;


typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;





typedef long long int quad_t;
typedef unsigned long long int u_quad_t;
typedef long long int int64_t;
typedef unsigned long long int u_int64_t;
# 167 "/usr/include/sys/types.h" 3 4
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned short ushort;
typedef unsigned int u_int;
typedef unsigned long u_long;

typedef unsigned int uint;
typedef unsigned long ulong;
typedef unsigned char unchar;
# 70 "/usr/include/stdio.h" 2 3 4
# 83 "/usr/include/stdio.h" 3 4
typedef off_t fpos_t;
# 124 "/usr/include/stdio.h" 3 4
# 1 "/usr/include/va_list.h" 1 3 4
# 47 "/usr/include/va_list.h" 3 4
# 1 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/stdarg.h" 1 3 4
# 43 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/stdarg.h" 3 4
typedef __builtin_va_list __gnuc_va_list;
# 48 "/usr/include/va_list.h" 2 3 4
typedef __builtin_va_list __va_list;
# 74 "/usr/include/va_list.h" 3 4
typedef __va_list va_list;
# 125 "/usr/include/stdio.h" 2 3 4
# 149 "/usr/include/stdio.h" 3 4
struct __sbuf {
        unsigned char *_base;
        int _size;
};
# 180 "/usr/include/stdio.h" 3 4
typedef struct __sFILE {
        unsigned char *_p;
        int _r;
        int _w;
        short _flags;
        short _file;
        struct __sbuf _bf;
        int _lbfsize;


        void *_cookie;
        int (*_close) (void *);
        int (*_read) (void *, char *, int);
        fpos_t (*_seek) (void *, fpos_t, int);
        int (*_write) (void *, const char *, int);


        struct __sbuf _ub;
        unsigned char *_up;
        int _ur;


        unsigned char _ubuf[3];
        unsigned char _nbuf[1];


        struct __sbuf _lb;


        int _blksize;
        fpos_t _offset;
} FILE;

extern FILE __sF[];
# 247 "/usr/include/stdio.h" 3 4
extern void __attribute__((__cdecl__)) clearerr (FILE *);
extern int __attribute__((__cdecl__)) fclose (FILE *);
extern int __attribute__((__cdecl__)) feof (FILE *);
extern int __attribute__((__cdecl__)) ferror (FILE *);
extern int __attribute__((__cdecl__)) fflush (FILE *);
extern int __attribute__((__cdecl__)) fgetc (FILE *);
extern int __attribute__((__cdecl__)) fgetpos (FILE *, fpos_t *);
extern char * __attribute__((__cdecl__)) fgets (char *, int, FILE *);
extern FILE * __attribute__((__cdecl__)) fopen (const char *, const char *);
extern int __attribute__((__cdecl__)) fprintf (FILE *, const char *, ...);
extern int __attribute__((__cdecl__)) fputc (int, FILE *);
extern int __attribute__((__cdecl__)) fputs (const char *, FILE *);
extern size_t __attribute__((__cdecl__)) fread (void *, size_t, size_t, FILE *);
extern FILE * __attribute__((__cdecl__)) freopen (const char *, const char *, FILE *);
extern int __attribute__((__cdecl__)) fscanf (FILE *, const char *, ...);
extern int __attribute__((__cdecl__)) fseek (FILE *, long, int);
extern int __attribute__((__cdecl__)) fsetpos (FILE *, const fpos_t *);
extern long __attribute__((__cdecl__)) ftell (FILE *);
extern size_t __attribute__((__cdecl__)) fwrite (const void *, size_t, size_t, FILE *);
extern int __attribute__((__cdecl__)) getc (FILE *);
extern int __attribute__((__cdecl__)) getchar (void);
extern char * __attribute__((__cdecl__)) gets (char *);
extern void __attribute__((__cdecl__)) perror (const char *);
extern int __attribute__((__cdecl__)) printf (const char *, ...);
extern int __attribute__((__cdecl__)) putc (int, FILE *);
extern int __attribute__((__cdecl__)) putchar (int);
extern int __attribute__((__cdecl__)) puts (const char *);
extern int __attribute__((__cdecl__)) remove (const char *);
extern int __attribute__((__cdecl__)) rename (const char *, const char *);
extern void __attribute__((__cdecl__)) rewind (FILE *);
extern int __attribute__((__cdecl__)) scanf (const char *, ...);
extern void __attribute__((__cdecl__)) setbuf (FILE *, char *);
extern int __attribute__((__cdecl__)) setvbuf (FILE *, char *, int, size_t);
extern int __attribute__((__cdecl__)) sprintf (char *, const char *, ...);
extern int __attribute__((__cdecl__)) sscanf (const char *, const char *, ...);
extern FILE * __attribute__((__cdecl__)) tmpfile (void);
extern char * __attribute__((__cdecl__)) tmpnam (char *);
extern int __attribute__((__cdecl__)) ungetc (int, FILE *);


extern int __attribute__((__cdecl__)) vfprintf (FILE *, const char *, va_list);
extern int __attribute__((__cdecl__)) vprintf (const char *, va_list);
extern int __attribute__((__cdecl__)) vsprintf (char *, const char *, va_list);
# 303 "/usr/include/stdio.h" 3 4
char * __attribute__((__cdecl__)) ctermid (char *);
FILE * __attribute__((__cdecl__)) fdopen (int, const char *);
int __attribute__((__cdecl__)) fileno (FILE *);
# 314 "/usr/include/stdio.h" 3 4
int __attribute__((__cdecl__)) pclose (FILE *);
FILE* __attribute__((__cdecl__)) popen (const char *, const char *);





extern char* __attribute__((__cdecl__)) tempnam (const char *, const char *);
extern int __attribute__((__cdecl__)) getopt(int, char * const [], const char *);


extern char *optarg;
extern int optind, opterr, optopt;


extern char * __attribute__((__cdecl__)) cuserid(char *);
extern int __attribute__((__cdecl__)) getw(FILE *);
extern int __attribute__((__cdecl__)) putw (int, FILE *);
# 340 "/usr/include/stdio.h" 3 4
extern char* __attribute__((__cdecl__)) fgetln (FILE *, size_t *);
extern int __attribute__((__cdecl__)) fpurge (FILE *);
extern void __attribute__((__cdecl__)) setbuffer (FILE *, char *, int);
extern int __attribute__((__cdecl__)) setlinebuf (FILE *);
extern int __attribute__((__cdecl__)) snprintf (char *, size_t, const char *, ...);

extern int __attribute__((__cdecl__)) vsnprintf (char *, size_t, const char *, va_list);
extern int __attribute__((__cdecl__)) vscanf (const char *, va_list);
extern int __attribute__((__cdecl__)) vsscanf (const char *, const char *, va_list);
# 365 "/usr/include/stdio.h" 3 4
FILE *funopen (
                const void *,
                int (*)(void *, char *, int),
                int (*)(void *, const char *, int),
                fpos_t (*)(void *, fpos_t, int),
                int (*)(void *));







extern int __attribute__((__cdecl__)) __srget (FILE *);
extern int __attribute__((__cdecl__)) __swbuf (int, FILE *);

extern int __attribute__((__cdecl__)) __svfscanf (FILE *, const char *, va_list);
# 393 "/usr/include/stdio.h" 3 4
static __inline int __sputc(int _c, FILE *_p) {
        if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n'))
                return (*_p->_p++ = _c);
        else
                return (__swbuf(_c, _p));
}
# 31 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h" 2


# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h" 1
# 199 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
# 1 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/stdarg.h" 1 3 4
# 200 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h" 2
# 334 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
    typedef void *ClientData;
# 360 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_Interp {
    char *result;

    void (*freeProc) (char *blockPtr);







    int errorLine;


} Tcl_Interp;

typedef struct Tcl_AsyncHandler_ *Tcl_AsyncHandler;
typedef struct Tcl_Channel_ *Tcl_Channel;
typedef struct Tcl_Command_ *Tcl_Command;
typedef struct Tcl_Condition_ *Tcl_Condition;
typedef struct Tcl_EncodingState_ *Tcl_EncodingState;
typedef struct Tcl_Encoding_ *Tcl_Encoding;
typedef struct Tcl_Event Tcl_Event;
typedef struct Tcl_Mutex_ *Tcl_Mutex;
typedef struct Tcl_Pid_ *Tcl_Pid;
typedef struct Tcl_RegExp_ *Tcl_RegExp;
typedef struct Tcl_ThreadDataKey_ *Tcl_ThreadDataKey;
typedef struct Tcl_ThreadId_ *Tcl_ThreadId;
typedef struct Tcl_TimerToken_ *Tcl_TimerToken;
typedef struct Tcl_Trace_ *Tcl_Trace;
typedef struct Tcl_Var_ *Tcl_Var;
typedef struct Tcl_ChannelTypeVersion_ *Tcl_ChannelTypeVersion;
# 405 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef void (Tcl_ThreadCreateProc) (ClientData clientData);
# 477 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_RegExpIndices {
    long start;
    long end;

} Tcl_RegExpIndices;

typedef struct Tcl_RegExpInfo {
    int nsubs;

    Tcl_RegExpIndices *matches;

    long extendStart;

    long reserved;
} Tcl_RegExpInfo;






typedef struct stat *Tcl_Stat_;
# 533 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef enum {TCL_INT, TCL_DOUBLE, TCL_EITHER} Tcl_ValueType;
typedef struct Tcl_Value {
    Tcl_ValueType type;

    long intValue;
    double doubleValue;
} Tcl_Value;







struct Tcl_Obj;





typedef int (Tcl_AppInitProc) (Tcl_Interp *interp);
typedef int (Tcl_AsyncProc) (ClientData clientData, Tcl_Interp *interp, int code);

typedef void (Tcl_ChannelProc) (ClientData clientData, int mask);
typedef void (Tcl_CloseProc) (ClientData data);
typedef void (Tcl_CmdDeleteProc) (ClientData clientData);
typedef int (Tcl_CmdProc) (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]);

typedef void (Tcl_CmdTraceProc) (ClientData clientData, Tcl_Interp *interp, int level, char *command, Tcl_CmdProc *proc, ClientData cmdClientData, int argc, char *argv[]);


typedef void (Tcl_DupInternalRepProc) (struct Tcl_Obj *srcPtr, struct Tcl_Obj *dupPtr);

typedef int (Tcl_EncodingConvertProc)(ClientData clientData, const char *src, int srcLen, int flags, Tcl_EncodingState *statePtr, char *dst, int dstLen, int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr);



typedef void (Tcl_EncodingFreeProc)(ClientData clientData);
typedef int (Tcl_EventProc) (Tcl_Event *evPtr, int flags);
typedef void (Tcl_EventCheckProc) (ClientData clientData, int flags);

typedef int (Tcl_EventDeleteProc) (Tcl_Event *evPtr, ClientData clientData);

typedef void (Tcl_EventSetupProc) (ClientData clientData, int flags);

typedef void (Tcl_ExitProc) (ClientData clientData);
typedef void (Tcl_FileProc) (ClientData clientData, int mask);
typedef void (Tcl_FileFreeProc) (ClientData clientData);
typedef void (Tcl_FreeInternalRepProc) (struct Tcl_Obj *objPtr);
typedef void (Tcl_FreeProc) (char *blockPtr);
typedef void (Tcl_IdleProc) (ClientData clientData);
typedef void (Tcl_InterpDeleteProc) (ClientData clientData, Tcl_Interp *interp);

typedef int (Tcl_MathProc) (ClientData clientData, Tcl_Interp *interp, Tcl_Value *args, Tcl_Value *resultPtr);

typedef void (Tcl_NamespaceDeleteProc) (ClientData clientData);
typedef int (Tcl_ObjCmdProc) (ClientData clientData, Tcl_Interp *interp, int objc, struct Tcl_Obj *const objv[]);

typedef int (Tcl_PackageInitProc) (Tcl_Interp *interp);
typedef void (Tcl_PanicProc) (char * format, ...);
typedef void (Tcl_TcpAcceptProc) (ClientData callbackData, Tcl_Channel chan, char *address, int port);

typedef void (Tcl_TimerProc) (ClientData clientData);
typedef int (Tcl_SetFromAnyProc) (Tcl_Interp *interp, struct Tcl_Obj *objPtr);

typedef void (Tcl_UpdateStringProc) (struct Tcl_Obj *objPtr);
typedef char *(Tcl_VarTraceProc) (ClientData clientData, Tcl_Interp *interp, char *part1, char *part2, int flags);

typedef void (Tcl_CreateFileHandlerProc) (int fd, int mask, Tcl_FileProc *proc, ClientData clientData);

typedef void (Tcl_DeleteFileHandlerProc) (int fd);







typedef struct Tcl_ObjType {
    char *name;
    Tcl_FreeInternalRepProc *freeIntRepProc;



    Tcl_DupInternalRepProc *dupIntRepProc;


    Tcl_UpdateStringProc *updateStringProc;


    Tcl_SetFromAnyProc *setFromAnyProc;




} Tcl_ObjType;







typedef struct Tcl_Obj {
    int refCount;
    char *bytes;
# 649 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
    int length;

    Tcl_ObjType *typePtr;



    union {
        long longValue;
        double doubleValue;
        void *otherValuePtr;
        struct {
            void *ptr1;
            void *ptr2;
        } twoPtrValue;
    } internalRep;
} Tcl_Obj;
# 677 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
void Tcl_IncrRefCount (Tcl_Obj *objPtr);
void Tcl_DecrRefCount (Tcl_Obj *objPtr);
int Tcl_IsShared (Tcl_Obj *objPtr);
# 728 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_SavedResult {
    char *result;
    Tcl_FreeProc *freeProc;
    Tcl_Obj *objResultPtr;
    char *appendResult;
    int appendAvl;
    int appendUsed;
    char resultSpace[200 +1];
} Tcl_SavedResult;
# 745 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_Namespace {
    char *name;



    char *fullName;

    ClientData clientData;

    Tcl_NamespaceDeleteProc* deleteProc;


    struct Tcl_Namespace* parentPtr;



} Tcl_Namespace;
# 785 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_CallFrame {
    Tcl_Namespace *nsPtr;
    int dummy1;
    int dummy2;
    char *dummy3;
    char *dummy4;
    char *dummy5;
    int dummy6;
    char *dummy7;
    char *dummy8;
    int dummy9;
    char* dummy10;
} Tcl_CallFrame;
# 814 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_CmdInfo {
    int isNativeObjectProc;



    Tcl_ObjCmdProc *objProc;
    ClientData objClientData;
    Tcl_CmdProc *proc;
    ClientData clientData;
    Tcl_CmdDeleteProc *deleteProc;


    ClientData deleteData;

    Tcl_Namespace *namespacePtr;




} Tcl_CmdInfo;
# 842 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_DString {
    char *string;

    int length;

    int spaceAvl;

    char staticSpace[200];


} Tcl_DString;
# 963 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_HashEntry {
    struct Tcl_HashEntry *nextPtr;


    struct Tcl_HashTable *tablePtr;
    struct Tcl_HashEntry **bucketPtr;


    ClientData clientData;

    union {
        char *oneWordValue;
        int words[1];



        char string[4];


    } key;
} Tcl_HashEntry;
# 992 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_HashTable {
    Tcl_HashEntry **buckets;


    Tcl_HashEntry *staticBuckets[4];


    int numBuckets;

    int numEntries;

    int rebuildSize;

    int downShift;


    int mask;

    int keyType;





    Tcl_HashEntry *(*findProc) (struct Tcl_HashTable *tablePtr, const char *key);

    Tcl_HashEntry *(*createProc) (struct Tcl_HashTable *tablePtr, const char *key, int *newPtr);

} Tcl_HashTable;






typedef struct Tcl_HashSearch {
    Tcl_HashTable *tablePtr;
    int nextIndex;

    Tcl_HashEntry *nextEntryPtr;

} Tcl_HashSearch;
# 1084 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
struct Tcl_Event {
    Tcl_EventProc *proc;
    struct Tcl_Event *nextPtr;
};





typedef enum {
    TCL_QUEUE_TAIL, TCL_QUEUE_HEAD, TCL_QUEUE_MARK
} Tcl_QueuePosition;
# 1112 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_Time {
    long sec;
    long usec;
} Tcl_Time;

typedef void (Tcl_SetTimerProc) (Tcl_Time *timePtr);
typedef int (Tcl_WaitForEventProc) (Tcl_Time *timePtr);
# 1166 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef int (Tcl_DriverBlockModeProc) ( ClientData instanceData, int mode);

typedef int (Tcl_DriverCloseProc) (ClientData instanceData, Tcl_Interp *interp);

typedef int (Tcl_DriverClose2Proc) (ClientData instanceData, Tcl_Interp *interp, int flags);

typedef int (Tcl_DriverInputProc) (ClientData instanceData, char *buf, int toRead, int *errorCodePtr);

typedef int (Tcl_DriverOutputProc) (ClientData instanceData, char *buf, int toWrite, int *errorCodePtr);

typedef int (Tcl_DriverSeekProc) (ClientData instanceData, long offset, int mode, int *errorCodePtr);

typedef int (Tcl_DriverSetOptionProc) ( ClientData instanceData, Tcl_Interp *interp, char *optionName, char *value);


typedef int (Tcl_DriverGetOptionProc) ( ClientData instanceData, Tcl_Interp *interp, char *optionName, Tcl_DString *dsPtr);


typedef void (Tcl_DriverWatchProc) ( ClientData instanceData, int mask);

typedef int (Tcl_DriverGetHandleProc) ( ClientData instanceData, int direction, ClientData *handlePtr);


typedef int (Tcl_DriverFlushProc) ( ClientData instanceData);

typedef int (Tcl_DriverHandlerProc) ( ClientData instanceData, int interestMask);
# 1228 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef enum Tcl_EolTranslation {
    TCL_TRANSLATE_AUTO,
    TCL_TRANSLATE_CR,
    TCL_TRANSLATE_LF,
    TCL_TRANSLATE_CRLF
} Tcl_EolTranslation;
# 1246 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_ChannelType {
    char *typeName;


    Tcl_ChannelTypeVersion version;
    Tcl_DriverCloseProc *closeProc;



    Tcl_DriverInputProc *inputProc;

    Tcl_DriverOutputProc *outputProc;

    Tcl_DriverSeekProc *seekProc;

    Tcl_DriverSetOptionProc *setOptionProc;

    Tcl_DriverGetOptionProc *getOptionProc;

    Tcl_DriverWatchProc *watchProc;

    Tcl_DriverGetHandleProc *getHandleProc;


    Tcl_DriverClose2Proc *close2Proc;



    Tcl_DriverBlockModeProc *blockModeProc;





    Tcl_DriverFlushProc *flushProc;

    Tcl_DriverHandlerProc *handlerProc;


} Tcl_ChannelType;
# 1301 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef enum Tcl_PathType {
    TCL_PATH_ABSOLUTE,
    TCL_PATH_RELATIVE,
    TCL_PATH_VOLUME_RELATIVE
} Tcl_PathType;






typedef struct Tcl_NotifierProcs {
    Tcl_SetTimerProc *setTimerProc;
    Tcl_WaitForEventProc *waitForEventProc;
    Tcl_CreateFileHandlerProc *createFileHandlerProc;
    Tcl_DeleteFileHandlerProc *deleteFileHandlerProc;
} Tcl_NotifierProcs;






typedef struct Tcl_EncodingType {
    const char *encodingName;


    Tcl_EncodingConvertProc *toUtfProc;


    Tcl_EncodingConvertProc *fromUtfProc;


    Tcl_EncodingFreeProc *freeProc;


    ClientData clientData;

    int nullSize;




} Tcl_EncodingType;
# 1395 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_Token {
    int type;

    char *start;
    int size;
    int numComponents;




} Tcl_Token;
# 1514 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_Parse {
    char *commentStart;


    int commentSize;



    char *commandStart;
    int commandSize;



    int numWords;

    Tcl_Token *tokenPtr;




    int numTokens;
    int tokensAvailable;

    int errorType;
# 1546 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
    char *string;

    char *end;

    Tcl_Interp *interp;

    char *term;





    int incomplete;



    Tcl_Token staticTokens[20];





} Tcl_Parse;
# 1618 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef unsigned short Tcl_UniChar;
# 1661 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
extern char * Tcl_InitStubs (Tcl_Interp *interp, char *version, int exact);
# 1681 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclDecls.h" 1
# 30 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclDecls.h"
extern int Tcl_PkgProvideEx (Tcl_Interp * interp, char * name, char * version, ClientData clientData);



extern char * Tcl_PkgRequireEx (Tcl_Interp * interp, char * name, char * version, int exact, ClientData * clientDataPtr);



extern void Tcl_Panic (char * format, ...);

extern char * Tcl_Alloc (unsigned int size);

extern void Tcl_Free (char * ptr);

extern char * Tcl_Realloc (char * ptr, unsigned int size);


extern char * Tcl_DbCkalloc (unsigned int size, char * file, int line);


extern int Tcl_DbCkfree (char * ptr, char * file, int line);


extern char * Tcl_DbCkrealloc (char * ptr, unsigned int size, char * file, int line);



extern void Tcl_CreateFileHandler (int fd, int mask, Tcl_FileProc * proc, ClientData clientData);




extern void Tcl_DeleteFileHandler (int fd);


extern void Tcl_SetTimer (Tcl_Time * timePtr);

extern void Tcl_Sleep (int ms);

extern int Tcl_WaitForEvent (Tcl_Time * timePtr);

extern int Tcl_AppendAllObjTypes ( Tcl_Interp * interp, Tcl_Obj * objPtr);


extern void Tcl_AppendStringsToObj (Tcl_Obj * objPtr, ...);

extern void Tcl_AppendToObj (Tcl_Obj * objPtr, char * bytes, int length);


extern Tcl_Obj * Tcl_ConcatObj (int objc, Tcl_Obj *const objv[]);


extern int Tcl_ConvertToType (Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_ObjType * typePtr);


extern void Tcl_DbDecrRefCount (Tcl_Obj * objPtr, char * file, int line);


extern void Tcl_DbIncrRefCount (Tcl_Obj * objPtr, char * file, int line);


extern int Tcl_DbIsShared (Tcl_Obj * objPtr, char * file, int line);


extern Tcl_Obj * Tcl_DbNewBooleanObj (int boolValue, char * file, int line);


extern Tcl_Obj * Tcl_DbNewByteArrayObj ( unsigned char * bytes, int length, char * file, int line);



extern Tcl_Obj * Tcl_DbNewDoubleObj (double doubleValue, char * file, int line);


extern Tcl_Obj * Tcl_DbNewListObj (int objc, Tcl_Obj *const objv[], char * file, int line);


extern Tcl_Obj * Tcl_DbNewLongObj (long longValue, char * file, int line);


extern Tcl_Obj * Tcl_DbNewObj (char * file, int line);

extern Tcl_Obj * Tcl_DbNewStringObj (const char * bytes, int length, char * file, int line);


extern Tcl_Obj * Tcl_DuplicateObj (Tcl_Obj * objPtr);

extern void TclFreeObj (Tcl_Obj * objPtr);

extern int Tcl_GetBoolean (Tcl_Interp * interp, char * str, int * boolPtr);


extern int Tcl_GetBooleanFromObj ( Tcl_Interp * interp, Tcl_Obj * objPtr, int * boolPtr);



extern unsigned char * Tcl_GetByteArrayFromObj ( Tcl_Obj * objPtr, int * lengthPtr);


extern int Tcl_GetDouble (Tcl_Interp * interp, char * str, double * doublePtr);


extern int Tcl_GetDoubleFromObj ( Tcl_Interp * interp, Tcl_Obj * objPtr, double * doublePtr);



extern int Tcl_GetIndexFromObj (Tcl_Interp * interp, Tcl_Obj * objPtr, char ** tablePtr, char * msg, int flags, int * indexPtr);



extern int Tcl_GetInt (Tcl_Interp * interp, char * str, int * intPtr);


extern int Tcl_GetIntFromObj (Tcl_Interp * interp, Tcl_Obj * objPtr, int * intPtr);


extern int Tcl_GetLongFromObj (Tcl_Interp * interp, Tcl_Obj * objPtr, long * longPtr);


extern Tcl_ObjType * Tcl_GetObjType (char * typeName);

extern char * Tcl_GetStringFromObj (Tcl_Obj * objPtr, int * lengthPtr);


extern void Tcl_InvalidateStringRep ( Tcl_Obj * objPtr);


extern int Tcl_ListObjAppendList ( Tcl_Interp * interp, Tcl_Obj * listPtr, Tcl_Obj * elemListPtr);



extern int Tcl_ListObjAppendElement ( Tcl_Interp * interp, Tcl_Obj * listPtr, Tcl_Obj * objPtr);



extern int Tcl_ListObjGetElements ( Tcl_Interp * interp, Tcl_Obj * listPtr, int * objcPtr, Tcl_Obj *** objvPtr);



extern int Tcl_ListObjIndex (Tcl_Interp * interp, Tcl_Obj * listPtr, int index, Tcl_Obj ** objPtrPtr);



extern int Tcl_ListObjLength (Tcl_Interp * interp, Tcl_Obj * listPtr, int * intPtr);


extern int Tcl_ListObjReplace (Tcl_Interp * interp, Tcl_Obj * listPtr, int first, int count, int objc, Tcl_Obj *const objv[]);



extern Tcl_Obj * Tcl_NewBooleanObj (int boolValue);

extern Tcl_Obj * Tcl_NewByteArrayObj ( unsigned char * bytes, int length);


extern Tcl_Obj * Tcl_NewDoubleObj (double doubleValue);

extern Tcl_Obj * Tcl_NewIntObj (int intValue);

extern Tcl_Obj * Tcl_NewListObj (int objc, Tcl_Obj *const objv[]);


extern Tcl_Obj * Tcl_NewLongObj (long longValue);

extern Tcl_Obj * Tcl_NewObj (void);

extern Tcl_Obj * Tcl_NewStringObj (const char * bytes, int length);


extern void Tcl_SetBooleanObj (Tcl_Obj * objPtr, int boolValue);


extern unsigned char * Tcl_SetByteArrayLength (Tcl_Obj * objPtr, int length);


extern void Tcl_SetByteArrayObj (Tcl_Obj * objPtr, unsigned char * bytes, int length);


extern void Tcl_SetDoubleObj (Tcl_Obj * objPtr, double doubleValue);


extern void Tcl_SetIntObj (Tcl_Obj * objPtr, int intValue);


extern void Tcl_SetListObj (Tcl_Obj * objPtr, int objc, Tcl_Obj *const objv[]);


extern void Tcl_SetLongObj (Tcl_Obj * objPtr, long longValue);


extern void Tcl_SetObjLength (Tcl_Obj * objPtr, int length);


extern void Tcl_SetStringObj (Tcl_Obj * objPtr, char * bytes, int length);


extern void Tcl_AddErrorInfo (Tcl_Interp * interp, const char * message);


extern void Tcl_AddObjErrorInfo (Tcl_Interp * interp, const char * message, int length);


extern void Tcl_AllowExceptions (Tcl_Interp * interp);

extern void Tcl_AppendElement (Tcl_Interp * interp, const char * string);


extern void Tcl_AppendResult (Tcl_Interp * interp, ...);

extern Tcl_AsyncHandler Tcl_AsyncCreate (Tcl_AsyncProc * proc, ClientData clientData);


extern void Tcl_AsyncDelete (Tcl_AsyncHandler async);

extern int Tcl_AsyncInvoke (Tcl_Interp * interp, int code);


extern void Tcl_AsyncMark (Tcl_AsyncHandler async);

extern int Tcl_AsyncReady (void);

extern void Tcl_BackgroundError (Tcl_Interp * interp);

extern char Tcl_Backslash (const char * src, int * readPtr);


extern int Tcl_BadChannelOption ( Tcl_Interp * interp, char * optionName, char * optionList);



extern void Tcl_CallWhenDeleted (Tcl_Interp * interp, Tcl_InterpDeleteProc * proc, ClientData clientData);



extern void Tcl_CancelIdleCall ( Tcl_IdleProc * idleProc, ClientData clientData);



extern int Tcl_Close (Tcl_Interp * interp, Tcl_Channel chan);


extern int Tcl_CommandComplete (char * cmd);

extern char * Tcl_Concat (int argc, char ** argv);

extern int Tcl_ConvertElement (const char * src, char * dst, int flags);


extern int Tcl_ConvertCountedElement ( const char * src, int length, char * dst, int flags);



extern int Tcl_CreateAlias (Tcl_Interp * slave, char * slaveCmd, Tcl_Interp * target, char * targetCmd, int argc, char ** argv);



extern int Tcl_CreateAliasObj (Tcl_Interp * slave, char * slaveCmd, Tcl_Interp * target, char * targetCmd, int objc, Tcl_Obj *const objv[]);




extern Tcl_Channel Tcl_CreateChannel ( Tcl_ChannelType * typePtr, char * chanName, ClientData instanceData, int mask);



extern void Tcl_CreateChannelHandler ( Tcl_Channel chan, int mask, Tcl_ChannelProc * proc, ClientData clientData);




extern void Tcl_CreateCloseHandler (Tcl_Channel chan, Tcl_CloseProc * proc, ClientData clientData);


extern Tcl_Command Tcl_CreateCommand (Tcl_Interp * interp, char * cmdName, Tcl_CmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc * deleteProc);




extern void Tcl_CreateEventSource ( Tcl_EventSetupProc * setupProc, Tcl_EventCheckProc * checkProc, ClientData clientData);




extern void Tcl_CreateExitHandler ( Tcl_ExitProc * proc, ClientData clientData);


extern Tcl_Interp * Tcl_CreateInterp (void);

extern void Tcl_CreateMathFunc (Tcl_Interp * interp, char * name, int numArgs, Tcl_ValueType * argTypes, Tcl_MathProc * proc, ClientData clientData);




extern Tcl_Command Tcl_CreateObjCommand ( Tcl_Interp * interp, char * cmdName, Tcl_ObjCmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc * deleteProc);




extern Tcl_Interp * Tcl_CreateSlave (Tcl_Interp * interp, char * slaveName, int isSafe);


extern Tcl_TimerToken Tcl_CreateTimerHandler (int milliseconds, Tcl_TimerProc * proc, ClientData clientData);


extern Tcl_Trace Tcl_CreateTrace (Tcl_Interp * interp, int level, Tcl_CmdTraceProc * proc, ClientData clientData);



extern void Tcl_DeleteAssocData (Tcl_Interp * interp, char * name);


extern void Tcl_DeleteChannelHandler ( Tcl_Channel chan, Tcl_ChannelProc * proc, ClientData clientData);



extern void Tcl_DeleteCloseHandler (Tcl_Channel chan, Tcl_CloseProc * proc, ClientData clientData);


extern int Tcl_DeleteCommand (Tcl_Interp * interp, char * cmdName);


extern int Tcl_DeleteCommandFromToken ( Tcl_Interp * interp, Tcl_Command command);


extern void Tcl_DeleteEvents ( Tcl_EventDeleteProc * proc, ClientData clientData);



extern void Tcl_DeleteEventSource ( Tcl_EventSetupProc * setupProc, Tcl_EventCheckProc * checkProc, ClientData clientData);




extern void Tcl_DeleteExitHandler ( Tcl_ExitProc * proc, ClientData clientData);


extern void Tcl_DeleteHashEntry ( Tcl_HashEntry * entryPtr);


extern void Tcl_DeleteHashTable ( Tcl_HashTable * tablePtr);


extern void Tcl_DeleteInterp (Tcl_Interp * interp);


extern void Tcl_DetachPids (int numPids, Tcl_Pid * pidPtr);
# 384 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclDecls.h"
extern void Tcl_DeleteTimerHandler ( Tcl_TimerToken token);


extern void Tcl_DeleteTrace (Tcl_Interp * interp, Tcl_Trace trace);


extern void Tcl_DontCallWhenDeleted ( Tcl_Interp * interp, Tcl_InterpDeleteProc * proc, ClientData clientData);




extern int Tcl_DoOneEvent (int flags);

extern void Tcl_DoWhenIdle (Tcl_IdleProc * proc, ClientData clientData);


extern char * Tcl_DStringAppend (Tcl_DString * dsPtr, const char * str, int length);


extern char * Tcl_DStringAppendElement ( Tcl_DString * dsPtr, const char * string);


extern void Tcl_DStringEndSublist ( Tcl_DString * dsPtr);


extern void Tcl_DStringFree (Tcl_DString * dsPtr);

extern void Tcl_DStringGetResult ( Tcl_Interp * interp, Tcl_DString * dsPtr);


extern void Tcl_DStringInit (Tcl_DString * dsPtr);

extern void Tcl_DStringResult (Tcl_Interp * interp, Tcl_DString * dsPtr);


extern void Tcl_DStringSetLength ( Tcl_DString * dsPtr, int length);


extern void Tcl_DStringStartSublist ( Tcl_DString * dsPtr);


extern int Tcl_Eof (Tcl_Channel chan);

extern char * Tcl_ErrnoId (void);

extern char * Tcl_ErrnoMsg (int err);

extern int Tcl_Eval (Tcl_Interp * interp, char * string);


extern int Tcl_EvalFile (Tcl_Interp * interp, char * fileName);


extern int Tcl_EvalObj (Tcl_Interp * interp, Tcl_Obj * objPtr);


extern void Tcl_EventuallyFree ( ClientData clientData, Tcl_FreeProc * freeProc);



extern void Tcl_Exit (int status);

extern int Tcl_ExposeCommand (Tcl_Interp * interp, char * hiddenCmdToken, char * cmdName);


extern int Tcl_ExprBoolean (Tcl_Interp * interp, char * str, int * ptr);


extern int Tcl_ExprBooleanObj (Tcl_Interp * interp, Tcl_Obj * objPtr, int * ptr);


extern int Tcl_ExprDouble (Tcl_Interp * interp, char * str, double * ptr);


extern int Tcl_ExprDoubleObj (Tcl_Interp * interp, Tcl_Obj * objPtr, double * ptr);


extern int Tcl_ExprLong (Tcl_Interp * interp, char * str, long * ptr);


extern int Tcl_ExprLongObj (Tcl_Interp * interp, Tcl_Obj * objPtr, long * ptr);


extern int Tcl_ExprObj (Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_Obj ** resultPtrPtr);


extern int Tcl_ExprString (Tcl_Interp * interp, char * string);


extern void Tcl_Finalize (void);

extern void Tcl_FindExecutable (const char * argv0);

extern Tcl_HashEntry * Tcl_FirstHashEntry ( Tcl_HashTable * tablePtr, Tcl_HashSearch * searchPtr);



extern int Tcl_Flush (Tcl_Channel chan);

extern void Tcl_FreeResult (Tcl_Interp * interp);

extern int Tcl_GetAlias (Tcl_Interp * interp, char * slaveCmd, Tcl_Interp ** targetInterpPtr, char ** targetCmdPtr, int * argcPtr, char *** argvPtr);





extern int Tcl_GetAliasObj (Tcl_Interp * interp, char * slaveCmd, Tcl_Interp ** targetInterpPtr, char ** targetCmdPtr, int * objcPtr, Tcl_Obj *** objv);





extern ClientData Tcl_GetAssocData (Tcl_Interp * interp, char * name, Tcl_InterpDeleteProc ** procPtr);


extern Tcl_Channel Tcl_GetChannel (Tcl_Interp * interp, char * chanName, int * modePtr);


extern int Tcl_GetChannelBufferSize ( Tcl_Channel chan);


extern int Tcl_GetChannelHandle (Tcl_Channel chan, int direction, ClientData * handlePtr);


extern ClientData Tcl_GetChannelInstanceData ( Tcl_Channel chan);


extern int Tcl_GetChannelMode (Tcl_Channel chan);

extern char * Tcl_GetChannelName (Tcl_Channel chan);

extern int Tcl_GetChannelOption ( Tcl_Interp * interp, Tcl_Channel chan, char * optionName, Tcl_DString * dsPtr);



extern Tcl_ChannelType * Tcl_GetChannelType (Tcl_Channel chan);

extern int Tcl_GetCommandInfo (Tcl_Interp * interp, char * cmdName, Tcl_CmdInfo * infoPtr);


extern char * Tcl_GetCommandName (Tcl_Interp * interp, Tcl_Command command);


extern int Tcl_GetErrno (void);

extern char * Tcl_GetHostName (void);

extern int Tcl_GetInterpPath ( Tcl_Interp * askInterp, Tcl_Interp * slaveInterp);



extern Tcl_Interp * Tcl_GetMaster (Tcl_Interp * interp);

extern const char * Tcl_GetNameOfExecutable (void);

extern Tcl_Obj * Tcl_GetObjResult (Tcl_Interp * interp);


extern int Tcl_GetOpenFile (Tcl_Interp * interp, char * str, int forWriting, int checkUsage, ClientData * filePtr);




extern Tcl_PathType Tcl_GetPathType (char * path);

extern int Tcl_Gets (Tcl_Channel chan, Tcl_DString * dsPtr);


extern int Tcl_GetsObj (Tcl_Channel chan, Tcl_Obj * objPtr);


extern int Tcl_GetServiceMode (void);

extern Tcl_Interp * Tcl_GetSlave (Tcl_Interp * interp, char * slaveName);


extern Tcl_Channel Tcl_GetStdChannel (int type);

extern char * Tcl_GetStringResult (Tcl_Interp * interp);

extern char * Tcl_GetVar (Tcl_Interp * interp, char * varName, int flags);


extern char * Tcl_GetVar2 (Tcl_Interp * interp, char * part1, char * part2, int flags);


extern int Tcl_GlobalEval (Tcl_Interp * interp, char * command);


extern int Tcl_GlobalEvalObj (Tcl_Interp * interp, Tcl_Obj * objPtr);


extern int Tcl_HideCommand (Tcl_Interp * interp, char * cmdName, char * hiddenCmdToken);


extern int Tcl_Init (Tcl_Interp * interp);

extern void Tcl_InitHashTable ( Tcl_HashTable * tablePtr, int keyType);


extern int Tcl_InputBlocked (Tcl_Channel chan);

extern int Tcl_InputBuffered (Tcl_Channel chan);

extern int Tcl_InterpDeleted (Tcl_Interp * interp);

extern int Tcl_IsSafe (Tcl_Interp * interp);

extern char * Tcl_JoinPath (int argc, char ** argv, Tcl_DString * resultPtr);


extern int Tcl_LinkVar (Tcl_Interp * interp, char * varName, char * addr, int type);



extern Tcl_Channel Tcl_MakeFileChannel (ClientData handle, int mode);


extern int Tcl_MakeSafe (Tcl_Interp * interp);

extern Tcl_Channel Tcl_MakeTcpClientChannel ( ClientData tcpSocket);


extern char * Tcl_Merge (int argc, char ** argv);

extern Tcl_HashEntry * Tcl_NextHashEntry ( Tcl_HashSearch * searchPtr);


extern void Tcl_NotifyChannel (Tcl_Channel channel, int mask);


extern Tcl_Obj * Tcl_ObjGetVar2 (Tcl_Interp * interp, Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, int flags);



extern Tcl_Obj * Tcl_ObjSetVar2 (Tcl_Interp * interp, Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, Tcl_Obj * newValuePtr, int flags);




extern Tcl_Channel Tcl_OpenCommandChannel ( Tcl_Interp * interp, int argc, char ** argv, int flags);
# 636 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclDecls.h"
extern Tcl_Channel Tcl_OpenFileChannel (Tcl_Interp * interp, char * fileName, char * modeString, int permissions);



extern Tcl_Channel Tcl_OpenTcpClient (Tcl_Interp * interp, int port, char * address, char * myaddr, int myport, int async);



extern Tcl_Channel Tcl_OpenTcpServer (Tcl_Interp * interp, int port, char * host, Tcl_TcpAcceptProc * acceptProc, ClientData callbackData);




extern void Tcl_Preserve (ClientData data);

extern void Tcl_PrintDouble (Tcl_Interp * interp, double value, char * dst);


extern int Tcl_PutEnv (const char * string);

extern char * Tcl_PosixError (Tcl_Interp * interp);

extern void Tcl_QueueEvent (Tcl_Event * evPtr, Tcl_QueuePosition position);


extern int Tcl_Read (Tcl_Channel chan, char * bufPtr, int toRead);



extern void Tcl_ReapDetachedProcs (void);






extern int Tcl_RecordAndEval (Tcl_Interp * interp, char * cmd, int flags);


extern int Tcl_RecordAndEvalObj ( Tcl_Interp * interp, Tcl_Obj * cmdPtr, int flags);



extern void Tcl_RegisterChannel (Tcl_Interp * interp, Tcl_Channel chan);


extern void Tcl_RegisterObjType ( Tcl_ObjType * typePtr);


extern Tcl_RegExp Tcl_RegExpCompile (Tcl_Interp * interp, char * string);


extern int Tcl_RegExpExec (Tcl_Interp * interp, Tcl_RegExp regexp, const char * str, const char * start);



extern int Tcl_RegExpMatch (Tcl_Interp * interp, char * str, char * pattern);


extern void Tcl_RegExpRange (Tcl_RegExp regexp, int index, char ** startPtr, char ** endPtr);


extern void Tcl_Release (ClientData clientData);

extern void Tcl_ResetResult (Tcl_Interp * interp);

extern int Tcl_ScanElement (const char * str, int * flagPtr);


extern int Tcl_ScanCountedElement (const char * str, int length, int * flagPtr);


extern int Tcl_Seek (Tcl_Channel chan, int offset, int mode);


extern int Tcl_ServiceAll (void);

extern int Tcl_ServiceEvent (int flags);

extern void Tcl_SetAssocData (Tcl_Interp * interp, char * name, Tcl_InterpDeleteProc * proc, ClientData clientData);



extern void Tcl_SetChannelBufferSize ( Tcl_Channel chan, int sz);


extern int Tcl_SetChannelOption ( Tcl_Interp * interp, Tcl_Channel chan, char * optionName, char * newValue);



extern int Tcl_SetCommandInfo (Tcl_Interp * interp, char * cmdName, Tcl_CmdInfo * infoPtr);


extern void Tcl_SetErrno (int err);

extern void Tcl_SetErrorCode (Tcl_Interp * interp, ...);

extern void Tcl_SetMaxBlockTime (Tcl_Time * timePtr);

extern void Tcl_SetPanicProc ( Tcl_PanicProc * panicProc);


extern int Tcl_SetRecursionLimit ( Tcl_Interp * interp, int depth);


extern void Tcl_SetResult (Tcl_Interp * interp, char * str, Tcl_FreeProc * freeProc);


extern int Tcl_SetServiceMode (int mode);

extern void Tcl_SetObjErrorCode (Tcl_Interp * interp, Tcl_Obj * errorObjPtr);


extern void Tcl_SetObjResult (Tcl_Interp * interp, Tcl_Obj * resultObjPtr);


extern void Tcl_SetStdChannel (Tcl_Channel channel, int type);


extern char * Tcl_SetVar (Tcl_Interp * interp, char * varName, char * newValue, int flags);


extern char * Tcl_SetVar2 (Tcl_Interp * interp, char * part1, char * part2, char * newValue, int flags);



extern char * Tcl_SignalId (int sig);

extern char * Tcl_SignalMsg (int sig);

extern void Tcl_SourceRCFile (Tcl_Interp * interp);

extern int Tcl_SplitList (Tcl_Interp * interp, const char * listStr, int * argcPtr, char *** argvPtr);



extern void Tcl_SplitPath (const char * path, int * argcPtr, char *** argvPtr);


extern void Tcl_StaticPackage (Tcl_Interp * interp, char * pkgName, Tcl_PackageInitProc * initProc, Tcl_PackageInitProc * safeInitProc);




extern int Tcl_StringMatch (const char * str, const char * pattern);


extern int Tcl_Tell (Tcl_Channel chan);

extern int Tcl_TraceVar (Tcl_Interp * interp, char * varName, int flags, Tcl_VarTraceProc * proc, ClientData clientData);




extern int Tcl_TraceVar2 (Tcl_Interp * interp, char * part1, char * part2, int flags, Tcl_VarTraceProc * proc, ClientData clientData);




extern char * Tcl_TranslateFileName ( Tcl_Interp * interp, char * name, Tcl_DString * bufferPtr);



extern int Tcl_Ungets (Tcl_Channel chan, char * str, int len, int atHead);


extern void Tcl_UnlinkVar (Tcl_Interp * interp, char * varName);


extern int Tcl_UnregisterChannel ( Tcl_Interp * interp, Tcl_Channel chan);


extern int Tcl_UnsetVar (Tcl_Interp * interp, char * varName, int flags);


extern int Tcl_UnsetVar2 (Tcl_Interp * interp, char * part1, char * part2, int flags);


extern void Tcl_UntraceVar (Tcl_Interp * interp, char * varName, int flags, Tcl_VarTraceProc * proc, ClientData clientData);




extern void Tcl_UntraceVar2 (Tcl_Interp * interp, char * part1, char * part2, int flags, Tcl_VarTraceProc * proc, ClientData clientData);




extern void Tcl_UpdateLinkedVar (Tcl_Interp * interp, char * varName);


extern int Tcl_UpVar (Tcl_Interp * interp, char * frameName, char * varName, char * localName, int flags);



extern int Tcl_UpVar2 (Tcl_Interp * interp, char * frameName, char * part1, char * part2, char * localName, int flags);



extern int Tcl_VarEval (Tcl_Interp * interp, ...);

extern ClientData Tcl_VarTraceInfo (Tcl_Interp * interp, char * varName, int flags, Tcl_VarTraceProc * procPtr, ClientData prevClientData);




extern ClientData Tcl_VarTraceInfo2 (Tcl_Interp * interp, char * part1, char * part2, int flags, Tcl_VarTraceProc * procPtr, ClientData prevClientData);




extern int Tcl_Write (Tcl_Channel chan, char * s, int slen);


extern void Tcl_WrongNumArgs (Tcl_Interp * interp, int objc, Tcl_Obj *const objv[], char * message);



extern int Tcl_DumpActiveMemory (char * fileName);

extern void Tcl_ValidateAllMemory (char * file, int line);


extern void Tcl_AppendResultVA (Tcl_Interp * interp, va_list argList);


extern void Tcl_AppendStringsToObjVA ( Tcl_Obj * objPtr, va_list argList);


extern char * Tcl_HashStats (Tcl_HashTable * tablePtr);

extern char * Tcl_ParseVar (Tcl_Interp * interp, char * str, char ** termPtr);


extern char * Tcl_PkgPresent (Tcl_Interp * interp, char * name, char * version, int exact);


extern char * Tcl_PkgPresentEx (Tcl_Interp * interp, char * name, char * version, int exact, ClientData * clientDataPtr);



extern int Tcl_PkgProvide (Tcl_Interp * interp, char * name, char * version);


extern char * Tcl_PkgRequire (Tcl_Interp * interp, char * name, char * version, int exact);


extern void Tcl_SetErrorCodeVA (Tcl_Interp * interp, va_list argList);


extern int Tcl_VarEvalVA (Tcl_Interp * interp, va_list argList);


extern Tcl_Pid Tcl_WaitPid (Tcl_Pid pid, int * statPtr, int options);



extern void Tcl_PanicVA (char * format, va_list argList);
# 902 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclDecls.h"
extern void Tcl_GetVersion (int * major, int * minor, int * patchLevel, int * type);


extern void Tcl_InitMemory (Tcl_Interp * interp);

extern Tcl_Channel Tcl_StackChannel (Tcl_Interp * interp, Tcl_ChannelType * typePtr, ClientData instanceData, int mask, Tcl_Channel prevChan);




extern int Tcl_UnstackChannel (Tcl_Interp * interp, Tcl_Channel chan);


extern Tcl_Channel Tcl_GetStackedChannel (Tcl_Channel chan);



extern void Tcl_AppendObjToObj (Tcl_Obj * objPtr, Tcl_Obj * appendObjPtr);


extern Tcl_Encoding Tcl_CreateEncoding ( Tcl_EncodingType * typePtr);


extern void Tcl_CreateThreadExitHandler ( Tcl_ExitProc * proc, ClientData clientData);


extern void Tcl_DeleteThreadExitHandler ( Tcl_ExitProc * proc, ClientData clientData);


extern void Tcl_DiscardResult ( Tcl_SavedResult * statePtr);


extern int Tcl_EvalEx (Tcl_Interp * interp, char * script, int numBytes, int flags);


extern int Tcl_EvalObjv (Tcl_Interp * interp, int objc, Tcl_Obj *const objv[], int flags);


extern int Tcl_EvalObjEx (Tcl_Interp * interp, Tcl_Obj * objPtr, int flags);


extern void Tcl_ExitThread (int status);

extern int Tcl_ExternalToUtf (Tcl_Interp * interp, Tcl_Encoding encoding, const char * src, int srcLen, int flags, Tcl_EncodingState * statePtr, char * dst, int dstLen, int * srcReadPtr, int * dstWrotePtr, int * dstCharsPtr);






extern char * Tcl_ExternalToUtfDString ( Tcl_Encoding encoding, const char * src, int srcLen, Tcl_DString * dsPtr);



extern void Tcl_FinalizeThread (void);

extern void Tcl_FinalizeNotifier ( ClientData clientData);


extern void Tcl_FreeEncoding (Tcl_Encoding encoding);

extern Tcl_ThreadId Tcl_GetCurrentThread (void);

extern Tcl_Encoding Tcl_GetEncoding (Tcl_Interp * interp, const char * name);


extern char * Tcl_GetEncodingName ( Tcl_Encoding encoding);


extern void Tcl_GetEncodingNames ( Tcl_Interp * interp);


extern int Tcl_GetIndexFromObjStruct ( Tcl_Interp * interp, Tcl_Obj * objPtr, char ** tablePtr, int offset, char * msg, int flags, int * indexPtr);




extern void * Tcl_GetThreadData ( Tcl_ThreadDataKey * keyPtr, int size);


extern Tcl_Obj * Tcl_GetVar2Ex (Tcl_Interp * interp, char * part1, char * part2, int flags);


extern ClientData Tcl_InitNotifier (void);

extern void Tcl_MutexLock (Tcl_Mutex * mutexPtr);

extern void Tcl_MutexUnlock (Tcl_Mutex * mutexPtr);

extern void Tcl_ConditionNotify ( Tcl_Condition * condPtr);


extern void Tcl_ConditionWait ( Tcl_Condition * condPtr, Tcl_Mutex * mutexPtr, Tcl_Time * timePtr);



extern int Tcl_NumUtfChars (const char * src, int len);


extern int Tcl_ReadChars (Tcl_Channel channel, Tcl_Obj * objPtr, int charsToRead, int appendFlag);



extern void Tcl_RestoreResult (Tcl_Interp * interp, Tcl_SavedResult * statePtr);


extern void Tcl_SaveResult (Tcl_Interp * interp, Tcl_SavedResult * statePtr);


extern int Tcl_SetSystemEncoding ( Tcl_Interp * interp, const char * name);


extern Tcl_Obj * Tcl_SetVar2Ex (Tcl_Interp * interp, char * part1, char * part2, Tcl_Obj * newValuePtr, int flags);



extern void Tcl_ThreadAlert (Tcl_ThreadId threadId);

extern void Tcl_ThreadQueueEvent ( Tcl_ThreadId threadId, Tcl_Event* evPtr, Tcl_QueuePosition position);



extern Tcl_UniChar Tcl_UniCharAtIndex (const char * src, int index);


extern Tcl_UniChar Tcl_UniCharToLower (int ch);

extern Tcl_UniChar Tcl_UniCharToTitle (int ch);

extern Tcl_UniChar Tcl_UniCharToUpper (int ch);

extern int Tcl_UniCharToUtf (int ch, char * buf);

extern char * Tcl_UtfAtIndex (const char * src, int index);


extern int Tcl_UtfCharComplete (const char * src, int len);


extern int Tcl_UtfBackslash (const char * src, int * readPtr, char * dst);


extern char * Tcl_UtfFindFirst (const char * src, int ch);


extern char * Tcl_UtfFindLast (const char * src, int ch);


extern char * Tcl_UtfNext (const char * src);

extern char * Tcl_UtfPrev (const char * src, const char * start);


extern int Tcl_UtfToExternal (Tcl_Interp * interp, Tcl_Encoding encoding, const char * src, int srcLen, int flags, Tcl_EncodingState * statePtr, char * dst, int dstLen, int * srcReadPtr, int * dstWrotePtr, int * dstCharsPtr);






extern char * Tcl_UtfToExternalDString ( Tcl_Encoding encoding, const char * src, int srcLen, Tcl_DString * dsPtr);



extern int Tcl_UtfToLower (char * src);

extern int Tcl_UtfToTitle (char * src);

extern int Tcl_UtfToUniChar (const char * src, Tcl_UniChar * chPtr);


extern int Tcl_UtfToUpper (char * src);

extern int Tcl_WriteChars (Tcl_Channel chan, const char * src, int srcLen);


extern int Tcl_WriteObj (Tcl_Channel chan, Tcl_Obj * objPtr);


extern char * Tcl_GetString (Tcl_Obj * objPtr);

extern char * Tcl_GetDefaultEncodingDir (void);

extern void Tcl_SetDefaultEncodingDir (char * path);

extern void Tcl_AlertNotifier (ClientData clientData);

extern void Tcl_ServiceModeHook (int mode);

extern int Tcl_UniCharIsAlnum (int ch);

extern int Tcl_UniCharIsAlpha (int ch);

extern int Tcl_UniCharIsDigit (int ch);

extern int Tcl_UniCharIsLower (int ch);

extern int Tcl_UniCharIsSpace (int ch);

extern int Tcl_UniCharIsUpper (int ch);

extern int Tcl_UniCharIsWordChar (int ch);

extern int Tcl_UniCharLen (Tcl_UniChar * str);

extern int Tcl_UniCharNcmp (const Tcl_UniChar * cs, const Tcl_UniChar * ct, unsigned long n);


extern char * Tcl_UniCharToUtfDString ( const Tcl_UniChar * string, int numChars, Tcl_DString * dsPtr);



extern Tcl_UniChar * Tcl_UtfToUniCharDString ( const char * string, int length, Tcl_DString * dsPtr);



extern Tcl_RegExp Tcl_GetRegExpFromObj ( Tcl_Interp * interp, Tcl_Obj * patObj, int flags);



extern Tcl_Obj * Tcl_EvalTokens (Tcl_Interp * interp, Tcl_Token * tokenPtr, int count);


extern void Tcl_FreeParse (Tcl_Parse * parsePtr);

extern void Tcl_LogCommandInfo (Tcl_Interp * interp, char * script, char * command, int length);


extern int Tcl_ParseBraces (Tcl_Interp * interp, char * string, int numBytes, Tcl_Parse * parsePtr, int append, char ** termPtr);




extern int Tcl_ParseCommand (Tcl_Interp * interp, char * string, int numBytes, int nested, Tcl_Parse * parsePtr);



extern int Tcl_ParseExpr (Tcl_Interp * interp, char * string, int numBytes, Tcl_Parse * parsePtr);



extern int Tcl_ParseQuotedString ( Tcl_Interp * interp, char * string, int numBytes, Tcl_Parse * parsePtr, int append, char ** termPtr);




extern int Tcl_ParseVarName (Tcl_Interp * interp, char * string, int numBytes, Tcl_Parse * parsePtr, int append);



extern char * Tcl_GetCwd (Tcl_Interp * interp, Tcl_DString * cwdPtr);


extern int Tcl_Chdir (const char * dirName);

extern int Tcl_Access (const char * path, int mode);

extern int Tcl_Stat (const char * path, struct stat * bufPtr);


extern int Tcl_UtfNcmp (const char * s1, const char * s2, unsigned long n);


extern int Tcl_UtfNcasecmp (const char * s1, const char * s2, unsigned long n);


extern int Tcl_StringCaseMatch (const char * str, const char * pattern, int nocase);


extern int Tcl_UniCharIsControl (int ch);

extern int Tcl_UniCharIsGraph (int ch);

extern int Tcl_UniCharIsPrint (int ch);

extern int Tcl_UniCharIsPunct (int ch);

extern int Tcl_RegExpExecObj (Tcl_Interp * interp, Tcl_RegExp regexp, Tcl_Obj * objPtr, int offset, int nmatches, int flags);



extern void Tcl_RegExpGetInfo (Tcl_RegExp regexp, Tcl_RegExpInfo * infoPtr);


extern Tcl_Obj * Tcl_NewUnicodeObj (Tcl_UniChar * unicode, int numChars);


extern void Tcl_SetUnicodeObj (Tcl_Obj * objPtr, Tcl_UniChar * unicode, int numChars);


extern int Tcl_GetCharLength (Tcl_Obj * objPtr);

extern Tcl_UniChar Tcl_GetUniChar (Tcl_Obj * objPtr, int index);


extern Tcl_UniChar * Tcl_GetUnicode (Tcl_Obj * objPtr);

extern Tcl_Obj * Tcl_GetRange (Tcl_Obj * objPtr, int first, int last);


extern void Tcl_AppendUnicodeToObj (Tcl_Obj * objPtr, Tcl_UniChar * unicode, int length);


extern int Tcl_RegExpMatchObj (Tcl_Interp * interp, Tcl_Obj * stringObj, Tcl_Obj * patternObj);


extern void Tcl_SetNotifier ( Tcl_NotifierProcs * notifierProcPtr);


extern Tcl_Mutex * Tcl_GetAllocMutex (void);

extern int Tcl_GetChannelNames (Tcl_Interp * interp);

extern int Tcl_GetChannelNamesEx ( Tcl_Interp * interp, char * pattern);


extern int Tcl_ProcObjCmd (ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *const objv[]);



extern void Tcl_ConditionFinalize ( Tcl_Condition * condPtr);


extern void Tcl_MutexFinalize (Tcl_Mutex * mutex);

extern int Tcl_CreateThread (Tcl_ThreadId * idPtr, Tcl_ThreadCreateProc proc, ClientData clientData, int stackSize, int flags);




extern int Tcl_ReadRaw (Tcl_Channel chan, char * dst, int bytesToRead);


extern int Tcl_WriteRaw (Tcl_Channel chan, char * src, int srcLen);


extern Tcl_Channel Tcl_GetTopChannel (Tcl_Channel chan);

extern int Tcl_ChannelBuffered (Tcl_Channel chan);

extern char * Tcl_ChannelName ( Tcl_ChannelType * chanTypePtr);


extern Tcl_ChannelTypeVersion Tcl_ChannelVersion ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverBlockModeProc * Tcl_ChannelBlockModeProc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverCloseProc * Tcl_ChannelCloseProc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverClose2Proc * Tcl_ChannelClose2Proc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverInputProc * Tcl_ChannelInputProc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverOutputProc * Tcl_ChannelOutputProc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverSeekProc * Tcl_ChannelSeekProc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverSetOptionProc * Tcl_ChannelSetOptionProc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverGetOptionProc * Tcl_ChannelGetOptionProc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverWatchProc * Tcl_ChannelWatchProc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverGetHandleProc * Tcl_ChannelGetHandleProc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverFlushProc * Tcl_ChannelFlushProc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverHandlerProc * Tcl_ChannelHandlerProc ( Tcl_ChannelType * chanTypePtr);


typedef struct TclStubHooks {
    struct TclPlatStubs *tclPlatStubs;
    struct TclIntStubs *tclIntStubs;
    struct TclIntPlatStubs *tclIntPlatStubs;
} TclStubHooks;

typedef struct TclStubs {
    int magic;
    struct TclStubHooks *hooks;

    int (*tcl_PkgProvideEx) (Tcl_Interp * interp, char * name, char * version, ClientData clientData);
    char * (*tcl_PkgRequireEx) (Tcl_Interp * interp, char * name, char * version, int exact, ClientData * clientDataPtr);
    void (*tcl_Panic) (char * format, ...);
    char * (*tcl_Alloc) (unsigned int size);
    void (*tcl_Free) (char * ptr);
    char * (*tcl_Realloc) (char * ptr, unsigned int size);
    char * (*tcl_DbCkalloc) (unsigned int size, char * file, int line);
    int (*tcl_DbCkfree) (char * ptr, char * file, int line);
    char * (*tcl_DbCkrealloc) (char * ptr, unsigned int size, char * file, int line);

    void (*tcl_CreateFileHandler) (int fd, int mask, Tcl_FileProc * proc, ClientData clientData);
# 1313 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclDecls.h"
    void (*tcl_DeleteFileHandler) (int fd);







    void (*tcl_SetTimer) (Tcl_Time * timePtr);
    void (*tcl_Sleep) (int ms);
    int (*tcl_WaitForEvent) (Tcl_Time * timePtr);
    int (*tcl_AppendAllObjTypes) (Tcl_Interp * interp, Tcl_Obj * objPtr);
    void (*tcl_AppendStringsToObj) (Tcl_Obj * objPtr, ...);
    void (*tcl_AppendToObj) (Tcl_Obj * objPtr, char * bytes, int length);
    Tcl_Obj * (*tcl_ConcatObj) (int objc, Tcl_Obj *const objv[]);
    int (*tcl_ConvertToType) (Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_ObjType * typePtr);
    void (*tcl_DbDecrRefCount) (Tcl_Obj * objPtr, char * file, int line);
    void (*tcl_DbIncrRefCount) (Tcl_Obj * objPtr, char * file, int line);
    int (*tcl_DbIsShared) (Tcl_Obj * objPtr, char * file, int line);
    Tcl_Obj * (*tcl_DbNewBooleanObj) (int boolValue, char * file, int line);
    Tcl_Obj * (*tcl_DbNewByteArrayObj) (unsigned char * bytes, int length, char * file, int line);
    Tcl_Obj * (*tcl_DbNewDoubleObj) (double doubleValue, char * file, int line);
    Tcl_Obj * (*tcl_DbNewListObj) (int objc, Tcl_Obj *const objv[], char * file, int line);
    Tcl_Obj * (*tcl_DbNewLongObj) (long longValue, char * file, int line);
    Tcl_Obj * (*tcl_DbNewObj) (char * file, int line);
    Tcl_Obj * (*tcl_DbNewStringObj) (const char * bytes, int length, char * file, int line);
    Tcl_Obj * (*tcl_DuplicateObj) (Tcl_Obj * objPtr);
    void (*tclFreeObj) (Tcl_Obj * objPtr);
    int (*tcl_GetBoolean) (Tcl_Interp * interp, char * str, int * boolPtr);
    int (*tcl_GetBooleanFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, int * boolPtr);
    unsigned char * (*tcl_GetByteArrayFromObj) (Tcl_Obj * objPtr, int * lengthPtr);
    int (*tcl_GetDouble) (Tcl_Interp * interp, char * str, double * doublePtr);
    int (*tcl_GetDoubleFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, double * doublePtr);
    int (*tcl_GetIndexFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, char ** tablePtr, char * msg, int flags, int * indexPtr);
    int (*tcl_GetInt) (Tcl_Interp * interp, char * str, int * intPtr);
    int (*tcl_GetIntFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, int * intPtr);
    int (*tcl_GetLongFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, long * longPtr);
    Tcl_ObjType * (*tcl_GetObjType) (char * typeName);
    char * (*tcl_GetStringFromObj) (Tcl_Obj * objPtr, int * lengthPtr);
    void (*tcl_InvalidateStringRep) (Tcl_Obj * objPtr);
    int (*tcl_ListObjAppendList) (Tcl_Interp * interp, Tcl_Obj * listPtr, Tcl_Obj * elemListPtr);
    int (*tcl_ListObjAppendElement) (Tcl_Interp * interp, Tcl_Obj * listPtr, Tcl_Obj * objPtr);
    int (*tcl_ListObjGetElements) (Tcl_Interp * interp, Tcl_Obj * listPtr, int * objcPtr, Tcl_Obj *** objvPtr);
    int (*tcl_ListObjIndex) (Tcl_Interp * interp, Tcl_Obj * listPtr, int index, Tcl_Obj ** objPtrPtr);
    int (*tcl_ListObjLength) (Tcl_Interp * interp, Tcl_Obj * listPtr, int * intPtr);
    int (*tcl_ListObjReplace) (Tcl_Interp * interp, Tcl_Obj * listPtr, int first, int count, int objc, Tcl_Obj *const objv[]);
    Tcl_Obj * (*tcl_NewBooleanObj) (int boolValue);
    Tcl_Obj * (*tcl_NewByteArrayObj) (unsigned char * bytes, int length);
    Tcl_Obj * (*tcl_NewDoubleObj) (double doubleValue);
    Tcl_Obj * (*tcl_NewIntObj) (int intValue);
    Tcl_Obj * (*tcl_NewListObj) (int objc, Tcl_Obj *const objv[]);
    Tcl_Obj * (*tcl_NewLongObj) (long longValue);
    Tcl_Obj * (*tcl_NewObj) (void);
    Tcl_Obj * (*tcl_NewStringObj) (const char * bytes, int length);
    void (*tcl_SetBooleanObj) (Tcl_Obj * objPtr, int boolValue);
    unsigned char * (*tcl_SetByteArrayLength) (Tcl_Obj * objPtr, int length);
    void (*tcl_SetByteArrayObj) (Tcl_Obj * objPtr, unsigned char * bytes, int length);
    void (*tcl_SetDoubleObj) (Tcl_Obj * objPtr, double doubleValue);
    void (*tcl_SetIntObj) (Tcl_Obj * objPtr, int intValue);
    void (*tcl_SetListObj) (Tcl_Obj * objPtr, int objc, Tcl_Obj *const objv[]);
    void (*tcl_SetLongObj) (Tcl_Obj * objPtr, long longValue);
    void (*tcl_SetObjLength) (Tcl_Obj * objPtr, int length);
    void (*tcl_SetStringObj) (Tcl_Obj * objPtr, char * bytes, int length);
    void (*tcl_AddErrorInfo) (Tcl_Interp * interp, const char * message);
    void (*tcl_AddObjErrorInfo) (Tcl_Interp * interp, const char * message, int length);
    void (*tcl_AllowExceptions) (Tcl_Interp * interp);
    void (*tcl_AppendElement) (Tcl_Interp * interp, const char * string);
    void (*tcl_AppendResult) (Tcl_Interp * interp, ...);
    Tcl_AsyncHandler (*tcl_AsyncCreate) (Tcl_AsyncProc * proc, ClientData clientData);
    void (*tcl_AsyncDelete) (Tcl_AsyncHandler async);
    int (*tcl_AsyncInvoke) (Tcl_Interp * interp, int code);
    void (*tcl_AsyncMark) (Tcl_AsyncHandler async);
    int (*tcl_AsyncReady) (void);
    void (*tcl_BackgroundError) (Tcl_Interp * interp);
    char (*tcl_Backslash) (const char * src, int * readPtr);
    int (*tcl_BadChannelOption) (Tcl_Interp * interp, char * optionName, char * optionList);
    void (*tcl_CallWhenDeleted) (Tcl_Interp * interp, Tcl_InterpDeleteProc * proc, ClientData clientData);
    void (*tcl_CancelIdleCall) (Tcl_IdleProc * idleProc, ClientData clientData);
    int (*tcl_Close) (Tcl_Interp * interp, Tcl_Channel chan);
    int (*tcl_CommandComplete) (char * cmd);
    char * (*tcl_Concat) (int argc, char ** argv);
    int (*tcl_ConvertElement) (const char * src, char * dst, int flags);
    int (*tcl_ConvertCountedElement) (const char * src, int length, char * dst, int flags);
    int (*tcl_CreateAlias) (Tcl_Interp * slave, char * slaveCmd, Tcl_Interp * target, char * targetCmd, int argc, char ** argv);
    int (*tcl_CreateAliasObj) (Tcl_Interp * slave, char * slaveCmd, Tcl_Interp * target, char * targetCmd, int objc, Tcl_Obj *const objv[]);
    Tcl_Channel (*tcl_CreateChannel) (Tcl_ChannelType * typePtr, char * chanName, ClientData instanceData, int mask);
    void (*tcl_CreateChannelHandler) (Tcl_Channel chan, int mask, Tcl_ChannelProc * proc, ClientData clientData);
    void (*tcl_CreateCloseHandler) (Tcl_Channel chan, Tcl_CloseProc * proc, ClientData clientData);
    Tcl_Command (*tcl_CreateCommand) (Tcl_Interp * interp, char * cmdName, Tcl_CmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc * deleteProc);
    void (*tcl_CreateEventSource) (Tcl_EventSetupProc * setupProc, Tcl_EventCheckProc * checkProc, ClientData clientData);
    void (*tcl_CreateExitHandler) (Tcl_ExitProc * proc, ClientData clientData);
    Tcl_Interp * (*tcl_CreateInterp) (void);
    void (*tcl_CreateMathFunc) (Tcl_Interp * interp, char * name, int numArgs, Tcl_ValueType * argTypes, Tcl_MathProc * proc, ClientData clientData);
    Tcl_Command (*tcl_CreateObjCommand) (Tcl_Interp * interp, char * cmdName, Tcl_ObjCmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc * deleteProc);
    Tcl_Interp * (*tcl_CreateSlave) (Tcl_Interp * interp, char * slaveName, int isSafe);
    Tcl_TimerToken (*tcl_CreateTimerHandler) (int milliseconds, Tcl_TimerProc * proc, ClientData clientData);
    Tcl_Trace (*tcl_CreateTrace) (Tcl_Interp * interp, int level, Tcl_CmdTraceProc * proc, ClientData clientData);
    void (*tcl_DeleteAssocData) (Tcl_Interp * interp, char * name);
    void (*tcl_DeleteChannelHandler) (Tcl_Channel chan, Tcl_ChannelProc * proc, ClientData clientData);
    void (*tcl_DeleteCloseHandler) (Tcl_Channel chan, Tcl_CloseProc * proc, ClientData clientData);
    int (*tcl_DeleteCommand) (Tcl_Interp * interp, char * cmdName);
    int (*tcl_DeleteCommandFromToken) (Tcl_Interp * interp, Tcl_Command command);
    void (*tcl_DeleteEvents) (Tcl_EventDeleteProc * proc, ClientData clientData);
    void (*tcl_DeleteEventSource) (Tcl_EventSetupProc * setupProc, Tcl_EventCheckProc * checkProc, ClientData clientData);
    void (*tcl_DeleteExitHandler) (Tcl_ExitProc * proc, ClientData clientData);
    void (*tcl_DeleteHashEntry) (Tcl_HashEntry * entryPtr);
    void (*tcl_DeleteHashTable) (Tcl_HashTable * tablePtr);
    void (*tcl_DeleteInterp) (Tcl_Interp * interp);

    void (*tcl_DetachPids) (int numPids, Tcl_Pid * pidPtr);







    void (*tcl_DeleteTimerHandler) (Tcl_TimerToken token);
    void (*tcl_DeleteTrace) (Tcl_Interp * interp, Tcl_Trace trace);
    void (*tcl_DontCallWhenDeleted) (Tcl_Interp * interp, Tcl_InterpDeleteProc * proc, ClientData clientData);
    int (*tcl_DoOneEvent) (int flags);
    void (*tcl_DoWhenIdle) (Tcl_IdleProc * proc, ClientData clientData);
    char * (*tcl_DStringAppend) (Tcl_DString * dsPtr, const char * str, int length);
    char * (*tcl_DStringAppendElement) (Tcl_DString * dsPtr, const char * string);
    void (*tcl_DStringEndSublist) (Tcl_DString * dsPtr);
    void (*tcl_DStringFree) (Tcl_DString * dsPtr);
    void (*tcl_DStringGetResult) (Tcl_Interp * interp, Tcl_DString * dsPtr);
    void (*tcl_DStringInit) (Tcl_DString * dsPtr);
    void (*tcl_DStringResult) (Tcl_Interp * interp, Tcl_DString * dsPtr);
    void (*tcl_DStringSetLength) (Tcl_DString * dsPtr, int length);
    void (*tcl_DStringStartSublist) (Tcl_DString * dsPtr);
    int (*tcl_Eof) (Tcl_Channel chan);
    char * (*tcl_ErrnoId) (void);
    char * (*tcl_ErrnoMsg) (int err);
    int (*tcl_Eval) (Tcl_Interp * interp, char * string);
    int (*tcl_EvalFile) (Tcl_Interp * interp, char * fileName);
    int (*tcl_EvalObj) (Tcl_Interp * interp, Tcl_Obj * objPtr);
    void (*tcl_EventuallyFree) (ClientData clientData, Tcl_FreeProc * freeProc);
    void (*tcl_Exit) (int status);
    int (*tcl_ExposeCommand) (Tcl_Interp * interp, char * hiddenCmdToken, char * cmdName);
    int (*tcl_ExprBoolean) (Tcl_Interp * interp, char * str, int * ptr);
    int (*tcl_ExprBooleanObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, int * ptr);
    int (*tcl_ExprDouble) (Tcl_Interp * interp, char * str, double * ptr);
    int (*tcl_ExprDoubleObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, double * ptr);
    int (*tcl_ExprLong) (Tcl_Interp * interp, char * str, long * ptr);
    int (*tcl_ExprLongObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, long * ptr);
    int (*tcl_ExprObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_Obj ** resultPtrPtr);
    int (*tcl_ExprString) (Tcl_Interp * interp, char * string);
    void (*tcl_Finalize) (void);
    void (*tcl_FindExecutable) (const char * argv0);
    Tcl_HashEntry * (*tcl_FirstHashEntry) (Tcl_HashTable * tablePtr, Tcl_HashSearch * searchPtr);
    int (*tcl_Flush) (Tcl_Channel chan);
    void (*tcl_FreeResult) (Tcl_Interp * interp);
    int (*tcl_GetAlias) (Tcl_Interp * interp, char * slaveCmd, Tcl_Interp ** targetInterpPtr, char ** targetCmdPtr, int * argcPtr, char *** argvPtr);
    int (*tcl_GetAliasObj) (Tcl_Interp * interp, char * slaveCmd, Tcl_Interp ** targetInterpPtr, char ** targetCmdPtr, int * objcPtr, Tcl_Obj *** objv);
    ClientData (*tcl_GetAssocData) (Tcl_Interp * interp, char * name, Tcl_InterpDeleteProc ** procPtr);
    Tcl_Channel (*tcl_GetChannel) (Tcl_Interp * interp, char * chanName, int * modePtr);
    int (*tcl_GetChannelBufferSize) (Tcl_Channel chan);
    int (*tcl_GetChannelHandle) (Tcl_Channel chan, int direction, ClientData * handlePtr);
    ClientData (*tcl_GetChannelInstanceData) (Tcl_Channel chan);
    int (*tcl_GetChannelMode) (Tcl_Channel chan);
    char * (*tcl_GetChannelName) (Tcl_Channel chan);
    int (*tcl_GetChannelOption) (Tcl_Interp * interp, Tcl_Channel chan, char * optionName, Tcl_DString * dsPtr);
    Tcl_ChannelType * (*tcl_GetChannelType) (Tcl_Channel chan);
    int (*tcl_GetCommandInfo) (Tcl_Interp * interp, char * cmdName, Tcl_CmdInfo * infoPtr);
    char * (*tcl_GetCommandName) (Tcl_Interp * interp, Tcl_Command command);
    int (*tcl_GetErrno) (void);
    char * (*tcl_GetHostName) (void);
    int (*tcl_GetInterpPath) (Tcl_Interp * askInterp, Tcl_Interp * slaveInterp);
    Tcl_Interp * (*tcl_GetMaster) (Tcl_Interp * interp);
    const char * (*tcl_GetNameOfExecutable) (void);
    Tcl_Obj * (*tcl_GetObjResult) (Tcl_Interp * interp);

    int (*tcl_GetOpenFile) (Tcl_Interp * interp, char * str, int forWriting, int checkUsage, ClientData * filePtr);







    Tcl_PathType (*tcl_GetPathType) (char * path);
    int (*tcl_Gets) (Tcl_Channel chan, Tcl_DString * dsPtr);
    int (*tcl_GetsObj) (Tcl_Channel chan, Tcl_Obj * objPtr);
    int (*tcl_GetServiceMode) (void);
    Tcl_Interp * (*tcl_GetSlave) (Tcl_Interp * interp, char * slaveName);
    Tcl_Channel (*tcl_GetStdChannel) (int type);
    char * (*tcl_GetStringResult) (Tcl_Interp * interp);
    char * (*tcl_GetVar) (Tcl_Interp * interp, char * varName, int flags);
    char * (*tcl_GetVar2) (Tcl_Interp * interp, char * part1, char * part2, int flags);
    int (*tcl_GlobalEval) (Tcl_Interp * interp, char * command);
    int (*tcl_GlobalEvalObj) (Tcl_Interp * interp, Tcl_Obj * objPtr);
    int (*tcl_HideCommand) (Tcl_Interp * interp, char * cmdName, char * hiddenCmdToken);
    int (*tcl_Init) (Tcl_Interp * interp);
    void (*tcl_InitHashTable) (Tcl_HashTable * tablePtr, int keyType);
    int (*tcl_InputBlocked) (Tcl_Channel chan);
    int (*tcl_InputBuffered) (Tcl_Channel chan);
    int (*tcl_InterpDeleted) (Tcl_Interp * interp);
    int (*tcl_IsSafe) (Tcl_Interp * interp);
    char * (*tcl_JoinPath) (int argc, char ** argv, Tcl_DString * resultPtr);
    int (*tcl_LinkVar) (Tcl_Interp * interp, char * varName, char * addr, int type);
    void *reserved188;
    Tcl_Channel (*tcl_MakeFileChannel) (ClientData handle, int mode);
    int (*tcl_MakeSafe) (Tcl_Interp * interp);
    Tcl_Channel (*tcl_MakeTcpClientChannel) (ClientData tcpSocket);
    char * (*tcl_Merge) (int argc, char ** argv);
    Tcl_HashEntry * (*tcl_NextHashEntry) (Tcl_HashSearch * searchPtr);
    void (*tcl_NotifyChannel) (Tcl_Channel channel, int mask);
    Tcl_Obj * (*tcl_ObjGetVar2) (Tcl_Interp * interp, Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, int flags);
    Tcl_Obj * (*tcl_ObjSetVar2) (Tcl_Interp * interp, Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, Tcl_Obj * newValuePtr, int flags);

    Tcl_Channel (*tcl_OpenCommandChannel) (Tcl_Interp * interp, int argc, char ** argv, int flags);







    Tcl_Channel (*tcl_OpenFileChannel) (Tcl_Interp * interp, char * fileName, char * modeString, int permissions);
    Tcl_Channel (*tcl_OpenTcpClient) (Tcl_Interp * interp, int port, char * address, char * myaddr, int myport, int async);
    Tcl_Channel (*tcl_OpenTcpServer) (Tcl_Interp * interp, int port, char * host, Tcl_TcpAcceptProc * acceptProc, ClientData callbackData);
    void (*tcl_Preserve) (ClientData data);
    void (*tcl_PrintDouble) (Tcl_Interp * interp, double value, char * dst);
    int (*tcl_PutEnv) (const char * string);
    char * (*tcl_PosixError) (Tcl_Interp * interp);
    void (*tcl_QueueEvent) (Tcl_Event * evPtr, Tcl_QueuePosition position);
    int (*tcl_Read) (Tcl_Channel chan, char * bufPtr, int toRead);

    void (*tcl_ReapDetachedProcs) (void);







    int (*tcl_RecordAndEval) (Tcl_Interp * interp, char * cmd, int flags);
    int (*tcl_RecordAndEvalObj) (Tcl_Interp * interp, Tcl_Obj * cmdPtr, int flags);
    void (*tcl_RegisterChannel) (Tcl_Interp * interp, Tcl_Channel chan);
    void (*tcl_RegisterObjType) (Tcl_ObjType * typePtr);
    Tcl_RegExp (*tcl_RegExpCompile) (Tcl_Interp * interp, char * string);
    int (*tcl_RegExpExec) (Tcl_Interp * interp, Tcl_RegExp regexp, const char * str, const char * start);
    int (*tcl_RegExpMatch) (Tcl_Interp * interp, char * str, char * pattern);
    void (*tcl_RegExpRange) (Tcl_RegExp regexp, int index, char ** startPtr, char ** endPtr);
    void (*tcl_Release) (ClientData clientData);
    void (*tcl_ResetResult) (Tcl_Interp * interp);
    int (*tcl_ScanElement) (const char * str, int * flagPtr);
    int (*tcl_ScanCountedElement) (const char * str, int length, int * flagPtr);
    int (*tcl_Seek) (Tcl_Channel chan, int offset, int mode);
    int (*tcl_ServiceAll) (void);
    int (*tcl_ServiceEvent) (int flags);
    void (*tcl_SetAssocData) (Tcl_Interp * interp, char * name, Tcl_InterpDeleteProc * proc, ClientData clientData);
    void (*tcl_SetChannelBufferSize) (Tcl_Channel chan, int sz);
    int (*tcl_SetChannelOption) (Tcl_Interp * interp, Tcl_Channel chan, char * optionName, char * newValue);
    int (*tcl_SetCommandInfo) (Tcl_Interp * interp, char * cmdName, Tcl_CmdInfo * infoPtr);
    void (*tcl_SetErrno) (int err);
    void (*tcl_SetErrorCode) (Tcl_Interp * interp, ...);
    void (*tcl_SetMaxBlockTime) (Tcl_Time * timePtr);
    void (*tcl_SetPanicProc) (Tcl_PanicProc * panicProc);
    int (*tcl_SetRecursionLimit) (Tcl_Interp * interp, int depth);
    void (*tcl_SetResult) (Tcl_Interp * interp, char * str, Tcl_FreeProc * freeProc);
    int (*tcl_SetServiceMode) (int mode);
    void (*tcl_SetObjErrorCode) (Tcl_Interp * interp, Tcl_Obj * errorObjPtr);
    void (*tcl_SetObjResult) (Tcl_Interp * interp, Tcl_Obj * resultObjPtr);
    void (*tcl_SetStdChannel) (Tcl_Channel channel, int type);
    char * (*tcl_SetVar) (Tcl_Interp * interp, char * varName, char * newValue, int flags);
    char * (*tcl_SetVar2) (Tcl_Interp * interp, char * part1, char * part2, char * newValue, int flags);
    char * (*tcl_SignalId) (int sig);
    char * (*tcl_SignalMsg) (int sig);
    void (*tcl_SourceRCFile) (Tcl_Interp * interp);
    int (*tcl_SplitList) (Tcl_Interp * interp, const char * listStr, int * argcPtr, char *** argvPtr);
    void (*tcl_SplitPath) (const char * path, int * argcPtr, char *** argvPtr);
    void (*tcl_StaticPackage) (Tcl_Interp * interp, char * pkgName, Tcl_PackageInitProc * initProc, Tcl_PackageInitProc * safeInitProc);
    int (*tcl_StringMatch) (const char * str, const char * pattern);
    int (*tcl_Tell) (Tcl_Channel chan);
    int (*tcl_TraceVar) (Tcl_Interp * interp, char * varName, int flags, Tcl_VarTraceProc * proc, ClientData clientData);
    int (*tcl_TraceVar2) (Tcl_Interp * interp, char * part1, char * part2, int flags, Tcl_VarTraceProc * proc, ClientData clientData);
    char * (*tcl_TranslateFileName) (Tcl_Interp * interp, char * name, Tcl_DString * bufferPtr);
    int (*tcl_Ungets) (Tcl_Channel chan, char * str, int len, int atHead);
    void (*tcl_UnlinkVar) (Tcl_Interp * interp, char * varName);
    int (*tcl_UnregisterChannel) (Tcl_Interp * interp, Tcl_Channel chan);
    int (*tcl_UnsetVar) (Tcl_Interp * interp, char * varName, int flags);
    int (*tcl_UnsetVar2) (Tcl_Interp * interp, char * part1, char * part2, int flags);
    void (*tcl_UntraceVar) (Tcl_Interp * interp, char * varName, int flags, Tcl_VarTraceProc * proc, ClientData clientData);
    void (*tcl_UntraceVar2) (Tcl_Interp * interp, char * part1, char * part2, int flags, Tcl_VarTraceProc * proc, ClientData clientData);
    void (*tcl_UpdateLinkedVar) (Tcl_Interp * interp, char * varName);
    int (*tcl_UpVar) (Tcl_Interp * interp, char * frameName, char * varName, char * localName, int flags);
    int (*tcl_UpVar2) (Tcl_Interp * interp, char * frameName, char * part1, char * part2, char * localName, int flags);
    int (*tcl_VarEval) (Tcl_Interp * interp, ...);
    ClientData (*tcl_VarTraceInfo) (Tcl_Interp * interp, char * varName, int flags, Tcl_VarTraceProc * procPtr, ClientData prevClientData);
    ClientData (*tcl_VarTraceInfo2) (Tcl_Interp * interp, char * part1, char * part2, int flags, Tcl_VarTraceProc * procPtr, ClientData prevClientData);
    int (*tcl_Write) (Tcl_Channel chan, char * s, int slen);
    void (*tcl_WrongNumArgs) (Tcl_Interp * interp, int objc, Tcl_Obj *const objv[], char * message);
    int (*tcl_DumpActiveMemory) (char * fileName);
    void (*tcl_ValidateAllMemory) (char * file, int line);
    void (*tcl_AppendResultVA) (Tcl_Interp * interp, va_list argList);
    void (*tcl_AppendStringsToObjVA) (Tcl_Obj * objPtr, va_list argList);
    char * (*tcl_HashStats) (Tcl_HashTable * tablePtr);
    char * (*tcl_ParseVar) (Tcl_Interp * interp, char * str, char ** termPtr);
    char * (*tcl_PkgPresent) (Tcl_Interp * interp, char * name, char * version, int exact);
    char * (*tcl_PkgPresentEx) (Tcl_Interp * interp, char * name, char * version, int exact, ClientData * clientDataPtr);
    int (*tcl_PkgProvide) (Tcl_Interp * interp, char * name, char * version);
    char * (*tcl_PkgRequire) (Tcl_Interp * interp, char * name, char * version, int exact);
    void (*tcl_SetErrorCodeVA) (Tcl_Interp * interp, va_list argList);
    int (*tcl_VarEvalVA) (Tcl_Interp * interp, va_list argList);
    Tcl_Pid (*tcl_WaitPid) (Tcl_Pid pid, int * statPtr, int options);

    void (*tcl_PanicVA) (char * format, va_list argList);







    void (*tcl_GetVersion) (int * major, int * minor, int * patchLevel, int * type);
    void (*tcl_InitMemory) (Tcl_Interp * interp);
    Tcl_Channel (*tcl_StackChannel) (Tcl_Interp * interp, Tcl_ChannelType * typePtr, ClientData instanceData, int mask, Tcl_Channel prevChan);
    int (*tcl_UnstackChannel) (Tcl_Interp * interp, Tcl_Channel chan);
    Tcl_Channel (*tcl_GetStackedChannel) (Tcl_Channel chan);
    void *reserved284;
    void *reserved285;
    void (*tcl_AppendObjToObj) (Tcl_Obj * objPtr, Tcl_Obj * appendObjPtr);
    Tcl_Encoding (*tcl_CreateEncoding) (Tcl_EncodingType * typePtr);
    void (*tcl_CreateThreadExitHandler) (Tcl_ExitProc * proc, ClientData clientData);
    void (*tcl_DeleteThreadExitHandler) (Tcl_ExitProc * proc, ClientData clientData);
    void (*tcl_DiscardResult) (Tcl_SavedResult * statePtr);
    int (*tcl_EvalEx) (Tcl_Interp * interp, char * script, int numBytes, int flags);
    int (*tcl_EvalObjv) (Tcl_Interp * interp, int objc, Tcl_Obj *const objv[], int flags);
    int (*tcl_EvalObjEx) (Tcl_Interp * interp, Tcl_Obj * objPtr, int flags);
    void (*tcl_ExitThread) (int status);
    int (*tcl_ExternalToUtf) (Tcl_Interp * interp, Tcl_Encoding encoding, const char * src, int srcLen, int flags, Tcl_EncodingState * statePtr, char * dst, int dstLen, int * srcReadPtr, int * dstWrotePtr, int * dstCharsPtr);
    char * (*tcl_ExternalToUtfDString) (Tcl_Encoding encoding, const char * src, int srcLen, Tcl_DString * dsPtr);
    void (*tcl_FinalizeThread) (void);
    void (*tcl_FinalizeNotifier) (ClientData clientData);
    void (*tcl_FreeEncoding) (Tcl_Encoding encoding);
    Tcl_ThreadId (*tcl_GetCurrentThread) (void);
    Tcl_Encoding (*tcl_GetEncoding) (Tcl_Interp * interp, const char * name);
    char * (*tcl_GetEncodingName) (Tcl_Encoding encoding);
    void (*tcl_GetEncodingNames) (Tcl_Interp * interp);
    int (*tcl_GetIndexFromObjStruct) (Tcl_Interp * interp, Tcl_Obj * objPtr, char ** tablePtr, int offset, char * msg, int flags, int * indexPtr);
    void * (*tcl_GetThreadData) (Tcl_ThreadDataKey * keyPtr, int size);
    Tcl_Obj * (*tcl_GetVar2Ex) (Tcl_Interp * interp, char * part1, char * part2, int flags);
    ClientData (*tcl_InitNotifier) (void);
    void (*tcl_MutexLock) (Tcl_Mutex * mutexPtr);
    void (*tcl_MutexUnlock) (Tcl_Mutex * mutexPtr);
    void (*tcl_ConditionNotify) (Tcl_Condition * condPtr);
    void (*tcl_ConditionWait) (Tcl_Condition * condPtr, Tcl_Mutex * mutexPtr, Tcl_Time * timePtr);
    int (*tcl_NumUtfChars) (const char * src, int len);
    int (*tcl_ReadChars) (Tcl_Channel channel, Tcl_Obj * objPtr, int charsToRead, int appendFlag);
    void (*tcl_RestoreResult) (Tcl_Interp * interp, Tcl_SavedResult * statePtr);
    void (*tcl_SaveResult) (Tcl_Interp * interp, Tcl_SavedResult * statePtr);
    int (*tcl_SetSystemEncoding) (Tcl_Interp * interp, const char * name);
    Tcl_Obj * (*tcl_SetVar2Ex) (Tcl_Interp * interp, char * part1, char * part2, Tcl_Obj * newValuePtr, int flags);
    void (*tcl_ThreadAlert) (Tcl_ThreadId threadId);
    void (*tcl_ThreadQueueEvent) (Tcl_ThreadId threadId, Tcl_Event* evPtr, Tcl_QueuePosition position);
    Tcl_UniChar (*tcl_UniCharAtIndex) (const char * src, int index);
    Tcl_UniChar (*tcl_UniCharToLower) (int ch);
    Tcl_UniChar (*tcl_UniCharToTitle) (int ch);
    Tcl_UniChar (*tcl_UniCharToUpper) (int ch);
    int (*tcl_UniCharToUtf) (int ch, char * buf);
    char * (*tcl_UtfAtIndex) (const char * src, int index);
    int (*tcl_UtfCharComplete) (const char * src, int len);
    int (*tcl_UtfBackslash) (const char * src, int * readPtr, char * dst);
    char * (*tcl_UtfFindFirst) (const char * src, int ch);
    char * (*tcl_UtfFindLast) (const char * src, int ch);
    char * (*tcl_UtfNext) (const char * src);
    char * (*tcl_UtfPrev) (const char * src, const char * start);
    int (*tcl_UtfToExternal) (Tcl_Interp * interp, Tcl_Encoding encoding, const char * src, int srcLen, int flags, Tcl_EncodingState * statePtr, char * dst, int dstLen, int * srcReadPtr, int * dstWrotePtr, int * dstCharsPtr);
    char * (*tcl_UtfToExternalDString) (Tcl_Encoding encoding, const char * src, int srcLen, Tcl_DString * dsPtr);
    int (*tcl_UtfToLower) (char * src);
    int (*tcl_UtfToTitle) (char * src);
    int (*tcl_UtfToUniChar) (const char * src, Tcl_UniChar * chPtr);
    int (*tcl_UtfToUpper) (char * src);
    int (*tcl_WriteChars) (Tcl_Channel chan, const char * src, int srcLen);
    int (*tcl_WriteObj) (Tcl_Channel chan, Tcl_Obj * objPtr);
    char * (*tcl_GetString) (Tcl_Obj * objPtr);
    char * (*tcl_GetDefaultEncodingDir) (void);
    void (*tcl_SetDefaultEncodingDir) (char * path);
    void (*tcl_AlertNotifier) (ClientData clientData);
    void (*tcl_ServiceModeHook) (int mode);
    int (*tcl_UniCharIsAlnum) (int ch);
    int (*tcl_UniCharIsAlpha) (int ch);
    int (*tcl_UniCharIsDigit) (int ch);
    int (*tcl_UniCharIsLower) (int ch);
    int (*tcl_UniCharIsSpace) (int ch);
    int (*tcl_UniCharIsUpper) (int ch);
    int (*tcl_UniCharIsWordChar) (int ch);
    int (*tcl_UniCharLen) (Tcl_UniChar * str);
    int (*tcl_UniCharNcmp) (const Tcl_UniChar * cs, const Tcl_UniChar * ct, unsigned long n);
    char * (*tcl_UniCharToUtfDString) (const Tcl_UniChar * string, int numChars, Tcl_DString * dsPtr);
    Tcl_UniChar * (*tcl_UtfToUniCharDString) (const char * string, int length, Tcl_DString * dsPtr);
    Tcl_RegExp (*tcl_GetRegExpFromObj) (Tcl_Interp * interp, Tcl_Obj * patObj, int flags);
    Tcl_Obj * (*tcl_EvalTokens) (Tcl_Interp * interp, Tcl_Token * tokenPtr, int count);
    void (*tcl_FreeParse) (Tcl_Parse * parsePtr);
    void (*tcl_LogCommandInfo) (Tcl_Interp * interp, char * script, char * command, int length);
    int (*tcl_ParseBraces) (Tcl_Interp * interp, char * string, int numBytes, Tcl_Parse * parsePtr, int append, char ** termPtr);
    int (*tcl_ParseCommand) (Tcl_Interp * interp, char * string, int numBytes, int nested, Tcl_Parse * parsePtr);
    int (*tcl_ParseExpr) (Tcl_Interp * interp, char * string, int numBytes, Tcl_Parse * parsePtr);
    int (*tcl_ParseQuotedString) (Tcl_Interp * interp, char * string, int numBytes, Tcl_Parse * parsePtr, int append, char ** termPtr);
    int (*tcl_ParseVarName) (Tcl_Interp * interp, char * string, int numBytes, Tcl_Parse * parsePtr, int append);
    char * (*tcl_GetCwd) (Tcl_Interp * interp, Tcl_DString * cwdPtr);
    int (*tcl_Chdir) (const char * dirName);
    int (*tcl_Access) (const char * path, int mode);
    int (*tcl_Stat) (const char * path, struct stat * bufPtr);
    int (*tcl_UtfNcmp) (const char * s1, const char * s2, unsigned long n);
    int (*tcl_UtfNcasecmp) (const char * s1, const char * s2, unsigned long n);
    int (*tcl_StringCaseMatch) (const char * str, const char * pattern, int nocase);
    int (*tcl_UniCharIsControl) (int ch);
    int (*tcl_UniCharIsGraph) (int ch);
    int (*tcl_UniCharIsPrint) (int ch);
    int (*tcl_UniCharIsPunct) (int ch);
    int (*tcl_RegExpExecObj) (Tcl_Interp * interp, Tcl_RegExp regexp, Tcl_Obj * objPtr, int offset, int nmatches, int flags);
    void (*tcl_RegExpGetInfo) (Tcl_RegExp regexp, Tcl_RegExpInfo * infoPtr);
    Tcl_Obj * (*tcl_NewUnicodeObj) (Tcl_UniChar * unicode, int numChars);
    void (*tcl_SetUnicodeObj) (Tcl_Obj * objPtr, Tcl_UniChar * unicode, int numChars);
    int (*tcl_GetCharLength) (Tcl_Obj * objPtr);
    Tcl_UniChar (*tcl_GetUniChar) (Tcl_Obj * objPtr, int index);
    Tcl_UniChar * (*tcl_GetUnicode) (Tcl_Obj * objPtr);
    Tcl_Obj * (*tcl_GetRange) (Tcl_Obj * objPtr, int first, int last);
    void (*tcl_AppendUnicodeToObj) (Tcl_Obj * objPtr, Tcl_UniChar * unicode, int length);
    int (*tcl_RegExpMatchObj) (Tcl_Interp * interp, Tcl_Obj * stringObj, Tcl_Obj * patternObj);
    void (*tcl_SetNotifier) (Tcl_NotifierProcs * notifierProcPtr);
    Tcl_Mutex * (*tcl_GetAllocMutex) (void);
    int (*tcl_GetChannelNames) (Tcl_Interp * interp);
    int (*tcl_GetChannelNamesEx) (Tcl_Interp * interp, char * pattern);
    int (*tcl_ProcObjCmd) (ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *const objv[]);
    void (*tcl_ConditionFinalize) (Tcl_Condition * condPtr);
    void (*tcl_MutexFinalize) (Tcl_Mutex * mutex);
    int (*tcl_CreateThread) (Tcl_ThreadId * idPtr, Tcl_ThreadCreateProc proc, ClientData clientData, int stackSize, int flags);
    int (*tcl_ReadRaw) (Tcl_Channel chan, char * dst, int bytesToRead);
    int (*tcl_WriteRaw) (Tcl_Channel chan, char * src, int srcLen);
    Tcl_Channel (*tcl_GetTopChannel) (Tcl_Channel chan);
    int (*tcl_ChannelBuffered) (Tcl_Channel chan);
    char * (*tcl_ChannelName) (Tcl_ChannelType * chanTypePtr);
    Tcl_ChannelTypeVersion (*tcl_ChannelVersion) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverBlockModeProc * (*tcl_ChannelBlockModeProc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverCloseProc * (*tcl_ChannelCloseProc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverClose2Proc * (*tcl_ChannelClose2Proc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverInputProc * (*tcl_ChannelInputProc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverOutputProc * (*tcl_ChannelOutputProc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverSeekProc * (*tcl_ChannelSeekProc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverSetOptionProc * (*tcl_ChannelSetOptionProc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverGetOptionProc * (*tcl_ChannelGetOptionProc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverWatchProc * (*tcl_ChannelWatchProc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverGetHandleProc * (*tcl_ChannelGetHandleProc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverFlushProc * (*tcl_ChannelFlushProc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverHandlerProc * (*tcl_ChannelHandlerProc) (Tcl_ChannelType * chanTypePtr);
} TclStubs;




extern TclStubs *tclStubsPtr;
# 1682 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h" 2





extern void Tcl_Main (int argc, char **argv, Tcl_AppInitProc *appInitProc);
# 1699 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
extern int Tcl_AppInit (Tcl_Interp *interp);
# 34 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h" 2


# 1 "/usr/include/ctype.h" 1 3 4
# 37 "/usr/include/ctype.h" 3 4
extern int __attribute__((__cdecl__)) isalnum(int);
extern int __attribute__((__cdecl__)) isalpha(int);
extern int __attribute__((__cdecl__)) iscntrl(int);
extern int __attribute__((__cdecl__)) isdigit(int);
extern int __attribute__((__cdecl__)) isgraph(int);
extern int __attribute__((__cdecl__)) islower(int);
extern int __attribute__((__cdecl__)) isprint(int);
extern int __attribute__((__cdecl__)) ispunct(int);
extern int __attribute__((__cdecl__)) isspace(int);
extern int __attribute__((__cdecl__)) isupper(int);
extern int __attribute__((__cdecl__)) isxdigit(int);
extern int __attribute__((__cdecl__)) toupper(int);
extern int __attribute__((__cdecl__)) tolower(int);



extern int __attribute__((__cdecl__)) _tolower(int);
extern int __attribute__((__cdecl__)) _toupper(int);
extern int __attribute__((__cdecl__)) isascii(int);
extern int __attribute__((__cdecl__)) toascii(int);




extern int __attribute__((__cdecl__)) isblank(int c);






extern int __attribute__((__cdecl__)) _isctype(int, int);
extern unsigned short *_pctype;
# 95 "/usr/include/ctype.h" 3 4
extern int __mb_cur_max;
# 37 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h" 2



# 1 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 1 3 4
# 11 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 3 4
# 1 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/syslimits.h" 1 3 4






# 1 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 1 3 4
# 122 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 3 4
# 1 "/opt/gcc.3.3/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 1 3 4
# 122 "/opt/gcc.3.3/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 3 4
# 1 "/usr/include/limits.h" 1 3 4
# 220 "/usr/include/limits.h" 3 4
# 1 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 1 3 4
# 122 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 3 4
# 1 "/opt/gcc.3.3/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 1 3 4
# 122 "/opt/gcc.3.3/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 3 4
# 1 "/usr/include/limits.h" 1 3 4
# 123 "/opt/gcc.3.3/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 2 3 4
# 123 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 2 3 4
# 221 "/usr/include/limits.h" 2 3 4
# 123 "/opt/gcc.3.3/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 2 3 4
# 123 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 2 3 4
# 8 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/syslimits.h" 2 3 4
# 12 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 2 3 4
# 41 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h" 2




# 1 "/usr/include/stdlib.h" 1 3 4
# 33 "/usr/include/stdlib.h" 3 4
# 1 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/stddef.h" 1 3 4
# 151 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/stddef.h" 3 4
typedef int ptrdiff_t;
# 325 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/stddef.h" 3 4
typedef short unsigned int wchar_t;
# 34 "/usr/include/stdlib.h" 2 3 4
# 49 "/usr/include/stdlib.h" 3 4
typedef struct {
        int quot;
        int rem;
} div_t;

typedef struct {
        long quot;
        long rem;
} ldiv_t;
# 67 "/usr/include/stdlib.h" 3 4
extern int __mb_cur_max;




extern void __attribute__((__cdecl__)) abort(void);
extern int __attribute__((__cdecl__)) abs(int);
extern int __attribute__((__cdecl__)) atexit(void (__attribute__((__cdecl__)) *)(void));
extern double __attribute__((__cdecl__)) atof(const char *);
extern int __attribute__((__cdecl__)) atoi(const char *);
extern long __attribute__((__cdecl__)) atol(const char *);
extern void * __attribute__((__cdecl__)) bsearch (const void *, const void *, size_t, size_t,
                                int (__attribute__((__cdecl__))*)(const void *, const void *));
extern void * __attribute__((__cdecl__)) calloc(size_t, size_t);
extern div_t __attribute__((__cdecl__)) div(int, int);
extern void __attribute__((__cdecl__)) exit(int);
extern void __attribute__((__cdecl__)) free(void *);
extern char * __attribute__((__cdecl__)) getenv(const char *);
extern long __attribute__((__cdecl__)) labs(long);
extern ldiv_t __attribute__((__cdecl__)) ldiv(long, long);
extern void * __attribute__((__cdecl__)) malloc(size_t);
extern int __attribute__((__cdecl__)) mblen(const char *, size_t);
extern size_t __attribute__((__cdecl__)) mbstowcs(wchar_t *, const char *, size_t);
extern int __attribute__((__cdecl__)) mbtowc(wchar_t *, const char *, size_t);
extern void __attribute__((__cdecl__)) qsort(void *, size_t, size_t,
                            int (__attribute__((__cdecl__)) *)(const void *, const void *));
extern int __attribute__((__cdecl__)) rand(void);
extern void * __attribute__((__cdecl__)) realloc(void *, size_t);
extern void __attribute__((__cdecl__)) srand(unsigned int);
extern double __attribute__((__cdecl__)) strtod(const char *, char **);
extern long __attribute__((__cdecl__)) strtol(const char *, char **, int);
extern unsigned long __attribute__((__cdecl__)) strtoul(const char *, char **, int);
extern int __attribute__((__cdecl__)) system(const char *);
extern size_t __attribute__((__cdecl__)) wcstombs(char *, const wchar_t *, size_t);
extern int __attribute__((__cdecl__)) wctomb(char *, wchar_t);





# 1 "/usr/include/sys/wait.h" 1 3 4
# 95 "/usr/include/sys/wait.h" 3 4
extern pid_t __attribute__((__cdecl__)) wait(int *stat_loc);
extern pid_t __attribute__((__cdecl__)) waitpid(pid_t pid, int *stat_loc, int options);
# 108 "/usr/include/stdlib.h" 2 3 4




extern char * __attribute__((__cdecl__)) mktemp(char *);
extern int __attribute__((__cdecl__)) mkstemp(char *);
extern int __attribute__((__cdecl__)) putenv(const char *);
extern char * __attribute__((__cdecl__)) ptsname(int fildes);
extern int __attribute__((__cdecl__)) grantpt(int fildes);
extern int __attribute__((__cdecl__)) unlockpt(int fildes);
extern int __attribute__((__cdecl__)) ttyslot(void);

extern void setkey(const char *);




extern char * __attribute__((__cdecl__)) initstate(unsigned int seed, char *state, size_t size);
extern char * __attribute__((__cdecl__)) setstate(const char *state);
extern long __attribute__((__cdecl__)) random(void);
extern void __attribute__((__cdecl__)) srandom(unsigned int seed);

extern double __attribute__((__cdecl__)) drand48(void);
extern double __attribute__((__cdecl__)) erand48(unsigned short []);
extern long __attribute__((__cdecl__)) jrand48(unsigned short []);
extern void __attribute__((__cdecl__)) lcong48(unsigned short []);
extern long __attribute__((__cdecl__)) lrand48(void);
extern long __attribute__((__cdecl__)) mrand48(void);
extern long __attribute__((__cdecl__)) nrand48(unsigned short []);
extern unsigned short * __attribute__((__cdecl__)) seed48(unsigned short []);
extern void __attribute__((__cdecl__)) srand48(long seedval);
# 148 "/usr/include/stdlib.h" 3 4
extern long __attribute__((__cdecl__)) a64l(const char *);
extern char * __attribute__((__cdecl__)) l64a(long);
extern char * __attribute__((__cdecl__)) ecvt(double, int, int*, int*);
extern char * __attribute__((__cdecl__)) fcvt(double, int, int*, int*);
extern char * __attribute__((__cdecl__)) gcvt(double, int, char *);
extern char * __attribute__((__cdecl__)) realpath(const char *, char *);
extern int __attribute__((__cdecl__)) getsubopt(char **, char * const *, char **);


extern char *suboptarg;
# 169 "/usr/include/stdlib.h" 3 4
extern int __attribute__((__cdecl__)) setenv(const char *, const char *, int);
# 46 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h" 2




# 1 "/usr/include/string.h" 1 3 4
# 53 "/usr/include/string.h" 3 4
extern void * __attribute__((__cdecl__)) memchr(const void *, int, size_t);
extern int __attribute__((__cdecl__)) memcmp(const void *, const void *, size_t);
extern void * __attribute__((__cdecl__)) memcpy(void *, const void *, size_t);
extern void * __attribute__((__cdecl__)) memmove(void *, const void *, size_t);
extern void * __attribute__((__cdecl__)) memset(void *, int, size_t);
extern char * __attribute__((__cdecl__)) strcat(char *, const char *);
extern char * __attribute__((__cdecl__)) strchr(const char *, int);
extern int __attribute__((__cdecl__)) strcmp(const char *, const char *);
extern int __attribute__((__cdecl__)) strcoll(const char *, const char *);
extern char * __attribute__((__cdecl__)) strcpy(char *, const char *);
extern size_t __attribute__((__cdecl__)) strcspn(const char *, const char *);
extern char * __attribute__((__cdecl__)) strerror(int);
extern size_t __attribute__((__cdecl__)) strlen(const char *);
extern char * __attribute__((__cdecl__)) strncat(char *, const char *, size_t);
extern int __attribute__((__cdecl__)) strncmp(const char *, const char *, size_t);
extern char * __attribute__((__cdecl__)) strncpy(char *, const char *, size_t);
extern char * __attribute__((__cdecl__)) strpbrk(const char *, const char *);
extern char * __attribute__((__cdecl__)) strrchr(const char *, int);
extern size_t __attribute__((__cdecl__)) strspn(const char *, const char *);
extern char * __attribute__((__cdecl__)) strstr(const char *, const char *);
extern char * __attribute__((__cdecl__)) strtok(char *, const char *);
extern size_t __attribute__((__cdecl__)) strxfrm (char *, const char *, size_t);



extern void* __attribute__((__cdecl__)) memccpy(void *, const void *, int, unsigned int);






extern char* __attribute__((__cdecl__)) strdup(const char *);







# 1 "/usr/include/strings.h" 1 3 4
# 61 "/usr/include/strings.h" 3 4
extern int __attribute__((__cdecl__)) bcmp (const void *, const void *, size_t);
extern void __attribute__((__cdecl__)) bcopy (const void *, void *, size_t);
extern void __attribute__((__cdecl__)) bzero (void *, size_t);
extern int __attribute__((__cdecl__)) ffs (int);
extern char * __attribute__((__cdecl__)) index (const char *, int);
extern char * __attribute__((__cdecl__)) rindex (const char *, int);
extern char * __attribute__((__cdecl__)) strdup (const char *);
extern int __attribute__((__cdecl__)) strcasecmp (const char *, const char *);
extern int __attribute__((__cdecl__)) strncasecmp (const char *, const char *, size_t);


extern char * __attribute__((__cdecl__)) strsep (char **, const char *);
extern char * __attribute__((__cdecl__)) strcasestr (const char *, const char *);
# 94 "/usr/include/string.h" 2 3 4

extern char *strsignal(int);
extern char *strsigname(int);


extern size_t strlcpy(char *, const char *, size_t );
extern size_t strlcat(char *, const char *, size_t );
# 51 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h" 2
# 70 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
struct Tcl_ResolvedVarInfo;

typedef Tcl_Var (Tcl_ResolveRuntimeVarProc) ( Tcl_Interp* interp, struct Tcl_ResolvedVarInfo *vinfoPtr);


typedef void (Tcl_ResolveVarDeleteProc) ( struct Tcl_ResolvedVarInfo *vinfoPtr);
# 85 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct Tcl_ResolvedVarInfo {
    Tcl_ResolveRuntimeVarProc *fetchProc;
    Tcl_ResolveVarDeleteProc *deleteProc;
} Tcl_ResolvedVarInfo;



typedef int (Tcl_ResolveCompiledVarProc) ( Tcl_Interp* interp, char* name, int length, Tcl_Namespace *context, Tcl_ResolvedVarInfo **rPtr);



typedef int (Tcl_ResolveVarProc) ( Tcl_Interp* interp, char* name, Tcl_Namespace *context, int flags, Tcl_Var *rPtr);



typedef int (Tcl_ResolveCmdProc) (Tcl_Interp* interp, char* name, Tcl_Namespace *context, int flags, Tcl_Command *rPtr);



typedef struct Tcl_ResolverInfo {
    Tcl_ResolveCmdProc *cmdResProc;

    Tcl_ResolveVarProc *varResProc;


    Tcl_ResolveCompiledVarProc *compiledVarResProc;


} Tcl_ResolverInfo;
# 128 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct Namespace {
    char *name;



    char *fullName;

    ClientData clientData;

    Tcl_NamespaceDeleteProc *deleteProc;


    struct Namespace *parentPtr;


    Tcl_HashTable childTable;


    long nsId;
    Tcl_Interp *interp;

    int flags;


    int activationCount;




    int refCount;


    Tcl_HashTable cmdTable;







    Tcl_HashTable varTable;


    char **exportArrayPtr;






    int numExportPatterns;

    int maxExportPatterns;

    int cmdRefEpoch;




    int resolverEpoch;




    Tcl_ResolveCmdProc *cmdResProc;





    Tcl_ResolveVarProc *varResProc;






    Tcl_ResolveCompiledVarProc *compiledVarResProc;






} Namespace;
# 260 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct VarTrace {
    Tcl_VarTraceProc *traceProc;

    ClientData clientData;
    int flags;



    struct VarTrace *nextPtr;

} VarTrace;
# 280 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct ActiveVarTrace {
    struct Var *varPtr;
    struct ActiveVarTrace *nextPtr;



    VarTrace *nextTracePtr;



} ActiveVarTrace;







typedef struct ArraySearch {
    int id;


    struct Var *varPtr;

    Tcl_HashSearch search;

    Tcl_HashEntry *nextEntry;





    struct ArraySearch *nextPtr;


} ArraySearch;
# 326 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct Var {
    union {
        Tcl_Obj *objPtr;

        Tcl_HashTable *tablePtr;



        struct Var *linkPtr;



    } value;
    char *name;






    Namespace *nsPtr;


    Tcl_HashEntry *hPtr;
# 359 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
    int refCount;







    VarTrace *tracePtr;

    ArraySearch *searchPtr;

    int flags;

} Var;
# 528 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
struct Command;
# 543 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct CompiledLocal {
    struct CompiledLocal *nextPtr;



    int nameLength;


    int frameIndex;

    int flags;




    Tcl_Obj *defValuePtr;


    Tcl_ResolvedVarInfo *resolveInfo;






    char name[4];




} CompiledLocal;







typedef struct Proc {
    struct Interp *iPtr;

    int refCount;




    struct Command *cmdPtr;



    Tcl_Obj *bodyPtr;

    int numArgs;
    int numCompiledLocals;


    CompiledLocal *firstLocalPtr;




    CompiledLocal *lastLocalPtr;


} Proc;






typedef struct Trace {
    int level;

    Tcl_CmdTraceProc *proc;
    ClientData clientData;
    struct Trace *nextPtr;
} Trace;
# 629 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct AssocData {
    Tcl_InterpDeleteProc *proc;
    ClientData clientData;
} AssocData;
# 648 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct CallFrame {
    Namespace *nsPtr;

    int isProcCallFrame;






    int objc;

    Tcl_Obj *const *objv;
    struct CallFrame *callerPtr;



    struct CallFrame *callerVarPtr;






    int level;



    Proc *procPtr;





    Tcl_HashTable *varTablePtr;



    int numCompiledLocals;

    Var* compiledLocals;



} CallFrame;
# 702 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef void **TclHandle;

extern TclHandle TclHandleCreate (void *ptr);
extern void TclHandleFree (TclHandle handle);
extern TclHandle TclHandlePreserve (TclHandle handle);
extern void TclHandleRelease (TclHandle handle);
# 721 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct {
    char *command;

    int bytesAvl;

} HistoryEvent;
# 735 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct HistoryRev {
    int firstIndex;

    int lastIndex;

    int newSize;
    char *newBytes;

    struct HistoryRev *nextPtr;

} HistoryRev;
# 760 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct MathFunc {
    int builtinFuncIndex;






    int numArgs;
    Tcl_ValueType argTypes[5];

    Tcl_MathProc *proc;

    ClientData clientData;


} MathFunc;







extern void *TclThreadDataKeyGet (Tcl_ThreadDataKey *keyPtr);
extern void TclThreadDataKeySet (Tcl_ThreadDataKey *keyPtr, void *data);
# 807 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
struct CompileEnv;
# 828 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef int (CompileProc) (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *compEnvPtr);







typedef int (CompileHookProc) (Tcl_Interp *interp, struct CompileEnv *compEnvPtr, ClientData clientData);
# 849 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct ExecEnv {
    Tcl_Obj **stackPtr;

    int stackTop;

    int stackEnd;
} ExecEnv;
# 873 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct LiteralEntry {
    struct LiteralEntry *nextPtr;


    Tcl_Obj *objPtr;


    int refCount;






} LiteralEntry;

typedef struct LiteralTable {
    LiteralEntry **buckets;


    LiteralEntry *staticBuckets[4];



    int numBuckets;

    int numEntries;

    int rebuildSize;

    int mask;

} LiteralTable;
# 958 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct ImportRef {
    struct Command *importedCmdPtr;




    struct ImportRef *nextPtr;




} ImportRef;







typedef struct ImportedCmdData {
    struct Command *realCmdPtr;

    struct Command *selfPtr;



} ImportedCmdData;






typedef struct Command {
    Tcl_HashEntry *hPtr;
# 1002 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
    Namespace *nsPtr;

    int refCount;





    int cmdEpoch;


    CompileProc *compileProc;

    Tcl_ObjCmdProc *objProc;
    ClientData objClientData;
    Tcl_CmdProc *proc;
    ClientData clientData;
    Tcl_CmdDeleteProc *deleteProc;


    ClientData deleteData;
    int deleted;



    ImportRef *importRefPtr;






} Command;
# 1051 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct ResolverScheme {
    char *name;
    Tcl_ResolveCmdProc *cmdResProc;


    Tcl_ResolveVarProc *varResProc;



    Tcl_ResolveCompiledVarProc *compiledVarResProc;



    struct ResolverScheme *nextPtr;

} ResolverScheme;
# 1078 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct Interp {
# 1096 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
    char *result;


    Tcl_FreeProc *freeProc;






    int errorLine;


    struct TclStubs *stubTable;







    TclHandle handle;


    Namespace *globalNsPtr;
    Tcl_HashTable *hiddenCmdTablePtr;



    ClientData interpInfo;


    Tcl_HashTable mathFuncTable;
# 1140 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
    int numLevels;




    int maxNestingDepth;


    CallFrame *framePtr;


    CallFrame *varFramePtr;




    ActiveVarTrace *activeTracePtr;


    int returnCode;

    char *errorInfo;

    char *errorCode;







    char *appendResult;


    int appendAvl;

    int appendUsed;






    Tcl_HashTable packageTable;



    char *packageUnknown;
# 1196 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
    int cmdCount;

    int evalFlags;



    int termOffset;

    LiteralTable literalTable;





    int compileEpoch;




    Proc *compiledProcPtr;




    ResolverScheme *resolverPtr;





    char *scriptFile;




    int flags;
    long randSeed;
    Trace *tracePtr;
    Tcl_HashTable *assocData;


    struct ExecEnv *execEnvPtr;


    Tcl_Obj *emptyObjPtr;



    char resultSpace[200 +1];

    Tcl_Obj *objResultPtr;


    Tcl_ThreadId threadId;
# 1260 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
} Interp;
# 1337 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct ParseValue {
    char *buffer;

    char *next;

    char *end;

    void (*expandProc) (struct ParseValue *pvPtr, int needed);


    ClientData clientData;

} ParseValue;
# 1386 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef enum {
    TCL_PLATFORM_UNIX,
    TCL_PLATFORM_MAC,
    TCL_PLATFORM_WINDOWS
} TclPlatformType;
# 1421 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct List {
    int maxElemCount;
    int elemCount;
    Tcl_Obj **elements;
} List;
# 1436 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef int (TclGetFileAttrProc) (Tcl_Interp *interp, int objIndex, const char *fileName, Tcl_Obj **attrObjPtrPtr);

typedef int (TclSetFileAttrProc) (Tcl_Interp *interp, int objIndex, const char *fileName, Tcl_Obj *attrObjPtr);


typedef struct TclFileAttrProcs {
    TclGetFileAttrProc *getProc;
    TclSetFileAttrProc *setProc;
} TclFileAttrProcs;






typedef struct TclFile_ *TclFile;
# 1460 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef int (TclStatProc_) (const char *path, struct stat *buf);
typedef int (TclAccessProc_) (const char *path, int mode);
typedef Tcl_Channel (TclOpenFileChannelProc_) (Tcl_Interp *interp, char *fileName, char *modeString, int permissions);



typedef int (*TclCmdProcType) (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]);

typedef int (*TclObjCmdProcType) (ClientData clientData, Tcl_Interp *interp, int objc, struct Tcl_Obj * const objv[]);






typedef struct TclpTime_t_ *TclpTime_t;
# 1484 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct GlobTypeData {

    int type;

    int perm;

    Tcl_Obj* macType;

    Tcl_Obj* macCreator;
} GlobTypeData;
# 1518 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
extern Tcl_Time tclBlockTime;
extern int tclBlockTimeSet;
extern char * tclExecutableName;
extern char * tclNativeExecutableName;
extern char * tclDefaultEncodingDir;
extern Tcl_ChannelType tclFileChannelType;
extern char * tclMemDumpFileName;
extern TclPlatformType tclPlatform;
extern char * tclpFileAttrStrings[];
extern const TclFileAttrProcs tclpFileAttrProcs[];





extern Tcl_ObjType tclBooleanType;
extern Tcl_ObjType tclByteArrayType;
extern Tcl_ObjType tclByteCodeType;
extern Tcl_ObjType tclDoubleType;
extern Tcl_ObjType tclIntType;
extern Tcl_ObjType tclListType;
extern Tcl_ObjType tclProcBodyType;
extern Tcl_ObjType tclStringType;






extern Tcl_Obj * tclFreeObjList;
# 1560 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
extern char * tclEmptyStringRep;
# 1569 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
extern int TclAccess (const char *path, int mode);

extern int TclAccessDeleteProc (TclAccessProc_ *proc);
extern int TclAccessInsertProc (TclAccessProc_ *proc);
extern void TclAllocateFreeObjects (void);
extern int TclArraySet (Tcl_Interp *interp, Tcl_Obj *arrayNameObj, Tcl_Obj *arrayElemObj);

extern int TclCheckBadOctal (Tcl_Interp *interp, char *value);

extern int TclCleanupChildren (Tcl_Interp *interp, int numPids, Tcl_Pid *pidPtr, Tcl_Channel errorChan);


extern void TclCleanupCommand (Command *cmdPtr);
extern int TclCopyChannel (Tcl_Interp *interp, Tcl_Channel inChan, Tcl_Channel outChan, int toRead, Tcl_Obj *cmdPtr);





extern int TclCreatePipeline (Tcl_Interp *interp, int argc, char **argv, Tcl_Pid **pidArrayPtr, TclFile *inPipePtr, TclFile *outPipePtr, TclFile *errFilePtr);



extern int TclCreateProc (Tcl_Interp *interp, Namespace *nsPtr, char *procName, Tcl_Obj *argsPtr, Tcl_Obj *bodyPtr, Proc **procPtrPtr);



extern void TclDeleteCompiledLocalVars ( Interp *iPtr, CallFrame *framePtr);

extern void TclDeleteVars (Interp *iPtr, Tcl_HashTable *tablePtr);

extern int TclDoGlob (Tcl_Interp *interp, char *separators, Tcl_DString *headPtr, char *tail, GlobTypeData *types);


extern void TclDumpMemoryInfo (FILE *outFile);
extern void TclExpandTokenArray ( Tcl_Parse *parsePtr);

extern void TclExprFloatError (Tcl_Interp *interp, double value);

extern int TclFileAttrsCmd (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int TclFileCopyCmd (Tcl_Interp *interp, int argc, char **argv) ;

extern int TclFileDeleteCmd (Tcl_Interp *interp, int argc, char **argv);

extern int TclFileMakeDirsCmd (Tcl_Interp *interp, int argc, char **argv) ;

extern int TclFileRenameCmd (Tcl_Interp *interp, int argc, char **argv) ;

extern void TclFinalizeAllocSubsystem (void);
extern void TclFinalizeCompExecEnv (void);
extern void TclFinalizeCompilation (void);
extern void TclFinalizeEncodingSubsystem (void);
extern void TclFinalizeEnvironment (void);
extern void TclFinalizeExecution (void);
extern void TclFinalizeIOSubsystem (void);
extern void TclFinalizeLoad (void);
extern void TclFinalizeMemorySubsystem (void);
extern void TclFinalizeNotifier (void);
extern void TclFinalizeSynchronization (void);
extern void TclFinalizeThreadData (void);
extern void TclFindEncodings (const char *argv0);
extern Proc * TclFindProc (Interp *iPtr, char *procName);

extern int TclFormatInt (char *buffer, long n);
extern void TclFreePackageInfo (Interp *iPtr);
extern int TclGetDate (char *p, unsigned long now, long zone, unsigned long *timePtr);


extern Tcl_Obj * TclGetElementOfIndexedArray ( Tcl_Interp *interp, int localIndex, Tcl_Obj *elemPtr, int leaveErrorMsg);


extern char * TclGetExtension (char *name);
extern int TclGetFrame (Tcl_Interp *interp, char *string, CallFrame **framePtrPtr);

extern TclCmdProcType TclGetInterpProc (void);
extern int TclGetIntForIndex (Tcl_Interp *interp, Tcl_Obj *objPtr, int endValue, int *indexPtr);

extern Tcl_Obj * TclGetIndexedScalar (Tcl_Interp *interp, int localIndex, int leaveErrorMsg);

extern int TclGetLong (Tcl_Interp *interp, char *string, long *longPtr);

extern int TclGetLoadedPackages ( Tcl_Interp *interp, char *targetName);

extern int TclGetNamespaceForQualName ( Tcl_Interp *interp, char *qualName, Namespace *cxtNsPtr, int flags, Namespace **nsPtrPtr, Namespace **altNsPtrPtr, Namespace **actualCxtPtrPtr, char **simpleNamePtr);





extern TclObjCmdProcType TclGetObjInterpProc (void);
extern int TclGetOpenMode (Tcl_Interp *interp, char *string, int *seekFlagPtr);

extern Tcl_Command TclGetOriginalCommand ( Tcl_Command command);

extern int TclGlob (Tcl_Interp *interp, char *pattern, char *unquotedPrefix, int globFlags, GlobTypeData* types);


extern int TclGlobalInvoke (Tcl_Interp *interp, int argc, char **argv, int flags);

extern int TclGuessPackageName (char *fileName, Tcl_DString *bufPtr);

extern int TclHideUnsafeCommands ( Tcl_Interp *interp);

extern int TclInExit (void);
extern Tcl_Obj * TclIncrElementOfIndexedArray ( Tcl_Interp *interp, int localIndex, Tcl_Obj *elemPtr, long incrAmount);


extern Tcl_Obj * TclIncrIndexedScalar ( Tcl_Interp *interp, int localIndex, long incrAmount);


extern Tcl_Obj * TclIncrVar2 (Tcl_Interp *interp, Tcl_Obj *part1Ptr, Tcl_Obj *part2Ptr, long incrAmount, int flags);


extern void TclInitAlloc (void);
extern void TclInitCompiledLocals ( Tcl_Interp *interp, CallFrame *framePtr, Namespace *nsPtr);


extern void TclInitDbCkalloc (void);
extern void TclInitEncodingSubsystem (void);
extern void TclInitIOSubsystem (void);
extern void TclInitNamespaceSubsystem (void);
extern void TclInitNotifier (void);
extern void TclInitObjSubsystem (void);
extern void TclInitSubsystems (const char *argv0);
extern int TclInvoke (Tcl_Interp *interp, int argc, char **argv, int flags);

extern int TclInvokeObjectCommand ( ClientData clientData, Tcl_Interp *interp, int argc, char **argv);


extern int TclInvokeStringCommand ( ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);


extern int TclIsLocalScalar (const char *src, int len);

extern Proc * TclIsProc (Command *cmdPtr);
extern Var * TclLookupVar (Tcl_Interp *interp, char *part1, char *part2, int flags, char *msg, int createPart1, int createPart2, Var **arrayPtrPtr);



extern int TclMathInProgress (void);
extern int TclNeedSpace (char *start, char *end);
extern Tcl_Obj * TclNewProcBodyObj (Proc *procPtr);
extern int TclObjCommandComplete (Tcl_Obj *cmdPtr);
extern int TclObjInterpProc (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);


extern int TclObjInvoke (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], int flags);

extern int TclObjInvokeGlobal (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], int flags);

extern int TclOpenFileChannelDeleteProc ( TclOpenFileChannelProc_ *proc);

extern int TclOpenFileChannelInsertProc ( TclOpenFileChannelProc_ *proc);

extern int TclpAccess (const char *filename, int mode);

extern char * TclpAlloc (unsigned int size);
extern int TclpCheckStackSpace (void);
extern int TclpCopyFile (const char *source, const char *dest);

extern int TclpCopyDirectory (const char *source, const char *dest, Tcl_DString *errorPtr);

extern int TclpCreateDirectory (const char *path);
extern int TclpDeleteFile (const char *path);
extern void TclpExit (int status);
extern void TclpFinalizeCondition ( Tcl_Condition *condPtr);

extern void TclpFinalizeMutex (Tcl_Mutex *mutexPtr);
extern void TclpFinalizeThreadData ( Tcl_ThreadDataKey *keyPtr);

extern void TclpFinalizeThreadDataKey ( Tcl_ThreadDataKey *keyPtr);

extern char * TclpFindExecutable ( const char *argv0);

extern int TclpFindVariable (const char *name, int *lengthPtr);

extern void TclpFree (char *ptr);
extern unsigned long TclpGetClicks (void);
extern Tcl_Channel TclpGetDefaultStdChannel (int type);
extern unsigned long TclpGetSeconds (void);
extern void TclpGetTime (Tcl_Time *time);
extern int TclpGetTimeZone (unsigned long time);
extern char * TclpGetUserHome (const char *name, Tcl_DString *bufferPtr);

extern int TclpHasSockets (Tcl_Interp *interp);
extern void TclpInitLibraryPath (const char *argv0);
extern void TclpInitLock (void);
extern void TclpInitPlatform (void);
extern void TclpInitUnlock (void);
extern int TclpListVolumes (Tcl_Interp *interp);
extern void TclpMasterLock (void);
extern void TclpMasterUnlock (void);
extern int TclpMatchFiles (Tcl_Interp *interp, char *separators, Tcl_DString *dirPtr, char *pattern, char *tail);


extern Tcl_Channel TclpOpenFileChannel (Tcl_Interp *interp, char *fileName, char *modeString, int permissions);


extern char * TclpReadlink (const char *fileName, Tcl_DString *linkPtr);

extern char * TclpRealloc (char *ptr, unsigned int size);

extern void TclpReleaseFile (TclFile file);
extern int TclpRemoveDirectory (const char *path, int recursive, Tcl_DString *errorPtr);

extern int TclpRenameFile (const char *source, const char *dest);

extern void TclpSetInitialEncodings (void);
extern void TclpSetVariables (Tcl_Interp *interp);
extern void * TclpSysAlloc (long size, int isBin);
extern void TclpSysFree (void *ptr);
extern void * TclpSysRealloc (void *cp, unsigned int size);

extern void TclpUnloadFile (ClientData clientData);
extern char * TclPrecTraceProc (ClientData clientData, Tcl_Interp *interp, char *name1, char *name2, int flags);


extern int TclPreventAliasLoop (Tcl_Interp *interp, Tcl_Interp *cmdInterp, Tcl_Command cmd);

extern void TclProcCleanupProc (Proc *procPtr);
extern int TclProcCompileProc (Tcl_Interp *interp, Proc *procPtr, Tcl_Obj *bodyPtr, Namespace *nsPtr, const char *description, const char *procName);


extern void TclProcDeleteProc (ClientData clientData);
extern int TclProcInterpProc (ClientData clientData, Tcl_Interp *interp, int argc, char **argv);

extern void * TclpThreadDataKeyGet ( Tcl_ThreadDataKey *keyPtr);

extern void TclpThreadDataKeyInit ( Tcl_ThreadDataKey *keyPtr);

extern void TclpThreadDataKeySet ( Tcl_ThreadDataKey *keyPtr, void *data);

extern void TclpThreadExit (int status);
extern void TclRememberCondition (Tcl_Condition *mutex);
extern void TclRememberDataKey (Tcl_ThreadDataKey *mutex);
extern void TclRememberMutex (Tcl_Mutex *mutex);
extern int TclRenameCommand (Tcl_Interp *interp, char *oldName, char *newName) ;

extern void TclResetShadowedCmdRefs ( Tcl_Interp *interp, Command *newCmdPtr);

extern int TclServiceIdle (void);
extern Tcl_Obj * TclSetElementOfIndexedArray ( Tcl_Interp *interp, int localIndex, Tcl_Obj *elemPtr, Tcl_Obj *objPtr, int leaveErrorMsg);



extern Tcl_Obj * TclSetIndexedScalar (Tcl_Interp *interp, int localIndex, Tcl_Obj *objPtr, int leaveErrorMsg);


extern char * TclSetPreInitScript (char *string);
extern void TclSetupEnv (Tcl_Interp *interp);
extern int TclSockGetPort (Tcl_Interp *interp, char *string, char *proto, int *portPtr);

extern int TclSockMinimumBuffers (int sock, int size);

extern int TclStat (const char *path, struct stat *buf);

extern int TclStatDeleteProc (TclStatProc_ *proc);
extern int TclStatInsertProc (TclStatProc_ *proc);
extern void TclTeardownNamespace (Namespace *nsPtr);
extern void TclTransferResult (Tcl_Interp *sourceInterp, int result, Tcl_Interp *targetInterp);

extern int TclUpdateReturnInfo (Interp *iPtr);







extern int Tcl_AfterObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_AppendObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ArrayObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_BinaryObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_BreakObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_CaseObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_CatchObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_CdObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ClockObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_CloseObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ConcatObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ContinueObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_EncodingObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_EofObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ErrorObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_EvalObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ExecObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ExitObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ExprObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_FblockedObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_FconfigureObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_FcopyObjCmd (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_FileObjCmd (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_FileEventObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_FlushObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ForObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ForeachObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_FormatObjCmd (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_GetsObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_GlobalObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_GlobObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_IfObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_IncrObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_InfoObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_InterpObjCmd (ClientData clientData, Tcl_Interp *interp, int argc, Tcl_Obj *const objv[]);

extern int Tcl_JoinObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_LappendObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_LindexObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_LinsertObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_LlengthObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ListObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_LoadObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_LrangeObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_LreplaceObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_LsearchObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_LsortObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_NamespaceObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_OpenObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_PackageObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_PidObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_PutsObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_PwdObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ReadObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_RegexpObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_RegsubObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_RenameObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ReturnObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ScanObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_SeekObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_SetObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_SplitObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_SocketObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_SourceObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_StringObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_SubstObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_SwitchObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_TellObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_TimeObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_TraceObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_UnsetObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_UpdateObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_UplevelObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_UpvarObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_VariableObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_VwaitObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_WhileObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);
# 2017 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
extern int TclCompileBreakCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr);

extern int TclCompileCatchCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr);

extern int TclCompileContinueCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr);

extern int TclCompileExprCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr);

extern int TclCompileForCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr);

extern int TclCompileForeachCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr);

extern int TclCompileIfCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr);

extern int TclCompileIncrCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr);

extern int TclCompileSetCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr);

extern int TclCompileWhileCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr);
# 2182 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclIntDecls.h" 1
# 33 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclIntDecls.h"
extern int TclAccess (const char * path, int mode);

extern int TclAccessDeleteProc ( TclAccessProc_ * proc);


extern int TclAccessInsertProc ( TclAccessProc_ * proc);


extern void TclAllocateFreeObjects (void);



extern int TclCleanupChildren (Tcl_Interp * interp, int numPids, Tcl_Pid * pidPtr, Tcl_Channel errorChan);
# 56 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclIntDecls.h"
extern void TclCleanupCommand (Command * cmdPtr);

extern int TclCopyAndCollapse (int count, const char * src, char * dst);


extern int TclCopyChannel (Tcl_Interp * interp, Tcl_Channel inChan, Tcl_Channel outChan, int toRead, Tcl_Obj * cmdPtr);




extern int TclCreatePipeline (Tcl_Interp * interp, int argc, char ** argv, Tcl_Pid ** pidArrayPtr, TclFile * inPipePtr, TclFile * outPipePtr, TclFile * errFilePtr);
# 79 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclIntDecls.h"
extern int TclCreateProc (Tcl_Interp * interp, Namespace * nsPtr, char * procName, Tcl_Obj * argsPtr, Tcl_Obj * bodyPtr, Proc ** procPtrPtr);




extern void TclDeleteCompiledLocalVars ( Interp * iPtr, CallFrame * framePtr);


extern void TclDeleteVars (Interp * iPtr, Tcl_HashTable * tablePtr);


extern int TclDoGlob (Tcl_Interp * interp, char * separators, Tcl_DString * headPtr, char * tail, GlobTypeData * types);



extern void TclDumpMemoryInfo (FILE * outFile);


extern void TclExprFloatError (Tcl_Interp * interp, double value);


extern int TclFileAttrsCmd (Tcl_Interp * interp, int objc, Tcl_Obj *const objv[]);


extern int TclFileCopyCmd (Tcl_Interp * interp, int argc, char ** argv);


extern int TclFileDeleteCmd (Tcl_Interp * interp, int argc, char ** argv);


extern int TclFileMakeDirsCmd (Tcl_Interp * interp, int argc, char ** argv);


extern int TclFileRenameCmd (Tcl_Interp * interp, int argc, char ** argv);


extern int TclFindElement (Tcl_Interp * interp, const char * listStr, int listLength, const char ** elementPtr, const char ** nextPtr, int * sizePtr, int * bracePtr);





extern Proc * TclFindProc (Interp * iPtr, char * procName);


extern int TclFormatInt (char * buffer, long n);

extern void TclFreePackageInfo (Interp * iPtr);


extern int TclGetDate (char * p, unsigned long now, long zone, unsigned long * timePtr);


extern Tcl_Channel TclpGetDefaultStdChannel (int type);

extern Tcl_Obj * TclGetElementOfIndexedArray ( Tcl_Interp * interp, int localIndex, Tcl_Obj * elemPtr, int leaveErrorMsg);




extern char * TclGetExtension (char * name);

extern int TclGetFrame (Tcl_Interp * interp, char * str, CallFrame ** framePtrPtr);


extern TclCmdProcType TclGetInterpProc (void);

extern int TclGetIntForIndex (Tcl_Interp * interp, Tcl_Obj * objPtr, int endValue, int * indexPtr);



extern Tcl_Obj * TclGetIndexedScalar (Tcl_Interp * interp, int localIndex, int leaveErrorMsg);


extern int TclGetLong (Tcl_Interp * interp, char * str, long * longPtr);


extern int TclGetLoadedPackages ( Tcl_Interp * interp, char * targetName);


extern int TclGetNamespaceForQualName ( Tcl_Interp * interp, char * qualName, Namespace * cxtNsPtr, int flags, Namespace ** nsPtrPtr, Namespace ** altNsPtrPtr, Namespace ** actualCxtPtrPtr, char ** simpleNamePtr);







extern TclObjCmdProcType TclGetObjInterpProc (void);

extern int TclGetOpenMode (Tcl_Interp * interp, char * str, int * seekFlagPtr);


extern Tcl_Command TclGetOriginalCommand ( Tcl_Command command);


extern char * TclpGetUserHome (const char * name, Tcl_DString * bufferPtr);


extern int TclGlobalInvoke (Tcl_Interp * interp, int argc, char ** argv, int flags);


extern int TclGuessPackageName (char * fileName, Tcl_DString * bufPtr);


extern int TclHideUnsafeCommands ( Tcl_Interp * interp);


extern int TclInExit (void);

extern Tcl_Obj * TclIncrElementOfIndexedArray ( Tcl_Interp * interp, int localIndex, Tcl_Obj * elemPtr, long incrAmount);



extern Tcl_Obj * TclIncrIndexedScalar ( Tcl_Interp * interp, int localIndex, long incrAmount);



extern Tcl_Obj * TclIncrVar2 (Tcl_Interp * interp, Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, long incrAmount, int part1NotParsed);



extern void TclInitCompiledLocals ( Tcl_Interp * interp, CallFrame * framePtr, Namespace * nsPtr);



extern int TclInterpInit (Tcl_Interp * interp);

extern int TclInvoke (Tcl_Interp * interp, int argc, char ** argv, int flags);


extern int TclInvokeObjectCommand ( ClientData clientData, Tcl_Interp * interp, int argc, char ** argv);



extern int TclInvokeStringCommand ( ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *const objv[]);



extern Proc * TclIsProc (Command * cmdPtr);



extern Var * TclLookupVar (Tcl_Interp * interp, char * part1, char * part2, int flags, char * msg, int createPart1, int createPart2, Var ** arrayPtrPtr);




extern int TclpMatchFiles (Tcl_Interp * interp, char * separators, Tcl_DString * dirPtr, char * pattern, char * tail);



extern int TclNeedSpace (char * start, char * end);

extern Tcl_Obj * TclNewProcBodyObj (Proc * procPtr);

extern int TclObjCommandComplete (Tcl_Obj * cmdPtr);

extern int TclObjInterpProc (ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *const objv[]);



extern int TclObjInvoke (Tcl_Interp * interp, int objc, Tcl_Obj *const objv[], int flags);


extern int TclObjInvokeGlobal (Tcl_Interp * interp, int objc, Tcl_Obj *const objv[], int flags);


extern int TclOpenFileChannelDeleteProc ( TclOpenFileChannelProc_ * proc);


extern int TclOpenFileChannelInsertProc ( TclOpenFileChannelProc_ * proc);


extern int TclpAccess (const char * path, int mode);

extern char * TclpAlloc (unsigned int size);

extern int TclpCopyFile (const char * source, const char * dest);


extern int TclpCopyDirectory (const char * source, const char * dest, Tcl_DString * errorPtr);


extern int TclpCreateDirectory (const char * path);

extern int TclpDeleteFile (const char * path);

extern void TclpFree (char * ptr);

extern unsigned long TclpGetClicks (void);

extern unsigned long TclpGetSeconds (void);

extern void TclpGetTime (Tcl_Time * time);

extern int TclpGetTimeZone (unsigned long time);

extern int TclpListVolumes (Tcl_Interp * interp);

extern Tcl_Channel TclpOpenFileChannel (Tcl_Interp * interp, char * fileName, char * modeString, int permissions);



extern char * TclpRealloc (char * ptr, unsigned int size);


extern int TclpRemoveDirectory (const char * path, int recursive, Tcl_DString * errorPtr);


extern int TclpRenameFile (const char * source, const char * dest);






extern char * TclPrecTraceProc (ClientData clientData, Tcl_Interp * interp, char * name1, char * name2, int flags);



extern int TclPreventAliasLoop (Tcl_Interp * interp, Tcl_Interp * cmdInterp, Tcl_Command cmd);



extern void TclProcCleanupProc (Proc * procPtr);

extern int TclProcCompileProc (Tcl_Interp * interp, Proc * procPtr, Tcl_Obj * bodyPtr, Namespace * nsPtr, const char * description, const char * procName);




extern void TclProcDeleteProc (ClientData clientData);

extern int TclProcInterpProc (ClientData clientData, Tcl_Interp * interp, int argc, char ** argv);


extern int TclpStat (const char * path, struct stat * buf);


extern int TclRenameCommand (Tcl_Interp * interp, char * oldName, char * newName);


extern void TclResetShadowedCmdRefs ( Tcl_Interp * interp, Command * newCmdPtr);


extern int TclServiceIdle (void);

extern Tcl_Obj * TclSetElementOfIndexedArray ( Tcl_Interp * interp, int localIndex, Tcl_Obj * elemPtr, Tcl_Obj * objPtr, int leaveErrorMsg);




extern Tcl_Obj * TclSetIndexedScalar (Tcl_Interp * interp, int localIndex, Tcl_Obj * objPtr, int leaveErrorMsg);




extern char * TclSetPreInitScript (char * string);






extern void TclSetupEnv (Tcl_Interp * interp);

extern int TclSockGetPort (Tcl_Interp * interp, char * str, char * proto, int * portPtr);



extern int TclSockMinimumBuffers (int sock, int size);
# 359 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclIntDecls.h"
extern int TclStat (const char * path, struct stat * buf);


extern int TclStatDeleteProc (TclStatProc_ * proc);

extern int TclStatInsertProc (TclStatProc_ * proc);

extern void TclTeardownNamespace (Namespace * nsPtr);

extern int TclUpdateReturnInfo (Interp * iPtr);


extern void Tcl_AddInterpResolvers ( Tcl_Interp * interp, char * name, Tcl_ResolveCmdProc * cmdProc, Tcl_ResolveVarProc * varProc, Tcl_ResolveCompiledVarProc * compiledVarProc);





extern int Tcl_AppendExportList ( Tcl_Interp * interp, Tcl_Namespace * nsPtr, Tcl_Obj * objPtr);



extern Tcl_Namespace * Tcl_CreateNamespace (Tcl_Interp * interp, char * name, ClientData clientData, Tcl_NamespaceDeleteProc * deleteProc);



extern void Tcl_DeleteNamespace ( Tcl_Namespace * nsPtr);


extern int Tcl_Export (Tcl_Interp * interp, Tcl_Namespace * nsPtr, char * pattern, int resetListFirst);



extern Tcl_Command Tcl_FindCommand (Tcl_Interp * interp, char * name, Tcl_Namespace * contextNsPtr, int flags);



extern Tcl_Namespace * Tcl_FindNamespace (Tcl_Interp * interp, char * name, Tcl_Namespace * contextNsPtr, int flags);



extern int Tcl_GetInterpResolvers ( Tcl_Interp * interp, char * name, Tcl_ResolverInfo * resInfo);



extern int Tcl_GetNamespaceResolvers ( Tcl_Namespace * namespacePtr, Tcl_ResolverInfo * resInfo);



extern Tcl_Var Tcl_FindNamespaceVar ( Tcl_Interp * interp, char * name, Tcl_Namespace * contextNsPtr, int flags);



extern int Tcl_ForgetImport (Tcl_Interp * interp, Tcl_Namespace * nsPtr, char * pattern);


extern Tcl_Command Tcl_GetCommandFromObj ( Tcl_Interp * interp, Tcl_Obj * objPtr);


extern void Tcl_GetCommandFullName ( Tcl_Interp * interp, Tcl_Command command, Tcl_Obj * objPtr);



extern Tcl_Namespace * Tcl_GetCurrentNamespace ( Tcl_Interp * interp);


extern Tcl_Namespace * Tcl_GetGlobalNamespace ( Tcl_Interp * interp);


extern void Tcl_GetVariableFullName ( Tcl_Interp * interp, Tcl_Var variable, Tcl_Obj * objPtr);



extern int Tcl_Import (Tcl_Interp * interp, Tcl_Namespace * nsPtr, char * pattern, int allowOverwrite);



extern void Tcl_PopCallFrame (Tcl_Interp* interp);

extern int Tcl_PushCallFrame (Tcl_Interp* interp, Tcl_CallFrame * framePtr, Tcl_Namespace * nsPtr, int isProcCallFrame);



extern int Tcl_RemoveInterpResolvers ( Tcl_Interp * interp, char * name);


extern void Tcl_SetNamespaceResolvers ( Tcl_Namespace * namespacePtr, Tcl_ResolveCmdProc * cmdProc, Tcl_ResolveVarProc * varProc, Tcl_ResolveCompiledVarProc * compiledVarProc);





extern int TclpHasSockets (Tcl_Interp * interp);

extern struct tm * TclpGetDate (TclpTime_t time, int useGMT);

extern size_t TclpStrftime (char * s, size_t maxsize, const char * format, const struct tm * t);


extern int TclpCheckStackSpace (void);


extern int TclpChdir (const char * dirName);

extern char * TclGetEnv (const char * name, Tcl_DString * valuePtr);


extern int TclpLoadFile (Tcl_Interp * interp, char * fileName, char * sym1, char * sym2, Tcl_PackageInitProc ** proc1Ptr, Tcl_PackageInitProc ** proc2Ptr, ClientData * clientDataPtr);





extern int TclLooksLikeInt (char * bytes, int length);


extern char * TclpGetCwd (Tcl_Interp * interp, Tcl_DString * cwdPtr);


extern int TclSetByteCodeFromAny ( Tcl_Interp * interp, Tcl_Obj * objPtr, CompileHookProc * hookProc, ClientData clientData);




extern int TclAddLiteralObj ( struct CompileEnv * envPtr, Tcl_Obj * objPtr, LiteralEntry ** litPtrPtr);



extern void TclHideLiteral (Tcl_Interp * interp, struct CompileEnv * envPtr, int index);


extern struct AuxDataType * TclGetAuxDataType (char * typeName);

extern TclHandle TclHandleCreate (void * ptr);

extern void TclHandleFree (TclHandle handle);

extern TclHandle TclHandlePreserve (TclHandle handle);

extern void TclHandleRelease (TclHandle handle);

extern int TclRegAbout (Tcl_Interp * interp, Tcl_RegExp re);


extern void TclRegExpRangeUniChar (Tcl_RegExp re, int index, int * startPtr, int * endPtr);


extern void TclSetLibraryPath (Tcl_Obj * pathPtr);

extern Tcl_Obj * TclGetLibraryPath (void);



extern void TclRegError (Tcl_Interp * interp, char * msg, int status);


extern Var * TclVarTraceExists (Tcl_Interp * interp, char * varName);


extern void TclSetStartupScriptFileName ( char * filename);


extern char * TclGetStartupScriptFileName (void);

extern int TclpMatchFilesTypes (Tcl_Interp * interp, char * separators, Tcl_DString * dirPtr, char * pattern, char * tail, GlobTypeData * types);




extern int TclChannelTransform (Tcl_Interp * interp, Tcl_Channel chan, Tcl_Obj * cmdObjPtr);


extern void TclChannelEventScriptInvoker ( ClientData clientData, int flags);


typedef struct TclIntStubs {
    int magic;
    struct TclIntStubHooks *hooks;

    int (*tclAccess) (const char * path, int mode);
    int (*tclAccessDeleteProc) (TclAccessProc_ * proc);
    int (*tclAccessInsertProc) (TclAccessProc_ * proc);
    void (*tclAllocateFreeObjects) (void);
    void *reserved4;

    int (*tclCleanupChildren) (Tcl_Interp * interp, int numPids, Tcl_Pid * pidPtr, Tcl_Channel errorChan);







    void (*tclCleanupCommand) (Command * cmdPtr);
    int (*tclCopyAndCollapse) (int count, const char * src, char * dst);
    int (*tclCopyChannel) (Tcl_Interp * interp, Tcl_Channel inChan, Tcl_Channel outChan, int toRead, Tcl_Obj * cmdPtr);

    int (*tclCreatePipeline) (Tcl_Interp * interp, int argc, char ** argv, Tcl_Pid ** pidArrayPtr, TclFile * inPipePtr, TclFile * outPipePtr, TclFile * errFilePtr);







    int (*tclCreateProc) (Tcl_Interp * interp, Namespace * nsPtr, char * procName, Tcl_Obj * argsPtr, Tcl_Obj * bodyPtr, Proc ** procPtrPtr);
    void (*tclDeleteCompiledLocalVars) (Interp * iPtr, CallFrame * framePtr);
    void (*tclDeleteVars) (Interp * iPtr, Tcl_HashTable * tablePtr);
    int (*tclDoGlob) (Tcl_Interp * interp, char * separators, Tcl_DString * headPtr, char * tail, GlobTypeData * types);
    void (*tclDumpMemoryInfo) (FILE * outFile);
    void *reserved15;
    void (*tclExprFloatError) (Tcl_Interp * interp, double value);
    int (*tclFileAttrsCmd) (Tcl_Interp * interp, int objc, Tcl_Obj *const objv[]);
    int (*tclFileCopyCmd) (Tcl_Interp * interp, int argc, char ** argv);
    int (*tclFileDeleteCmd) (Tcl_Interp * interp, int argc, char ** argv);
    int (*tclFileMakeDirsCmd) (Tcl_Interp * interp, int argc, char ** argv);
    int (*tclFileRenameCmd) (Tcl_Interp * interp, int argc, char ** argv);
    int (*tclFindElement) (Tcl_Interp * interp, const char * listStr, int listLength, const char ** elementPtr, const char ** nextPtr, int * sizePtr, int * bracePtr);
    Proc * (*tclFindProc) (Interp * iPtr, char * procName);
    int (*tclFormatInt) (char * buffer, long n);
    void (*tclFreePackageInfo) (Interp * iPtr);
    void *reserved26;
    int (*tclGetDate) (char * p, unsigned long now, long zone, unsigned long * timePtr);
    Tcl_Channel (*tclpGetDefaultStdChannel) (int type);
    Tcl_Obj * (*tclGetElementOfIndexedArray) (Tcl_Interp * interp, int localIndex, Tcl_Obj * elemPtr, int leaveErrorMsg);
    void *reserved30;
    char * (*tclGetExtension) (char * name);
    int (*tclGetFrame) (Tcl_Interp * interp, char * str, CallFrame ** framePtrPtr);
    TclCmdProcType (*tclGetInterpProc) (void);
    int (*tclGetIntForIndex) (Tcl_Interp * interp, Tcl_Obj * objPtr, int endValue, int * indexPtr);
    Tcl_Obj * (*tclGetIndexedScalar) (Tcl_Interp * interp, int localIndex, int leaveErrorMsg);
    int (*tclGetLong) (Tcl_Interp * interp, char * str, long * longPtr);
    int (*tclGetLoadedPackages) (Tcl_Interp * interp, char * targetName);
    int (*tclGetNamespaceForQualName) (Tcl_Interp * interp, char * qualName, Namespace * cxtNsPtr, int flags, Namespace ** nsPtrPtr, Namespace ** altNsPtrPtr, Namespace ** actualCxtPtrPtr, char ** simpleNamePtr);
    TclObjCmdProcType (*tclGetObjInterpProc) (void);
    int (*tclGetOpenMode) (Tcl_Interp * interp, char * str, int * seekFlagPtr);
    Tcl_Command (*tclGetOriginalCommand) (Tcl_Command command);
    char * (*tclpGetUserHome) (const char * name, Tcl_DString * bufferPtr);
    int (*tclGlobalInvoke) (Tcl_Interp * interp, int argc, char ** argv, int flags);
    int (*tclGuessPackageName) (char * fileName, Tcl_DString * bufPtr);
    int (*tclHideUnsafeCommands) (Tcl_Interp * interp);
    int (*tclInExit) (void);
    Tcl_Obj * (*tclIncrElementOfIndexedArray) (Tcl_Interp * interp, int localIndex, Tcl_Obj * elemPtr, long incrAmount);
    Tcl_Obj * (*tclIncrIndexedScalar) (Tcl_Interp * interp, int localIndex, long incrAmount);
    Tcl_Obj * (*tclIncrVar2) (Tcl_Interp * interp, Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, long incrAmount, int part1NotParsed);
    void (*tclInitCompiledLocals) (Tcl_Interp * interp, CallFrame * framePtr, Namespace * nsPtr);
    int (*tclInterpInit) (Tcl_Interp * interp);
    int (*tclInvoke) (Tcl_Interp * interp, int argc, char ** argv, int flags);
    int (*tclInvokeObjectCommand) (ClientData clientData, Tcl_Interp * interp, int argc, char ** argv);
    int (*tclInvokeStringCommand) (ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *const objv[]);
    Proc * (*tclIsProc) (Command * cmdPtr);
    void *reserved56;
    void *reserved57;
    Var * (*tclLookupVar) (Tcl_Interp * interp, char * part1, char * part2, int flags, char * msg, int createPart1, int createPart2, Var ** arrayPtrPtr);
    int (*tclpMatchFiles) (Tcl_Interp * interp, char * separators, Tcl_DString * dirPtr, char * pattern, char * tail);
    int (*tclNeedSpace) (char * start, char * end);
    Tcl_Obj * (*tclNewProcBodyObj) (Proc * procPtr);
    int (*tclObjCommandComplete) (Tcl_Obj * cmdPtr);
    int (*tclObjInterpProc) (ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *const objv[]);
    int (*tclObjInvoke) (Tcl_Interp * interp, int objc, Tcl_Obj *const objv[], int flags);
    int (*tclObjInvokeGlobal) (Tcl_Interp * interp, int objc, Tcl_Obj *const objv[], int flags);
    int (*tclOpenFileChannelDeleteProc) (TclOpenFileChannelProc_ * proc);
    int (*tclOpenFileChannelInsertProc) (TclOpenFileChannelProc_ * proc);
    int (*tclpAccess) (const char * path, int mode);

    char * (*tclpAlloc) (unsigned int size);

    int (*tclpCopyFile) (const char * source, const char * dest);
    int (*tclpCopyDirectory) (const char * source, const char * dest, Tcl_DString * errorPtr);
    int (*tclpCreateDirectory) (const char * path);
    int (*tclpDeleteFile) (const char * path);

    void (*tclpFree) (char * ptr);

    unsigned long (*tclpGetClicks) (void);
    unsigned long (*tclpGetSeconds) (void);
    void (*tclpGetTime) (Tcl_Time * time);
    int (*tclpGetTimeZone) (unsigned long time);
    int (*tclpListVolumes) (Tcl_Interp * interp);
    Tcl_Channel (*tclpOpenFileChannel) (Tcl_Interp * interp, char * fileName, char * modeString, int permissions);

    char * (*tclpRealloc) (char * ptr, unsigned int size);

    int (*tclpRemoveDirectory) (const char * path, int recursive, Tcl_DString * errorPtr);
    int (*tclpRenameFile) (const char * source, const char * dest);
    void *reserved84;
    void *reserved85;
    void *reserved86;
    void *reserved87;
    char * (*tclPrecTraceProc) (ClientData clientData, Tcl_Interp * interp, char * name1, char * name2, int flags);
    int (*tclPreventAliasLoop) (Tcl_Interp * interp, Tcl_Interp * cmdInterp, Tcl_Command cmd);
    void *reserved90;
    void (*tclProcCleanupProc) (Proc * procPtr);
    int (*tclProcCompileProc) (Tcl_Interp * interp, Proc * procPtr, Tcl_Obj * bodyPtr, Namespace * nsPtr, const char * description, const char * procName);
    void (*tclProcDeleteProc) (ClientData clientData);
    int (*tclProcInterpProc) (ClientData clientData, Tcl_Interp * interp, int argc, char ** argv);
    int (*tclpStat) (const char * path, struct stat * buf);
    int (*tclRenameCommand) (Tcl_Interp * interp, char * oldName, char * newName);
    void (*tclResetShadowedCmdRefs) (Tcl_Interp * interp, Command * newCmdPtr);
    int (*tclServiceIdle) (void);
    Tcl_Obj * (*tclSetElementOfIndexedArray) (Tcl_Interp * interp, int localIndex, Tcl_Obj * elemPtr, Tcl_Obj * objPtr, int leaveErrorMsg);
    Tcl_Obj * (*tclSetIndexedScalar) (Tcl_Interp * interp, int localIndex, Tcl_Obj * objPtr, int leaveErrorMsg);

    char * (*tclSetPreInitScript) (char * string);







    void (*tclSetupEnv) (Tcl_Interp * interp);
    int (*tclSockGetPort) (Tcl_Interp * interp, char * str, char * proto, int * portPtr);

    int (*tclSockMinimumBuffers) (int sock, int size);







    int (*tclStat) (const char * path, struct stat * buf);
    int (*tclStatDeleteProc) (TclStatProc_ * proc);
    int (*tclStatInsertProc) (TclStatProc_ * proc);
    void (*tclTeardownNamespace) (Namespace * nsPtr);
    int (*tclUpdateReturnInfo) (Interp * iPtr);
    void *reserved110;
    void (*tcl_AddInterpResolvers) (Tcl_Interp * interp, char * name, Tcl_ResolveCmdProc * cmdProc, Tcl_ResolveVarProc * varProc, Tcl_ResolveCompiledVarProc * compiledVarProc);
    int (*tcl_AppendExportList) (Tcl_Interp * interp, Tcl_Namespace * nsPtr, Tcl_Obj * objPtr);
    Tcl_Namespace * (*tcl_CreateNamespace) (Tcl_Interp * interp, char * name, ClientData clientData, Tcl_NamespaceDeleteProc * deleteProc);
    void (*tcl_DeleteNamespace) (Tcl_Namespace * nsPtr);
    int (*tcl_Export) (Tcl_Interp * interp, Tcl_Namespace * nsPtr, char * pattern, int resetListFirst);
    Tcl_Command (*tcl_FindCommand) (Tcl_Interp * interp, char * name, Tcl_Namespace * contextNsPtr, int flags);
    Tcl_Namespace * (*tcl_FindNamespace) (Tcl_Interp * interp, char * name, Tcl_Namespace * contextNsPtr, int flags);
    int (*tcl_GetInterpResolvers) (Tcl_Interp * interp, char * name, Tcl_ResolverInfo * resInfo);
    int (*tcl_GetNamespaceResolvers) (Tcl_Namespace * namespacePtr, Tcl_ResolverInfo * resInfo);
    Tcl_Var (*tcl_FindNamespaceVar) (Tcl_Interp * interp, char * name, Tcl_Namespace * contextNsPtr, int flags);
    int (*tcl_ForgetImport) (Tcl_Interp * interp, Tcl_Namespace * nsPtr, char * pattern);
    Tcl_Command (*tcl_GetCommandFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr);
    void (*tcl_GetCommandFullName) (Tcl_Interp * interp, Tcl_Command command, Tcl_Obj * objPtr);
    Tcl_Namespace * (*tcl_GetCurrentNamespace) (Tcl_Interp * interp);
    Tcl_Namespace * (*tcl_GetGlobalNamespace) (Tcl_Interp * interp);
    void (*tcl_GetVariableFullName) (Tcl_Interp * interp, Tcl_Var variable, Tcl_Obj * objPtr);
    int (*tcl_Import) (Tcl_Interp * interp, Tcl_Namespace * nsPtr, char * pattern, int allowOverwrite);
    void (*tcl_PopCallFrame) (Tcl_Interp* interp);
    int (*tcl_PushCallFrame) (Tcl_Interp* interp, Tcl_CallFrame * framePtr, Tcl_Namespace * nsPtr, int isProcCallFrame);
    int (*tcl_RemoveInterpResolvers) (Tcl_Interp * interp, char * name);
    void (*tcl_SetNamespaceResolvers) (Tcl_Namespace * namespacePtr, Tcl_ResolveCmdProc * cmdProc, Tcl_ResolveVarProc * varProc, Tcl_ResolveCompiledVarProc * compiledVarProc);
    int (*tclpHasSockets) (Tcl_Interp * interp);
    struct tm * (*tclpGetDate) (TclpTime_t time, int useGMT);
    size_t (*tclpStrftime) (char * s, size_t maxsize, const char * format, const struct tm * t);
    int (*tclpCheckStackSpace) (void);
    void *reserved136;
    int (*tclpChdir) (const char * dirName);
    char * (*tclGetEnv) (const char * name, Tcl_DString * valuePtr);
    int (*tclpLoadFile) (Tcl_Interp * interp, char * fileName, char * sym1, char * sym2, Tcl_PackageInitProc ** proc1Ptr, Tcl_PackageInitProc ** proc2Ptr, ClientData * clientDataPtr);
    int (*tclLooksLikeInt) (char * bytes, int length);
    char * (*tclpGetCwd) (Tcl_Interp * interp, Tcl_DString * cwdPtr);
    int (*tclSetByteCodeFromAny) (Tcl_Interp * interp, Tcl_Obj * objPtr, CompileHookProc * hookProc, ClientData clientData);
    int (*tclAddLiteralObj) (struct CompileEnv * envPtr, Tcl_Obj * objPtr, LiteralEntry ** litPtrPtr);
    void (*tclHideLiteral) (Tcl_Interp * interp, struct CompileEnv * envPtr, int index);
    struct AuxDataType * (*tclGetAuxDataType) (char * typeName);
    TclHandle (*tclHandleCreate) (void * ptr);
    void (*tclHandleFree) (TclHandle handle);
    TclHandle (*tclHandlePreserve) (TclHandle handle);
    void (*tclHandleRelease) (TclHandle handle);
    int (*tclRegAbout) (Tcl_Interp * interp, Tcl_RegExp re);
    void (*tclRegExpRangeUniChar) (Tcl_RegExp re, int index, int * startPtr, int * endPtr);
    void (*tclSetLibraryPath) (Tcl_Obj * pathPtr);
    Tcl_Obj * (*tclGetLibraryPath) (void);
    void *reserved154;
    void *reserved155;
    void (*tclRegError) (Tcl_Interp * interp, char * msg, int status);
    Var * (*tclVarTraceExists) (Tcl_Interp * interp, char * varName);
    void (*tclSetStartupScriptFileName) (char * filename);
    char * (*tclGetStartupScriptFileName) (void);
    int (*tclpMatchFilesTypes) (Tcl_Interp * interp, char * separators, Tcl_DString * dirPtr, char * pattern, char * tail, GlobTypeData * types);
    int (*tclChannelTransform) (Tcl_Interp * interp, Tcl_Channel chan, Tcl_Obj * cmdObjPtr);
    void (*tclChannelEventScriptInvoker) (ClientData clientData, int flags);
} TclIntStubs;




extern TclIntStubs *tclIntStubsPtr;
# 2183 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h" 2
# 31 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcustom.h" 2
# 87 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcustom.h"
typedef Tcl_UniChar chr;
typedef int pchr;
typedef unsigned uchr;
typedef int celt;
# 114 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcustom.h"
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regex.h" 1
# 135 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regex.h"
typedef long regoff_t;
# 145 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regex.h"
typedef void re_void;
# 165 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regex.h"
typedef struct {
        int re_magic;
        size_t re_nsub;
        long re_info;
# 183 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regex.h"
        int re_csize;
        char *re_endp;

        char *re_guts;
        char *re_fns;
} regex_t;


typedef struct {
        regoff_t rm_so;
        regoff_t rm_eo;
} regmatch_t;


typedef struct {
        regmatch_t rm_extend;
} rm_detail_t;
# 314 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regex.h"
int TclReComp (regex_t *, const Tcl_UniChar *, size_t, int);
# 323 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regex.h"
int TclReExec (regex_t *, const Tcl_UniChar *, size_t, rm_detail_t *, size_t, regmatch_t [], int);

re_void TclReFree (regex_t *);
extern size_t TclReError (int, const regex_t *, char *, size_t);
# 115 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcustom.h" 2
# 39 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h" 2
# 60 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
# 1 "/usr/include/assert.h" 1 3 4
# 47 "/usr/include/assert.h" 3 4
void _assert (const void*, const void*, unsigned int);
# 61 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h" 2
# 173 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
typedef short color;
typedef int pcolor;
# 191 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
struct colors {
        color ccolor[(1<<8)];
};
struct ptrs {
        union tree *pptr[(1<<8)];
};
union tree {
        struct colors colors;
        struct ptrs ptrs;
};




struct colordesc {
        uchr nchrs;
        color sub;

        struct arc *arcs;
        int flags;



        union tree *block;
};


struct colormap {
        int magic;

        struct vars *v;
        size_t ncds;
        size_t max;
        color free;
        struct colordesc *cd;


        struct colordesc cdspace[((size_t)10)];
        union tree tree[((16 +8 -1)/8)];
};
# 254 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
struct cvec {
        int nchrs;
        int chrspace;
        chr *chrs;
        int nranges;
        int rangespace;
        chr *ranges;
        int nmcces;
        int mccespace;
        int nmccechrs;
        chr *mcces[1];

};
# 279 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
struct state;

struct arc {
        int type;

        color co;
        struct state *from;
        struct state *to;
        struct arc *outchain;

        struct arc *inchain;
        struct arc *colorchain;
};

struct arcbatch {
        struct arcbatch *next;

        struct arc a[10];
};

struct state {
        int no;

        char flag;
        int nins;
        struct arc *ins;
        int nouts;
        struct arc *outs;
        struct arc *free;
        struct state *tmp;
        struct state *next;
        struct state *prev;
        struct arcbatch oas;
        int noas;
};

struct nfa {
        struct state *pre;
        struct state *init;
        struct state *final;
        struct state *post;
        int nstates;
        struct state *states;
        struct state *slast;
        struct state *free;
        struct colormap *cm;
        color bos[2];
        color eos[2];
        struct vars *v;
        struct nfa *parent;
};






struct carc {
        color co;
        int to;
};

struct cnfa {
        int nstates;
        int ncolors;
        int flags;

        int pre;
        int post;
        color bos[2];
        color eos[2];
        struct carc **states;
        struct carc *arcs;
};
# 361 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
struct subre {
        char op;
        char flags;
# 378 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
        short retry;
        int subno;
        short min;
        short max;
        struct subre *left;
        struct subre *right;
        struct state *begin;
        struct state *end;
        struct cnfa cnfa;
        struct subre *chain;
};







struct fns {
        void (*free) (regex_t *);
};






struct guts {
        int magic;

        int cflags;
        long info;
        size_t nsub;
        struct subre *tree;
        struct cnfa search;
        int ntree;
        struct colormap cmap;
        int (*compare) (const chr *, const chr *, size_t);
        struct subre *lacons;
        int nlacons;
};
# 34 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c" 2







int TclReComp (regex_t *, const chr *, size_t, int);
static void moresubs (struct vars *, int);
static int freev (struct vars *, int);
static void makesearch (struct vars *, struct nfa *);
static struct subre *parse (struct vars *, int, int, struct state *, struct state *);
static struct subre *parsebranch (struct vars *, int, int, struct state *, struct state *, int);
static void parseqatom (struct vars *, int, int, struct state *, struct state *, struct subre *);
static void nonword (struct vars *, int, struct state *, struct state *);
static void word (struct vars *, int, struct state *, struct state *);
static int scannum (struct vars *);
static void repeat (struct vars *, struct state *, struct state *, int, int);
static void bracket (struct vars *, struct state *, struct state *);
static void cbracket (struct vars *, struct state *, struct state *);
static void brackpart (struct vars *, struct state *, struct state *);
static chr *scanplain (struct vars *);
static void leaders (struct vars *, struct cvec *);
static void onechr (struct vars *, pchr, struct state *, struct state *);
static void dovec (struct vars *, struct cvec *, struct state *, struct state *);
static celt nextleader (struct vars *, pchr, pchr);
static void wordchrs (struct vars *);
static struct subre *subre (struct vars *, int, int, struct state *, struct state *);
static void freesubre (struct vars *, struct subre *);
static void freesrnode (struct vars *, struct subre *);
static void optst (struct vars *, struct subre *);
static int numst (struct subre *, int);
static void markst (struct subre *);
static void cleanst (struct vars *);
static long nfatree (struct vars *, struct subre *, FILE *);
static long nfanode (struct vars *, struct subre *, FILE *);
static int newlacon (struct vars *, struct state *, struct state *, int);
static void freelacons (struct subre *, int);
static void rfree (regex_t *);
static void dump (regex_t *, FILE *);
static void dumpst (struct subre *, FILE *, int);
static void stdump (struct subre *, FILE *, int);
static char *stid (struct subre *, char *, size_t);

static void lexstart (struct vars *);
static void prefixes (struct vars *);
static void lexnest (struct vars *, chr *, chr *);
static void lexword (struct vars *);
static int next (struct vars *);
static int lexescape (struct vars *);
static chr lexdigits (struct vars *, int, int, int);
static int brenext (struct vars *, pchr);
static void skip (struct vars *);
static chr newline (void);



static chr chrnamed (struct vars *, chr *, chr *, pchr);

static void initcm (struct vars *, struct colormap *);
static void freecm (struct colormap *);
static void cmtreefree (struct colormap *, union tree *, int);
static color setcolor (struct colormap *, pchr, pcolor);
static color maxcolor (struct colormap *);
static color newcolor (struct colormap *);
static void freecolor (struct colormap *, pcolor);
static color pseudocolor (struct colormap *);
static color subcolor (struct colormap *, pchr c);
static color newsub (struct colormap *, pcolor);
static void subrange (struct vars *, pchr, pchr, struct state *, struct state *);
static void subblock (struct vars *, pchr, struct state *, struct state *);
static void okcolors (struct nfa *, struct colormap *);
static void colorchain (struct colormap *, struct arc *);
static void uncolorchain (struct colormap *, struct arc *);
static int singleton (struct colormap *, pchr c);
static void rainbow (struct nfa *, struct colormap *, int, pcolor, struct state *, struct state *);
static void colorcomplement (struct nfa *, struct colormap *, int, struct state *, struct state *, struct state *);






static struct nfa *newnfa (struct vars *, struct colormap *, struct nfa *);
static void freenfa (struct nfa *);
static struct state *newstate (struct nfa *);
static struct state *newfstate (struct nfa *, int flag);
static void dropstate (struct nfa *, struct state *);
static void freestate (struct nfa *, struct state *);
static void destroystate (struct nfa *, struct state *);
static void newarc (struct nfa *, int, pcolor, struct state *, struct state *);
static struct arc *allocarc (struct nfa *, struct state *);
static void freearc (struct nfa *, struct arc *);
static struct arc *findarc (struct state *, int, pcolor);
static void cparc (struct nfa *, struct arc *, struct state *, struct state *);
static void moveins (struct nfa *, struct state *, struct state *);
static void copyins (struct nfa *, struct state *, struct state *);
static void moveouts (struct nfa *, struct state *, struct state *);
static void copyouts (struct nfa *, struct state *, struct state *);
static void cloneouts (struct nfa *, struct state *, struct state *, struct state *, int);
static void delsub (struct nfa *, struct state *, struct state *);
static void deltraverse (struct nfa *, struct state *, struct state *);
static void dupnfa (struct nfa *, struct state *, struct state *, struct state *, struct state *);
static void duptraverse (struct nfa *, struct state *, struct state *);
static void cleartraverse (struct nfa *, struct state *);
static void specialcolors (struct nfa *);
static long optimize (struct nfa *, FILE *);
static void pullback (struct nfa *, FILE *);
static int pull (struct nfa *, struct arc *);
static void pushfwd (struct nfa *, FILE *);
static int push (struct nfa *, struct arc *);



static int combine (struct arc *, struct arc *);
static void fixempties (struct nfa *, FILE *);
static int unempty (struct nfa *, struct arc *);
static void cleanup (struct nfa *);
static void markreachable (struct nfa *, struct state *, struct state *, struct state *);
static void markcanreach (struct nfa *, struct state *, struct state *, struct state *);
static long analyze (struct nfa *);
static void compact (struct nfa *, struct cnfa *);
static void carcsort (struct carc *, struct carc *);
static void freecnfa (struct cnfa *);
static void dumpnfa (struct nfa *, FILE *);






static void dumpcnfa (struct cnfa *, FILE *);




static struct cvec *newcvec (int, int, int);
static struct cvec *clearcvec (struct cvec *);
static void addchr (struct cvec *, pchr);
static void addrange (struct cvec *, pchr, pchr);
static void addmcce (struct cvec *, chr *, chr *);
static int haschr (struct cvec *, pchr);
static struct cvec *getcvec (struct vars *, int, int, int);
static void freecvec (struct cvec *);

static int nmcces (struct vars *);
static int nleaders (struct vars *);
static struct cvec *allmcces (struct vars *, struct cvec *);
static celt element (struct vars *, chr *, chr *);
static struct cvec *range (struct vars *, celt, celt, int);
static int before (celt, celt);
static struct cvec *eclass (struct vars *, celt, int);
static struct cvec *cclass (struct vars *, chr *, chr *, int);
static struct cvec *allcases (struct vars *, pchr);
static int cmp (const chr *, const chr *, size_t);
static int casecmp (const chr *, const chr *, size_t);






struct vars {
        regex_t *re;
        chr *now;
        chr *stop;
        chr *savenow;
        chr *savestop;
        int err;
        int cflags;
        int lasttype;
        int nexttype;
        chr nextvalue;
        int lexcon;
        int nsubexp;
        struct subre **subs;
        size_t nsubs;
        struct subre *sub10[10];
        struct nfa *nfa;
        struct colormap *cm;
        color nlcolor;
        struct state *wordchrs;
        struct subre *tree;
        struct subre *treechain;
        struct subre *treefree;
        int ntree;
        struct cvec *cv;
        struct cvec *cv2;
        struct cvec *mcces;

        struct state *mccepbegin;
        struct state *mccepend;
        struct subre *lacons;
        int nlacons;
};
# 273 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
static struct fns functions = {
        rfree,
};







int
TclReComp(re, string, len, flags)
regex_t *re;
const chr *string;
size_t len;
int flags;
{
        struct vars var;
        struct vars *v = &var;
        struct guts *g;
        int i;
        size_t j;
        FILE *debug = (flags&020000) ? (&__sF[1]) : (FILE *)((void *)0);




        if (re == ((void *)0) || string == ((void *)0))
                return 16;
        if ((flags&000004) &&
                        (flags&(000003|000040|000300)))
                return 16;
        if (!(flags&000001) && (flags&000002))
                return 16;


        v->re = re;
        v->now = (chr *)string;
        v->stop = v->now + len;
        v->savenow = v->savestop = ((void *)0);
        v->err = 0;
        v->cflags = flags;
        v->nsubexp = 0;
        v->subs = v->sub10;
        v->nsubs = 10;
        for (j = 0; j < v->nsubs; j++)
                v->subs[j] = ((void *)0);
        v->nfa = ((void *)0);
        v->cm = ((void *)0);
        v->nlcolor = (-1);
        v->wordchrs = ((void *)0);
        v->tree = ((void *)0);
        v->treechain = ((void *)0);
        v->treefree = ((void *)0);
        v->cv = ((void *)0);
        v->cv2 = ((void *)0);
        v->mcces = ((void *)0);
        v->lacons = ((void *)0);
        v->nlacons = 0;
        re->re_magic = 0xfed7;
        re->re_info = 0;
        re->re_csize = sizeof(chr);
        re->re_guts = ((void *)0);
        re->re_fns = ((void *)(&functions));


        re->re_guts = ((void *)(Tcl_Alloc(sizeof(struct guts))));
        if (re->re_guts == ((void *)0))
                return freev(v, 12);
        g = (struct guts *)re->re_guts;
        g->tree = ((void *)0);
        initcm(v, &g->cmap);
        v->cm = &g->cmap;
        g->lacons = ((void *)0);
        g->nlacons = 0;
        ((g->search).nstates = 0);
        v->nfa = newnfa(v, v->cm, (struct nfa *)((void *)0));
        { if (((v)->err != 0)) return freev(v, v->err); };
        v->cv = newcvec(100, 20, 10);
        if (v->cv == ((void *)0))
                return freev(v, 12);
        i = nmcces(v);
        if (i > 0) {
                v->mcces = newcvec(nleaders(v), 0, i);
                { if (((v)->err != 0)) return freev(v, v->err); };
                v->mcces = allmcces(v, v->mcces);
                leaders(v, v->mcces);
                addmcce(v->mcces, (chr *)((void *)0), (chr *)((void *)0));
        }
        { if (((v)->err != 0)) return freev(v, v->err); };


        lexstart(v);
        if ((v->cflags&000100) || (v->cflags&000200)) {

                v->nlcolor = subcolor(v->cm, newline());
                okcolors(v->nfa, v->cm);
        }
        { if (((v)->err != 0)) return freev(v, v->err); };
        v->tree = parse(v, 'e', 'p', v->nfa->init, v->nfa->final);
        ((void)0);
        { if (((v)->err != 0)) return freev(v, v->err); };
        ((void)0);


        specialcolors(v->nfa);
        { if (((v)->err != 0)) return freev(v, v->err); };
        if (debug != ((void *)0)) {
                fprintf(debug, "\n\n\n========= RAW ==========\n");
                dumpnfa(v->nfa, debug);
                dumpst(v->tree, debug, 1);
        }
        optst(v, v->tree);
        v->ntree = numst(v->tree, 1);
        markst(v->tree);
        cleanst(v);
        if (debug != ((void *)0)) {
                fprintf(debug, "\n\n\n========= TREE FIXED ==========\n");
                dumpst(v->tree, debug, 1);
        }


        re->re_info |= nfatree(v, v->tree, debug);
        { if (((v)->err != 0)) return freev(v, v->err); };
        ((void)0);
        for (i = 1; i < v->nlacons; i++) {
                if (debug != ((void *)0))
                        fprintf(debug, "\n\n\n========= LA%d ==========\n", i);
                nfanode(v, &v->lacons[i], debug);
        }
        { if (((v)->err != 0)) return freev(v, v->err); };
        if (v->tree->flags&02)
                (v->re->re_info |= (020000));


        if (debug != ((void *)0))
                fprintf(debug, "\n\n\n========= SEARCH ==========\n");

        (void)optimize(v->nfa, debug);
        { if (((v)->err != 0)) return freev(v, v->err); };
        makesearch(v, v->nfa);
        { if (((v)->err != 0)) return freev(v, v->err); };
        compact(v->nfa, &g->search);
        { if (((v)->err != 0)) return freev(v, v->err); };


        re->re_nsub = v->nsubexp;
        v->re = ((void *)0);
        g->magic = 0xfed9;
        g->cflags = v->cflags;
        g->info = re->re_info;
        g->nsub = re->re_nsub;
        g->tree = v->tree;
        v->tree = ((void *)0);
        g->ntree = v->ntree;
        g->compare = (v->cflags&000010) ? casecmp : cmp;
        g->lacons = v->lacons;
        v->lacons = ((void *)0);
        g->nlacons = v->nlacons;

        if (flags&004000)
                dump(re, (&__sF[1]));

        ((void)0);
        return freev(v, 0);
}





static void
moresubs(v, wanted)
struct vars *v;
int wanted;
{
        struct subre **p;
        size_t n;

        ((void)0);
        n = (size_t)wanted * 3 / 2 + 1;
        if (v->subs == v->sub10) {
                p = (struct subre **)Tcl_Alloc(n * sizeof(struct subre *));
                if (p != ((void *)0))
                        memcpy(((void *)(p)), ((void *)(v->subs)),
                                        v->nsubs * sizeof(struct subre *));
        } else
                p = (struct subre **)Tcl_Realloc(((void *)(v->subs)),n*sizeof(struct subre *));
        if (p == ((void *)0)) {
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (12)));
                return;
        }
        v->subs = p;
        for (p = &v->subs[v->nsubs]; v->nsubs < n; p++, v->nsubs++)
                *p = ((void *)0);
        ((void)0);
        ((void)0);
}







static int
freev(v, err)
struct vars *v;
int err;
{
        if (v->re != ((void *)0))
                rfree(v->re);
        if (v->subs != v->sub10)
                Tcl_Free(((void *)(v->subs)));
        if (v->nfa != ((void *)0))
                freenfa(v->nfa);
        if (v->tree != ((void *)0))
                freesubre(v, v->tree);
        if (v->treechain != ((void *)0))
                cleanst(v);
        if (v->cv != ((void *)0))
                freecvec(v->cv);
        if (v->cv2 != ((void *)0))
                freecvec(v->cv2);
        if (v->mcces != ((void *)0))
                freecvec(v->mcces);
        if (v->lacons != ((void *)0))
                freelacons(v->lacons, v->nlacons);
        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (err)));

        return v->err;
}






static void
makesearch(v, nfa)
struct vars *v;
struct nfa *nfa;
{
        struct arc *a;
        struct arc *b;
        struct state *pre = nfa->pre;
        struct state *s;
        struct state *s2;
        struct state *slist;


        for (a = pre->outs; a != ((void *)0); a = a->outchain) {
                ((void)0);
                if (a->co != nfa->bos[0] && a->co != nfa->bos[1])
                        break;
        }
        if (a != ((void *)0)) {

                rainbow(nfa, v->cm, 'p', (-1), pre, pre);


                newarc(nfa, 'p', nfa->bos[0], pre, pre);
                newarc(nfa, 'p', nfa->bos[1], pre, pre);
        }
# 549 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
        slist = ((void *)0);
        for (a = pre->outs; a != ((void *)0); a = a->outchain) {
                s = a->to;
                for (b = s->ins; b != ((void *)0); b = b->inchain)
                        if (b->from != pre)
                                break;
                if (b != ((void *)0)) {
                        s->tmp = slist;
                        slist = s;
                }
        }


        for (s = slist; s != ((void *)0); s = s2) {
                s2 = newstate(nfa);
                copyouts(nfa, s, s2);
                for (a = s->ins; a != ((void *)0); a = b) {
                        b = a->inchain;
                        if (a->from != pre) {
                                cparc(nfa, a, a->from, s2);
                                freearc(nfa, a);
                        }
                }
                s2 = s->tmp;
                s->tmp = ((void *)0);
        }
}
# 585 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
static struct subre *
parse(v, stopper, type, init, final)
struct vars *v;
int stopper;
int type;
struct state *init;
struct state *final;
{
        struct state *left;
        struct state *right;
        struct subre *branches;
        struct subre *branch;
        struct subre *t;
        int firstbranch;

        ((void)0);

        branches = subre(v, '|', 01, init, final);
        {if (((v)->err != 0)) return ((void *)0);};
        branch = branches;
        firstbranch = 1;
        do {
                if (!firstbranch) {

                        branch->right = subre(v, '|', 01, init, final);
                        {if (((v)->err != 0)) return ((void *)0);};
                        branch = branch->right;
                }
                firstbranch = 0;
                left = newstate(v->nfa);
                right = newstate(v->nfa);
                {if (((v)->err != 0)) return ((void *)0);};
                newarc(v->nfa, 'n', 0, init, left);
                newarc(v->nfa, 'n', 0, right, final);
                {if (((v)->err != 0)) return ((void *)0);};
                branch->left = parsebranch(v, stopper, type, left, right, 0);
                {if (((v)->err != 0)) return ((void *)0);};
                branch->flags |= (((branch->flags | branch->left->flags)&~03) | (((branch->flags | branch->left->flags)<<2) & ((branch->flags | branch->left->flags)<<1) & 04));
                if ((branch->flags &~ branches->flags) != 0)
                        for (t = branches; t != branch; t = t->right)
                                t->flags |= branch->flags;
        } while (((v->nexttype == ('|')) && next(v)));
        ((void)0);

        if (!(v->nexttype == (stopper))) {
                ((void)0);
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (8)));
        }


        if (branch == branches) {
                ((void)0);
                t = branch->left;
                branch->left = ((void *)0);
                freesubre(v, branches);
                branches = t;
        } else if (!((branches->flags)&(04|010|020))) {
                freesubre(v, branches->left);
                branches->left = ((void *)0);
                freesubre(v, branches->right);
                branches->right = ((void *)0);
                branches->op = '=';
        }

        return branches;
}
# 660 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
static struct subre *
parsebranch(v, stopper, type, left, right, partial)
struct vars *v;
int stopper;
int type;
struct state *left;
struct state *right;
int partial;
{
        struct state *lp;
        int seencontent;
        struct subre *t;

        lp = left;
        seencontent = 0;
        t = subre(v, '=', 0, left, right);
        {if (((v)->err != 0)) return ((void *)0);};
        while (!(v->nexttype == ('|')) && !(v->nexttype == (stopper)) && !(v->nexttype == ('e'))) {
                if (seencontent) {
                        lp = newstate(v->nfa);
                        {if (((v)->err != 0)) return ((void *)0);};
                        moveins(v->nfa, right, lp);
                }
                seencontent = 1;


                parseqatom(v, stopper, type, lp, right, t);
        }

        if (!seencontent) {
                if (!partial)
                        (v->re->re_info |= (000400));
                ((void)0);
                newarc(v->nfa, 'n', 0, left, right);
        }

        return t;
}
# 707 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
static void
parseqatom(v, stopper, type, lp, rp, top)
struct vars *v;
int stopper;
int type;
struct state *lp;
struct state *rp;
struct subre *top;
{
        struct state *s;
        struct state *s2;

        int m, n;
        struct subre *atom;
        struct subre *t;
        int cap;
        int pos;
        int subno;
        int atomtype;
        int qprefer;
        int f;
        struct subre **atomp;


        atom = ((void *)0);
        ((void)0);
        ((void)0);
        subno = 0;


        atomtype = v->nexttype;
        switch (atomtype) {

        case '^':
                newarc(v->nfa, '^', 1, lp, rp);
                if (v->cflags&000200)
                        newarc(v->nfa, 'r', v->nlcolor, lp, rp);
                (next(v));
                return;
                break;
        case '$':
                newarc(v->nfa, '$', 1, lp, rp);
                if (v->cflags&000200)
                        newarc(v->nfa, 'a', v->nlcolor, lp, rp);
                (next(v));
                return;
                break;
        case 'A':
                newarc(v->nfa, '^', 1, lp, rp);
                newarc(v->nfa, '^', 0, lp, rp);
                (next(v));
                return;
                break;
        case 'Z':
                newarc(v->nfa, '$', 1, lp, rp);
                newarc(v->nfa, '$', 0, lp, rp);
                (next(v));
                return;
                break;
        case '<':
                wordchrs(v);
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                nonword(v, 'r', lp, s);
                word(v, 'a', s, rp);
                return;
                break;
        case '>':
                wordchrs(v);
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                word(v, 'r', lp, s);
                nonword(v, 'a', s, rp);
                return;
                break;
        case 'w':
                wordchrs(v);
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                nonword(v, 'r', lp, s);
                word(v, 'a', s, rp);
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                word(v, 'r', lp, s);
                nonword(v, 'a', s, rp);
                return;
                break;
        case 'W':
                wordchrs(v);
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                word(v, 'r', lp, s);
                word(v, 'a', s, rp);
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                nonword(v, 'r', lp, s);
                nonword(v, 'a', s, rp);
                return;
                break;
        case 'L':
                pos = v->nextvalue;
                (next(v));
                s = newstate(v->nfa);
                s2 = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                t = parse(v, ')', 'L', s, s2);
                freesubre(v, t);
                ((void)0);
                (next(v));
                n = newlacon(v, s, s2, pos);
                {if (((v)->err != 0)) return;};
                newarc(v->nfa, 'L', n, lp, rp);
                return;
                break;

        case '*':
        case '+':
        case '?':
        case '{':
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (13)));
                return;
                break;
        default:
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (15)));
                return;
                break;

        case ')':
                if ((v->cflags&000003) != 000001) {
                        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (8)));
                        return;
                }

                (v->re->re_info |= (000040));

        case 'p':
                onechr(v, v->nextvalue, lp, rp);
                okcolors(v->nfa, v->cm);
                {if (((v)->err != 0)) return;};
                (next(v));
                break;
        case '[':
                if (v->nextvalue == 1)
                        bracket(v, lp, rp);
                else
                        cbracket(v, lp, rp);
                ((void)0);
                (next(v));
                break;
        case '.':
                rainbow(v->nfa, v->cm, 'p',
                                (v->cflags&000100) ? v->nlcolor : (-1),
                                lp, rp);
                (next(v));
                break;

        case '(':
                cap = (type == 'L') ? 0 : v->nextvalue;
                if (cap) {
                        v->nsubexp++;
                        subno = v->nsubexp;
                        if ((size_t)subno >= v->nsubs)
                                moresubs(v, subno);
                        ((void)0);
                } else
                        atomtype = 'p';
                (next(v));

                s = newstate(v->nfa);
                s2 = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                newarc(v->nfa, 'n', 0, lp, s);
                newarc(v->nfa, 'n', 0, s2, rp);
                {if (((v)->err != 0)) return;};
                atom = parse(v, ')', 'p', s, s2);
                ((void)0);
                (next(v));
                {if (((v)->err != 0)) return;};
                if (cap) {
                        v->subs[subno] = atom;
                        t = subre(v, '(', atom->flags|010, lp, rp);
                        {if (((v)->err != 0)) return;};
                        t->subno = subno;
                        t->left = atom;
                        atom = t;
                }

                break;
        case 'b':
                ((type != 'L') ? 0 : ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (6))));
                ((v->nextvalue < v->nsubs) ? 0 : ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (6))));
                ((v->subs[v->nextvalue] != ((void *)0)) ? 0 : ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (6))));
                {if (((v)->err != 0)) return;};
                ((void)0);
                atom = subre(v, 'b', 020, lp, rp);
                subno = v->nextvalue;
                atom->subno = subno;
                newarc(v->nfa, 'n', 0, lp, rp);
                (next(v));
                break;
        }


        switch (v->nexttype) {
        case '*':
                m = 0;
                n = (255 +1);
                qprefer = (v->nextvalue) ? 01 : 02;
                (next(v));
                break;
        case '+':
                m = 1;
                n = (255 +1);
                qprefer = (v->nextvalue) ? 01 : 02;
                (next(v));
                break;
        case '?':
                m = 0;
                n = 1;
                qprefer = (v->nextvalue) ? 01 : 02;
                (next(v));
                break;
        case '{':
                (next(v));
                m = scannum(v);
                if (((v->nexttype == (',')) && next(v))) {
                        if ((v->nexttype == ('d')))
                                n = scannum(v);
                        else
                                n = (255 +1);
                        if (m > n) {
                                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (10)));
                                return;
                        }

                        qprefer = (v->nextvalue) ? 01 : 02;
                } else {
                        n = m;

                        qprefer = 0;
                }
                if (!(v->nexttype == ('}'))) {
                        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (10)));
                        return;
                }
                (next(v));
                break;
        default:
                m = n = 1;
                qprefer = 0;
                break;
        }


        if (m == 0 && n == 0) {
                if (atom != ((void *)0))
                        freesubre(v, atom);
                if (atomtype == '(')
                        v->subs[subno] = ((void *)0);
                delsub(v->nfa, lp, rp);
                newarc(v->nfa, 'n', 0, lp, rp);
                return;
        }


        ((void)0);
        f = top->flags | qprefer | ((atom != ((void *)0)) ? atom->flags : 0);
        if (atomtype != '(' && atomtype != 'b' && !(((((f)&~03) | (((f)<<2) & ((f)<<1) & 04)))&(04|010|020))) {
                if (!(m == 1 && n == 1))
                        repeat(v, lp, rp, m, n);
                if (atom != ((void *)0))
                        freesubre(v, atom);
                top->flags = f;
                return;
        }
# 990 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
        if (atom == ((void *)0)) {
                atom = subre(v, '=', 0, lp, rp);
                {if (((v)->err != 0)) return;};
        }
# 1004 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
        s = newstate(v->nfa);
        s2 = newstate(v->nfa);
        {if (((v)->err != 0)) return;};
        moveouts(v->nfa, lp, s);
        moveins(v->nfa, rp, s2);
        {if (((v)->err != 0)) return;};
        atom->begin = s;
        atom->end = s2;
        s = newstate(v->nfa);
        s2 = newstate(v->nfa);
        {if (((v)->err != 0)) return;};
        newarc(v->nfa, 'n', 0, lp, s);
        newarc(v->nfa, 'n', 0, lp, s2);
        {if (((v)->err != 0)) return;};


        t = subre(v, '.', (((((qprefer)|(atom->flags))&~03) | ((((qprefer)|(atom->flags))<<2) & (((qprefer)|(atom->flags))<<1) & 04)) | ((((qprefer)&03) != 0) ? ((qprefer)&03) : ((atom->flags)&03))), lp, rp);
        t->left = atom;
        atomp = &t->left;



        ((void)0);
        top->left = subre(v, '=', top->flags, top->begin, lp);
        top->op = '.';
        top->right = t;


        if (atomtype == 'b') {
                ((void)0);
                delsub(v->nfa, atom->begin, atom->end);
                ((void)0);



                dupnfa(v->nfa, v->subs[subno]->begin, v->subs[subno]->end,
                                                atom->begin, atom->end);
                {if (((v)->err != 0)) return;};
        }


        if (m == 0) {
                newarc(v->nfa, 'n', 0, s2, atom->end);
                ((void)0);
                f = (((((qprefer)|(atom->flags))&~03) | ((((qprefer)|(atom->flags))<<2) & (((qprefer)|(atom->flags))<<1) & 04)) | ((((qprefer)&03) != 0) ? ((qprefer)&03) : ((atom->flags)&03)));
                t = subre(v, '|', f, lp, atom->end);
                {if (((v)->err != 0)) return;};
                t->left = atom;
                t->right = subre(v, '|', ((f)&03), s2, atom->end);
                {if (((v)->err != 0)) return;};
                t->right->left = subre(v, '=', 0, s2, atom->end);
                {if (((v)->err != 0)) return;};
                *atomp = t;
                atomp = &t->left;
                m = 1;
        }


        if (atomtype == 'b') {

                newarc(v->nfa, 'n', 0, s, atom->begin);

                repeat(v, atom->begin, atom->end, m, n);
                atom->min = (short)m;
                atom->max = (short)n;
                atom->flags |= (((((qprefer)|(atom->flags))&~03) | ((((qprefer)|(atom->flags))<<2) & (((qprefer)|(atom->flags))<<1) & 04)) | ((((qprefer)&03) != 0) ? ((qprefer)&03) : ((atom->flags)&03)));
        } else if (m == 1 && n == 1) {

                newarc(v->nfa, 'n', 0, s, atom->begin);
        } else {


                dupnfa(v->nfa, atom->begin, atom->end, s, atom->begin);
                ((void)0);
                repeat(v, s, atom->begin, m-1, (n == (255 +1)) ? n : n-1);
                f = (((((qprefer)|(atom->flags))&~03) | ((((qprefer)|(atom->flags))<<2) & (((qprefer)|(atom->flags))<<1) & 04)) | ((((qprefer)&03) != 0) ? ((qprefer)&03) : ((atom->flags)&03)));
                t = subre(v, '.', f, s, atom->end);
                {if (((v)->err != 0)) return;};
                t->left = subre(v, '=', ((f)&03), s, atom->begin);
                {if (((v)->err != 0)) return;};
                t->right = atom;
                *atomp = t;
        }


        t = top->right;
        if (!((v->nexttype == ('|')) || (v->nexttype == (stopper)) || (v->nexttype == ('e'))))
                t->right = parsebranch(v, stopper, type, atom->end, rp, 1);
        else {
                newarc(v->nfa, 'n', 0, atom->end, rp);
                t->right = subre(v, '=', 0, atom->end, rp);
        }
        ((void)0);
        t->flags |= (((((t->flags)|(t->right->flags))&~03) | ((((t->flags)|(t->right->flags))<<2) & (((t->flags)|(t->right->flags))<<1) & 04)) | ((((t->flags)&03) != 0) ? ((t->flags)&03) : ((t->right->flags)&03)));
        top->flags |= (((((top->flags)|(t->flags))&~03) | ((((top->flags)|(t->flags))<<2) & (((top->flags)|(t->flags))<<1) & 04)) | ((((top->flags)&03) != 0) ? ((top->flags)&03) : ((t->flags)&03)));
}





static void
nonword(v, dir, lp, rp)
struct vars *v;
int dir;
struct state *lp;
struct state *rp;
{
        int anchor = (dir == 'a') ? '$' : '^';

        ((void)0);
        newarc(v->nfa, anchor, 1, lp, rp);
        newarc(v->nfa, anchor, 0, lp, rp);
        colorcomplement(v->nfa, v->cm, dir, v->wordchrs, lp, rp);

}





static void
word(v, dir, lp, rp)
struct vars *v;
int dir;
struct state *lp;
struct state *rp;
{
        ((void)0);
        cloneouts(v->nfa, v->wordchrs, lp, rp, dir);

}





static int
scannum(v)
struct vars *v;
{
        int n = 0;

        while ((v->nexttype == ('d')) && n < 255) {
                n = n*10 + v->nextvalue;
                (next(v));
        }
        if ((v->nexttype == ('d')) || n > 255) {
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (10)));
                return 0;
        }
        return n;
}
# 1168 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
static void
repeat(v, lp, rp, m, n)
struct vars *v;
struct state *lp;
struct state *rp;
int m;
int n;
{




        const int rm = ( ((m) == (255 +1)) ? 3 : (((m) > 1) ? 2 : (m)) );
        const int rn = ( ((n) == (255 +1)) ? 3 : (((n) > 1) ? 2 : (n)) );
        struct state *s;
        struct state *s2;

        switch (((rm)*4 + (rn))) {
        case ((0)*4 + (0)):
                delsub(v->nfa, lp, rp);
                newarc(v->nfa, 'n', 0, lp, rp);
                break;
        case ((0)*4 + (1)):
                newarc(v->nfa, 'n', 0, lp, rp);
                break;
        case ((0)*4 + (2)):
                repeat(v, lp, rp, 1, n);
                {if (((v)->err != 0)) return;};
                newarc(v->nfa, 'n', 0, lp, rp);
                break;
        case ((0)*4 + (3)):
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                moveouts(v->nfa, lp, s);
                moveins(v->nfa, rp, s);
                newarc(v->nfa, 'n', 0, lp, s);
                newarc(v->nfa, 'n', 0, s, rp);
                break;
        case ((1)*4 + (1)):
                break;
        case ((1)*4 + (2)):
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                moveouts(v->nfa, lp, s);
                dupnfa(v->nfa, s, rp, lp, s);
                {if (((v)->err != 0)) return;};
                repeat(v, lp, s, 1, n-1);
                {if (((v)->err != 0)) return;};
                newarc(v->nfa, 'n', 0, lp, s);
                break;
        case ((1)*4 + (3)):
                s = newstate(v->nfa);
                s2 = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                moveouts(v->nfa, lp, s);
                moveins(v->nfa, rp, s2);
                newarc(v->nfa, 'n', 0, lp, s);
                newarc(v->nfa, 'n', 0, s2, rp);
                newarc(v->nfa, 'n', 0, s2, s);
                break;
        case ((2)*4 + (2)):
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                moveouts(v->nfa, lp, s);
                dupnfa(v->nfa, s, rp, lp, s);
                {if (((v)->err != 0)) return;};
                repeat(v, lp, s, m-1, n-1);
                break;
        case ((2)*4 + (3)):
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                moveouts(v->nfa, lp, s);
                dupnfa(v->nfa, s, rp, lp, s);
                {if (((v)->err != 0)) return;};
                repeat(v, lp, s, m-1, n);
                break;
        default:
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (15)));
                break;
        }
}






static void
bracket(v, lp, rp)
struct vars *v;
struct state *lp;
struct state *rp;
{
        ((void)0);
        (next(v));
        while (!(v->nexttype == (']')) && !(v->nexttype == ('e')))
                brackpart(v, lp, rp);
        ((void)0);
        okcolors(v->nfa, v->cm);
}
# 1276 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
static void
cbracket(v, lp, rp)
struct vars *v;
struct state *lp;
struct state *rp;
{
        struct state *left = newstate(v->nfa);
        struct state *right = newstate(v->nfa);
        struct state *s;
        struct arc *a;
        struct arc *ba;
        struct arc *pa;
        color co;
        chr *p;
        int i;

        {if (((v)->err != 0)) return;};
        bracket(v, left, right);
        if (v->cflags&000100)
                newarc(v->nfa, 'p', v->nlcolor, left, right);
        {if (((v)->err != 0)) return;};

        ((void)0);


        colorcomplement(v->nfa, v->cm, 'p', left, lp, rp);
        {if (((v)->err != 0)) return;};
        if (v->mcces == ((void *)0)) {
                dropstate(v->nfa, left);
                ((void)0);
                freestate(v->nfa, right);
                return;
        }


        (v->re->re_info |= (002000));
        for (p = v->mcces->chrs, i = v->mcces->nchrs; i > 0; p++, i--) {
                co = ((v->cm)->tree->ptrs.pptr[(((*p)>>8) & ((1<<8)-1))]->colors.ccolor[((*p) & ((1<<8)-1))]);
                a = findarc(lp, 'p', co);
                ba = findarc(left, 'p', co);
                if (ba == ((void *)0)) {
                        ((void)0);
                        freearc(v->nfa, a);
                } else {
                        ((void)0);
                }
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                newarc(v->nfa, 'p', co, lp, s);
                {if (((v)->err != 0)) return;};
                pa = findarc(v->mccepbegin, 'p', co);
                ((void)0);
                if (ba == ((void *)0)) {
                        cloneouts(v->nfa, pa->to, s, rp, 'p');
                        newarc(v->nfa, '$', 1, s, rp);
                        newarc(v->nfa, '$', 0, s, rp);
                        colorcomplement(v->nfa, v->cm, 'a', pa->to, s, rp);
                } else {
                        if (findarc(ba->to, '$', 1) == ((void *)0)) {
                                newarc(v->nfa, '$', 1, s, rp);
                                newarc(v->nfa, '$', 0, s, rp);
                                colorcomplement(v->nfa, v->cm, 'a', pa->to,
                                                                         s, rp);
                        }
                        for (pa = pa->to->outs; pa != ((void *)0); pa = pa->outchain)
                                if (findarc(ba->to, 'p', pa->co) == ((void *)0))
                                        newarc(v->nfa, 'p', pa->co, s, rp);
                        if (s->nouts == 0)
                                dropstate(v->nfa, s);
                }
                {if (((v)->err != 0)) return;};
        }

        delsub(v->nfa, left, right);
        ((void)0);
        freestate(v->nfa, left);
        ((void)0);
        freestate(v->nfa, right);
}





static void
brackpart(v, lp, rp)
struct vars *v;
struct state *lp;
struct state *rp;
{
        celt startc;
        celt endc;
        struct cvec *cv;
        chr *startp;
        chr *endp;
        chr c[1];


        switch (v->nexttype) {
        case 'R':
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (11)));
                return;
                break;
        case 'p':
                c[0] = v->nextvalue;
                (next(v));

                if (!(v->nexttype == ('R')) && !(v->mcces != ((void *)0) && haschr(v->mcces, (c[0])))) {
                        onechr(v, c[0], lp, rp);
                        return;
                }
                startc = element(v, c, c+1);
                {if (((v)->err != 0)) return;};
                break;
        case 'I':
                startp = v->now;
                endp = scanplain(v);
                ((startp < endp) ? 0 : ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (3))));
                {if (((v)->err != 0)) return;};
                startc = element(v, startp, endp);
                {if (((v)->err != 0)) return;};
                break;
        case 'E':
                startp = v->now;
                endp = scanplain(v);
                ((startp < endp) ? 0 : ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (3))));
                {if (((v)->err != 0)) return;};
                startc = element(v, startp, endp);
                {if (((v)->err != 0)) return;};
                cv = eclass(v, startc, (v->cflags&000010));
                {if (((v)->err != 0)) return;};
                dovec(v, cv, lp, rp);
                return;
                break;
        case 'C':
                startp = v->now;
                endp = scanplain(v);
                ((startp < endp) ? 0 : ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (4))));
                {if (((v)->err != 0)) return;};
                cv = cclass(v, startp, endp, (v->cflags&000010));
                {if (((v)->err != 0)) return;};
                dovec(v, cv, lp, rp);
                return;
                break;
        default:
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (15)));
                return;
                break;
        }

        if ((v->nexttype == ('R'))) {
                (next(v));
                switch (v->nexttype) {
                case 'p':
                case 'R':
                        c[0] = v->nextvalue;
                        (next(v));
                        endc = element(v, c, c+1);
                        {if (((v)->err != 0)) return;};
                        break;
                case 'I':
                        startp = v->now;
                        endp = scanplain(v);
                        ((startp < endp) ? 0 : ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (3))));
                        {if (((v)->err != 0)) return;};
                        endc = element(v, startp, endp);
                        {if (((v)->err != 0)) return;};
                        break;
                default:
                        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (11)));
                        return;
                        break;
                }
        } else
                endc = startc;






        if (startc != endc)
                (v->re->re_info |= (001000));
        cv = range(v, startc, endc, (v->cflags&000010));
        {if (((v)->err != 0)) return;};
        dovec(v, cv, lp, rp);
}







static chr *
scanplain(v)
struct vars *v;
{
        chr *endp;

        ((void)0);
        (next(v));

        endp = v->now;
        while ((v->nexttype == ('p'))) {
                endp = v->now;
                (next(v));
        }

        ((void)0);
        (next(v));

        return endp;
}







static void
leaders(v, cv)
struct vars *v;
struct cvec *cv;
{
        int mcce;
        chr *p;
        chr leader;
        struct state *s;
        struct arc *a;

        v->mccepbegin = newstate(v->nfa);
        v->mccepend = newstate(v->nfa);
        {if (((v)->err != 0)) return;};

        for (mcce = 0; mcce < cv->nmcces; mcce++) {
                p = cv->mcces[mcce];
                leader = *p;
                if (!haschr(cv, leader)) {
                        addchr(cv, leader);
                        s = newstate(v->nfa);
                        newarc(v->nfa, 'p', subcolor(v->cm, leader),
                                                        v->mccepbegin, s);
                        okcolors(v->nfa, v->cm);
                } else {
                        a = findarc(v->mccepbegin, 'p',
                                                ((v->cm)->tree->ptrs.pptr[(((leader)>>8) & ((1<<8)-1))]->colors.ccolor[((leader) & ((1<<8)-1))]));
                        ((void)0);
                        s = a->to;
                        ((void)0);
                }
                p++;
                ((void)0);
                newarc(v->nfa, 'p', subcolor(v->cm, *p), s, v->mccepend);
                okcolors(v->nfa, v->cm);
        }
}






static void
onechr(v, c, lp, rp)
struct vars *v;
pchr c;
struct state *lp;
struct state *rp;
{
        if (!(v->cflags&000010)) {
                newarc(v->nfa, 'p', subcolor(v->cm, c), lp, rp);
                return;
        }


        dovec(v, allcases(v, c), lp, rp);
}







static void
dovec(v, cv, lp, rp)
struct vars *v;
struct cvec *cv;
struct state *lp;
struct state *rp;
{
        chr ch, from, to;
        celt ce;
        chr *p;
        int i;
        color co;
        struct cvec *leads;
        struct arc *a;
        struct arc *pa;
        struct state *s;
        struct state *ps;


        if (nmcces(v) > 0) {
                ((void)0);
                if (v->cv2 == ((void *)0) || v->cv2->nchrs < v->mcces->nchrs) {
                        if (v->cv2 != ((void *)0))
                                free(v->cv2);
                        v->cv2 = newcvec(v->mcces->nchrs, 0, v->mcces->nmcces);
                        {if (((v)->err != 0)) return;};
                        leads = v->cv2;
                } else
                        leads = clearcvec(v->cv2);
        } else
                leads = ((void *)0);


        for (p = cv->chrs, i = cv->nchrs; i > 0; p++, i--) {
                ch = *p;
                if (!(v->mcces != ((void *)0) && haschr(v->mcces, (ch))))
                        newarc(v->nfa, 'p', subcolor(v->cm, ch), lp, rp);
                else {
                        ((void)0);
                        ((void)0);
                        if (!haschr(leads, ch))
                                addchr(leads, ch);
                }
        }


        for (p = cv->ranges, i = cv->nranges; i > 0; p += 2, i--) {
                from = *p;
                to = *(p+1);
                while (from <= to && (ce = nextleader(v, from, to)) != (-1)) {
                        if (from < ce)
                                subrange(v, from, ce - 1, lp, rp);
                        ((void)0);
                        ((void)0);
                        if (!haschr(leads, ce))
                                addchr(leads, ce);
                        from = ce + 1;
                }
                if (from <= to)
                        subrange(v, from, to, lp, rp);
        }

        if ((leads == ((void *)0) || leads->nchrs == 0) && cv->nmcces == 0)
                return;


        (v->re->re_info |= (002000));
        for (p = leads->chrs, i = leads->nchrs; i > 0; p++, i--) {
                co = ((v->cm)->tree->ptrs.pptr[(((*p)>>8) & ((1<<8)-1))]->colors.ccolor[((*p) & ((1<<8)-1))]);
                a = findarc(lp, 'p', co);
                if (a != ((void *)0))
                        s = a->to;
                else {
                        s = newstate(v->nfa);
                        {if (((v)->err != 0)) return;};
                        newarc(v->nfa, 'p', co, lp, s);
                        {if (((v)->err != 0)) return;};
                }
                pa = findarc(v->mccepbegin, 'p', co);
                ((void)0);
                ps = pa->to;
                newarc(v->nfa, '$', 1, s, rp);
                newarc(v->nfa, '$', 0, s, rp);
                colorcomplement(v->nfa, v->cm, 'a', ps, s, rp);
                {if (((v)->err != 0)) return;};
        }


        for (i = 0; i < cv->nmcces; i++) {
                p = cv->mcces[i];
                ((void)0);
                if (!singleton(v->cm, *p)) {
                        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (15)));
                        return;
                }
                ch = *p++;
                co = ((v->cm)->tree->ptrs.pptr[(((ch)>>8) & ((1<<8)-1))]->colors.ccolor[((ch) & ((1<<8)-1))]);
                a = findarc(lp, 'p', co);
                if (a != ((void *)0))
                        s = a->to;
                else {
                        s = newstate(v->nfa);
                        {if (((v)->err != 0)) return;};
                        newarc(v->nfa, 'p', co, lp, s);
                        {if (((v)->err != 0)) return;};
                }
                ((void)0);
                ((void)0);
                ch = *p++;
                co = ((v->cm)->tree->ptrs.pptr[(((ch)>>8) & ((1<<8)-1))]->colors.ccolor[((ch) & ((1<<8)-1))]);
                ((void)0);
                newarc(v->nfa, 'p', co, s, rp);
                {if (((v)->err != 0)) return;};
        }
}





static celt
nextleader(v, from, to)
struct vars *v;
pchr from;
pchr to;
{
        int i;
        chr *p;
        chr ch;
        celt it = (-1);

        if (v->mcces == ((void *)0))
                return it;

        for (i = v->mcces->nchrs, p = v->mcces->chrs; i > 0; i--, p++) {
                ch = *p;
                if (from <= ch && ch <= to)
                        if (it == (-1) || ch < it)
                                it = ch;
        }
        return it;
}
# 1714 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
static void
wordchrs(v)
struct vars *v;
{
        struct state *left;
        struct state *right;

        if (v->wordchrs != ((void *)0)) {
                (next(v));
                return;
        }

        left = newstate(v->nfa);
        right = newstate(v->nfa);
        {if (((v)->err != 0)) return;};

        lexword(v);
        (next(v));
        ((void)0);
        bracket(v, left, right);
        ((void)0);
        (next(v));
        {if (((v)->err != 0)) return;};
        v->wordchrs = left;
}






static struct subre *
subre(v, op, flags, begin, end)
struct vars *v;
int op;
int flags;
struct state *begin;
struct state *end;
{
        struct subre *ret;

        ret = v->treefree;
        if (ret != ((void *)0))
                v->treefree = ret->left;
        else {
                ret = (struct subre *)Tcl_Alloc(sizeof(struct subre));
                if (ret == ((void *)0)) {
                        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (12)));
                        return ((void *)0);
                }
                ret->chain = v->treechain;
                v->treechain = ret;
        }

        ((void)0);

        ret->op = op;
        ret->flags = flags;
        ret->retry = 0;
        ret->subno = 0;
        ret->min = ret->max = 1;
        ret->left = ((void *)0);
        ret->right = ((void *)0);
        ret->begin = begin;
        ret->end = end;
        ((ret->cnfa).nstates = 0);

        return ret;
}





static void
freesubre(v, sr)
struct vars *v;
struct subre *sr;
{
        if (sr == ((void *)0))
                return;

        if (sr->left != ((void *)0))
                freesubre(v, sr->left);
        if (sr->right != ((void *)0))
                freesubre(v, sr->right);

        freesrnode(v, sr);
}





static void
freesrnode(v, sr)
struct vars *v;
struct subre *sr;
{
        if (sr == ((void *)0))
                return;

        if (!((sr->cnfa).nstates == 0))
                freecnfa(&sr->cnfa);
        sr->flags = 0;

        if (v != ((void *)0)) {
                sr->left = v->treefree;
                v->treefree = sr;
        } else
                Tcl_Free(((void *)(sr)));
}





static void
optst(v, t)
struct vars *v;
struct subre *t;
{
        if (t == ((void *)0))
                return;


        if (t->left != ((void *)0))
                optst(v, t->left);
        if (t->right != ((void *)0))
                optst(v, t->right);
}





static int
numst(t, start)
struct subre *t;
int start;
{
        int i;

        ((void)0);

        i = start;
        t->retry = (short)i++;
        if (t->left != ((void *)0))
                i = numst(t->left, i);
        if (t->right != ((void *)0))
                i = numst(t->right, i);
        return i;
}





static void
markst(t)
struct subre *t;
{
        ((void)0);

        t->flags |= 0100;
        if (t->left != ((void *)0))
                markst(t->left);
        if (t->right != ((void *)0))
                markst(t->right);
}





static void
cleanst(v)
struct vars *v;
{
        struct subre *t;
        struct subre *next;

        for (t = v->treechain; t != ((void *)0); t = next) {
                next = t->chain;
                if (!(t->flags&0100))
                        Tcl_Free(((void *)(t)));
        }
        v->treechain = ((void *)0);
        v->treefree = ((void *)0);
}





static long
nfatree(v, t, f)
struct vars *v;
struct subre *t;
FILE *f;
{
        ((void)0);

        if (t->left != ((void *)0))
                (void)nfatree(v, t->left, f);
        if (t->right != ((void *)0))
                (void)nfatree(v, t->right, f);

        return nfanode(v, t, f);
}





static long
nfanode(v, t, f)
struct vars *v;
struct subre *t;
FILE *f;
{
        struct nfa *nfa;
        long ret = 0;
        char idbuf[50];

        ((void)0);

        if (f != ((void *)0))
                fprintf(f, "\n\n\n========= TREE NODE %s ==========\n",
                                                stid(t, idbuf, sizeof(idbuf)));
        nfa = newnfa(v, v->cm, v->nfa);
        {if (((v)->err != 0)) return 0;};
        dupnfa(nfa, t->begin, t->end, nfa->init, nfa->final);
        if (!((v)->err != 0)) {
                specialcolors(nfa);
                ret = optimize(nfa, f);
        }
        if (!((v)->err != 0))
                compact(nfa, &t->cnfa);

        freenfa(nfa);
        return ret;
}





static int
newlacon(v, begin, end, pos)
struct vars *v;
struct state *begin;
struct state *end;
int pos;
{
        int n;
        struct subre *sub;

        if (v->nlacons == 0) {
                v->lacons = (struct subre *)Tcl_Alloc(2 * sizeof(struct subre));
                n = 1;
                v->nlacons = 2;
        } else {
                v->lacons = (struct subre *)Tcl_Realloc(((void *)(v->lacons)),(v->nlacons+1)*sizeof(struct subre));

                n = v->nlacons++;
        }
        if (v->lacons == ((void *)0)) {
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (12)));
                return 0;
        }
        sub = &v->lacons[n];
        sub->begin = begin;
        sub->end = end;
        sub->subno = pos;
        ((sub->cnfa).nstates = 0);
        return n;
}





static void
freelacons(subs, n)
struct subre *subs;
int n;
{
        struct subre *sub;
        int i;

        ((void)0);
        for (sub = subs + 1, i = n - 1; i > 0; sub++, i--)
                if (!((sub->cnfa).nstates == 0))
                        freecnfa(&sub->cnfa);
        Tcl_Free(((void *)(subs)));
}





static void
rfree(re)
regex_t *re;
{
        struct guts *g;

        if (re == ((void *)0) || re->re_magic != 0xfed7)
                return;

        re->re_magic = 0;
        g = (struct guts *)re->re_guts;
        re->re_guts = ((void *)0);
        re->re_fns = ((void *)0);
        g->magic = 0;
        freecm(&g->cmap);
        if (g->tree != ((void *)0))
                freesubre((struct vars *)((void *)0), g->tree);
        if (g->lacons != ((void *)0))
                freelacons(g->lacons, g->nlacons);
        if (!((g->search).nstates == 0))
                freecnfa(&g->search);
        Tcl_Free(((void *)(g)));
}





static void
dump(re, f)
regex_t *re;
FILE *f;
{
# 2082 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
}





static void
dumpst(t, f, nfapresent)
struct subre *t;
FILE *f;
int nfapresent;
{
        if (t == ((void *)0))
                fprintf(f, "null tree\n");
        else
                stdump(t, f, nfapresent);
        fflush(f);
}





static void
stdump(t, f, nfapresent)
struct subre *t;
FILE *f;
int nfapresent;
{
        char idbuf[50];

        fprintf(f, "%s. `%c'", stid(t, idbuf, sizeof(idbuf)), t->op);
        if (t->flags&01)
                fprintf(f, " longest");
        if (t->flags&02)
                fprintf(f, " shortest");
        if (t->flags&04)
                fprintf(f, " hasmixed");
        if (t->flags&010)
                fprintf(f, " hascapture");
        if (t->flags&020)
                fprintf(f, " hasbackref");
        if (!(t->flags&0100))
                fprintf(f, " UNUSED");
        if (t->subno != 0)
                fprintf(f, " (#%d)", t->subno);
        if (t->min != 1 || t->max != 1) {
                fprintf(f, " {%d,", t->min);
                if (t->max != (255 +1))
                        fprintf(f, "%d", t->max);
                fprintf(f, "}");
        }
        if (nfapresent)
                fprintf(f, " %ld-%ld", (long)t->begin->no, (long)t->end->no);
        if (t->left != ((void *)0))
                fprintf(f, " L:%s", stid(t->left, idbuf, sizeof(idbuf)));
        if (t->right != ((void *)0))
                fprintf(f, " R:%s", stid(t->right, idbuf, sizeof(idbuf)));
        if (!((t->cnfa).nstates == 0)) {
                fprintf(f, "\n");
                dumpcnfa(&t->cnfa, f);
                fprintf(f, "\n");
        }
        if (t->left != ((void *)0))
                stdump(t->left, f, nfapresent);
        if (t->right != ((void *)0))
                stdump(t->right, f, nfapresent);
}





static char *
stid(t, buf, bufsize)
struct subre *t;
char *buf;
size_t bufsize;
{

        if (bufsize < sizeof(int)*2 + 3 || bufsize < sizeof(t->retry)*3 + 1)
                return "unable";
        if (t->retry != 0)
                sprintf(buf, "%d", t->retry);
        else
                sprintf(buf, "0x%x", (int)t);
        return buf;
}

# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_lex.c" 1
# 68 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_lex.c"
static void
lexstart(v)
struct vars *v;
{
        prefixes(v);
        {if (((v)->err != 0)) return;};

        if (v->cflags&000004) {
                ((void)0);
                (v->lexcon = (3));
        } else if (v->cflags&000001) {
                ((void)0);
                (v->lexcon = (1));
        } else {
                ((void)0);
                (v->lexcon = (2));
        }

        v->nexttype = 'n';
        next(v);
}





static void
prefixes(v)
struct vars *v;
{

        if (v->cflags&000004)
                return;


        if ((v->stop - v->now >= (4)) && ((v->stop - v->now >= (3)) && *v->now == (((unsigned char) ('*'))) && *(v->now+1) == (((unsigned char) ('*'))) && *(v->now+2) == (((unsigned char) ('*')))))
                switch (*(v->now + 3)) {
                case (((unsigned char) ('?'))):
                        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (2)));
                        return;
                        break;
                case (((unsigned char) ('='))):
                        (v->re->re_info |= (000200));
                        v->cflags |= 000004;
                        v->cflags &= ~(000003|000040|000300);
                        v->now += 4;
                        return;
                        break;
                case (((unsigned char) (':'))):
                        (v->re->re_info |= (000200));
                        v->cflags |= 000003;
                        v->now += 4;
                        break;
                default:
                        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (13)));
                        return;
                        break;
                }


        if ((v->cflags&000003) != 000003)
                return;


        if ((v->stop - v->now >= (3)) && ((v->stop - v->now >= (2)) && *v->now == (((unsigned char) ('('))) && *(v->now+1) == (((unsigned char) ('?')))) && Tcl_UniCharIsAlpha(*(v->now + 2))) {
                (v->re->re_info |= (000200));
                v->now += 2;
                for (; !(v->now >= v->stop) && Tcl_UniCharIsAlpha(*v->now); v->now++)
                        switch (*v->now) {
                        case (((unsigned char) ('b'))):
                                v->cflags &= ~(000003|000004);
                                break;
                        case (((unsigned char) ('c'))):
                                v->cflags &= ~000010;
                                break;
                        case (((unsigned char) ('e'))):
                                v->cflags |= 000001;
                                v->cflags &= ~(000002|000004);
                                break;
                        case (((unsigned char) ('i'))):
                                v->cflags |= 000010;
                                break;
                        case (((unsigned char) ('m'))):
                        case (((unsigned char) ('n'))):
                                v->cflags |= 000300;
                                break;
                        case (((unsigned char) ('p'))):
                                v->cflags |= 000100;
                                v->cflags &= ~000200;
                                break;
                        case (((unsigned char) ('q'))):
                                v->cflags |= 000004;
                                v->cflags &= ~000003;
                                break;
                        case (((unsigned char) ('s'))):
                                v->cflags &= ~000300;
                                break;
                        case (((unsigned char) ('t'))):
                                v->cflags &= ~000040;
                                break;
                        case (((unsigned char) ('w'))):
                                v->cflags &= ~000100;
                                v->cflags |= 000200;
                                break;
                        case (((unsigned char) ('x'))):
                                v->cflags |= 000040;
                                break;
                        default:
                                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (18)));
                                return;
                        }
                if (!(!(v->now >= v->stop) && *v->now == (((unsigned char) (')'))))) {
                        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (18)));
                        return;
                }
                v->now++;
                if (v->cflags&000004)
                        v->cflags &= ~(000040|000300);
        }
}







static void
lexnest(v, beginp, endp)
struct vars *v;
chr *beginp;
chr *endp;
{
        ((void)0);
        v->savenow = v->now;
        v->savestop = v->stop;
        v->now = beginp;
        v->stop = endp;
}




static chr backd[] = {
        (((unsigned char) ('['))), (((unsigned char) ('['))), (((unsigned char) (':'))),
        (((unsigned char) ('d'))), (((unsigned char) ('i'))), (((unsigned char) ('g'))), (((unsigned char) ('i'))), (((unsigned char) ('t'))),
        (((unsigned char) (':'))), (((unsigned char) (']'))), (((unsigned char) (']')))
};
static chr backD[] = {
        (((unsigned char) ('['))), (((unsigned char) ('^'))), (((unsigned char) ('['))), (((unsigned char) (':'))),
        (((unsigned char) ('d'))), (((unsigned char) ('i'))), (((unsigned char) ('g'))), (((unsigned char) ('i'))), (((unsigned char) ('t'))),
        (((unsigned char) (':'))), (((unsigned char) (']'))), (((unsigned char) (']')))
};
static chr brbackd[] = {
        (((unsigned char) ('['))), (((unsigned char) (':'))),
        (((unsigned char) ('d'))), (((unsigned char) ('i'))), (((unsigned char) ('g'))), (((unsigned char) ('i'))), (((unsigned char) ('t'))),
        (((unsigned char) (':'))), (((unsigned char) (']')))
};
static chr backs[] = {
        (((unsigned char) ('['))), (((unsigned char) ('['))), (((unsigned char) (':'))),
        (((unsigned char) ('s'))), (((unsigned char) ('p'))), (((unsigned char) ('a'))), (((unsigned char) ('c'))), (((unsigned char) ('e'))),
        (((unsigned char) (':'))), (((unsigned char) (']'))), (((unsigned char) (']')))
};
static chr backS[] = {
        (((unsigned char) ('['))), (((unsigned char) ('^'))), (((unsigned char) ('['))), (((unsigned char) (':'))),
        (((unsigned char) ('s'))), (((unsigned char) ('p'))), (((unsigned char) ('a'))), (((unsigned char) ('c'))), (((unsigned char) ('e'))),
        (((unsigned char) (':'))), (((unsigned char) (']'))), (((unsigned char) (']')))
};
static chr brbacks[] = {
        (((unsigned char) ('['))), (((unsigned char) (':'))),
        (((unsigned char) ('s'))), (((unsigned char) ('p'))), (((unsigned char) ('a'))), (((unsigned char) ('c'))), (((unsigned char) ('e'))),
        (((unsigned char) (':'))), (((unsigned char) (']')))
};
static chr backw[] = {
        (((unsigned char) ('['))), (((unsigned char) ('['))), (((unsigned char) (':'))),
        (((unsigned char) ('a'))), (((unsigned char) ('l'))), (((unsigned char) ('n'))), (((unsigned char) ('u'))), (((unsigned char) ('m'))),
        (((unsigned char) (':'))), (((unsigned char) (']'))), (((unsigned char) ('_'))), (((unsigned char) (']')))
};
static chr backW[] = {
        (((unsigned char) ('['))), (((unsigned char) ('^'))), (((unsigned char) ('['))), (((unsigned char) (':'))),
        (((unsigned char) ('a'))), (((unsigned char) ('l'))), (((unsigned char) ('n'))), (((unsigned char) ('u'))), (((unsigned char) ('m'))),
        (((unsigned char) (':'))), (((unsigned char) (']'))), (((unsigned char) ('_'))), (((unsigned char) (']')))
};
static chr brbackw[] = {
        (((unsigned char) ('['))), (((unsigned char) (':'))),
        (((unsigned char) ('a'))), (((unsigned char) ('l'))), (((unsigned char) ('n'))), (((unsigned char) ('u'))), (((unsigned char) ('m'))),
        (((unsigned char) (':'))), (((unsigned char) (']'))), (((unsigned char) ('_')))
};






static void
lexword(v)
struct vars *v;
{
        lexnest(v, backw, ((backw) + sizeof(backw)/sizeof(chr)));
}





static int
next(v)
struct vars *v;
{
        chr c;


        if (((v)->err != 0))
                return 0;


        v->lasttype = v->nexttype;


        if (v->nexttype == 'n' && (v->cflags&002000)) {

                return ((v->nexttype = ('A'), v->nextvalue = (0)), 1);
        }


        if (v->savenow != ((void *)0) && (v->now >= v->stop)) {
                v->now = v->savenow;
                v->stop = v->savestop;
                v->savenow = v->savestop = ((void *)0);
        }


        if (v->cflags&000040)
                switch (v->lexcon) {
                case 1:
                case 2:
                case 4:
                case 5:
                        skip(v);
                        break;
                }


        if ((v->now >= v->stop)) {
                switch (v->lexcon) {
                case 1:
                case 2:
                case 3:
                        return ((v->nexttype = ('e')), 1);
                        break;
                case 4:
                case 5:
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (9))), 0);
                        break;
                case 6:
                case 7:
                case 8:
                case 9:
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (7))), 0);
                        break;
                }
                ((void)0);
        }


        c = *v->now++;


        switch (v->lexcon) {
        case 2:
                return brenext(v, c);
                break;
        case 1:
                break;
        case 3:
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        case 5:
        case 4:
                switch (c) {
                case (((unsigned char) ('0'))): case (((unsigned char) ('1'))): case (((unsigned char) ('2'))): case (((unsigned char) ('3'))):
                case (((unsigned char) ('4'))): case (((unsigned char) ('5'))): case (((unsigned char) ('6'))): case (((unsigned char) ('7'))):
                case (((unsigned char) ('8'))): case (((unsigned char) ('9'))):
                        return ((v->nexttype = ('d'), v->nextvalue = ((chr)((c)-'0'))), 1);
                        break;
                case (((unsigned char) (','))):
                        return ((v->nexttype = (',')), 1);
                        break;
                case (((unsigned char) ('}'))):
                        if ((v->lexcon == (4))) {
                                (v->lexcon = (1));
                                if ((v->cflags&000002) && (!(v->now >= v->stop) && *v->now == (((unsigned char) ('?'))))) {
                                        v->now++;
                                        (v->re->re_info |= (000200));
                                        return ((v->nexttype = ('}'), v->nextvalue = (0)), 1);
                                }
                                return ((v->nexttype = ('}'), v->nextvalue = (1)), 1);
                        } else
                                return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (10))), 0);
                        break;
                case (((unsigned char) ('\\'))):
                        if ((v->lexcon == (5)) && (!(v->now >= v->stop) && *v->now == (((unsigned char) ('}'))))) {
                                v->now++;
                                (v->lexcon = (2));
                                return ((v->nexttype = ('}')), 1);
                        } else
                                return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (10))), 0);
                        break;
                default:
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (10))), 0);
                        break;
                }
                ((void)0);
                break;
        case 6:
                switch (c) {
                case (((unsigned char) (']'))):
                        if ((v->lasttype == ('[')))
                                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                        else {
                                (v->lexcon = ((v->cflags&000001) ? 1 : 2));

                                return ((v->nexttype = (']')), 1);
                        }
                        break;
                case (((unsigned char) ('\\'))):
                        (v->re->re_info |= (000100));
                        if (!(v->cflags&000002))
                                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                        (v->re->re_info |= (000200));
                        if ((v->now >= v->stop))
                                return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
                        (void)lexescape(v);
                        switch (v->nexttype) {
                        case 'p':
                                return 1;
                                break;
                        case 'C':
                                switch (v->nextvalue) {
                                case 'd':
                                        lexnest(v, brbackd, ((brbackd) + sizeof(brbackd)/sizeof(chr)));
                                        break;
                                case 's':
                                        lexnest(v, brbacks, ((brbacks) + sizeof(brbacks)/sizeof(chr)));
                                        break;
                                case 'w':
                                        lexnest(v, brbackw, ((brbackw) + sizeof(brbackw)/sizeof(chr)));
                                        break;
                                default:
                                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
                                        break;
                                }

                                v->nexttype = v->lasttype;
                                return next(v);
                                break;
                        }

                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
                        break;
                case (((unsigned char) ('-'))):
                        if ((v->lasttype == ('[')) || (!(v->now >= v->stop) && *v->now == (((unsigned char) (']')))))
                                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                        else
                                return ((v->nexttype = ('R'), v->nextvalue = (c)), 1);
                        break;
                case (((unsigned char) ('['))):
                        if ((v->now >= v->stop))
                                return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (7))), 0);
                        switch (*v->now++) {
                        case (((unsigned char) ('.'))):
                                (v->lexcon = (7));

                                return ((v->nexttype = ('I')), 1);
                                break;
                        case (((unsigned char) ('='))):
                                (v->lexcon = (8));
                                (v->re->re_info |= (002000));
                                return ((v->nexttype = ('E')), 1);
                                break;
                        case (((unsigned char) (':'))):
                                (v->lexcon = (9));
                                (v->re->re_info |= (002000));
                                return ((v->nexttype = ('C')), 1);
                                break;
                        default:
                                v->now--;
                                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                                break;
                        }
                        ((void)0);
                        break;
                default:
                        return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                        break;
                }
                ((void)0);
                break;
        case 7:
                if (c == (((unsigned char) ('.'))) && (!(v->now >= v->stop) && *v->now == (((unsigned char) (']'))))) {
                        v->now++;
                        (v->lexcon = (6));
                        return ((v->nexttype = ('X'), v->nextvalue = ('.')), 1);
                } else
                        return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        case 8:
                if (c == (((unsigned char) ('='))) && (!(v->now >= v->stop) && *v->now == (((unsigned char) (']'))))) {
                        v->now++;
                        (v->lexcon = (6));
                        return ((v->nexttype = ('X'), v->nextvalue = ('=')), 1);
                } else
                        return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        case 9:
                if (c == (((unsigned char) (':'))) && (!(v->now >= v->stop) && *v->now == (((unsigned char) (']'))))) {
                        v->now++;
                        (v->lexcon = (6));
                        return ((v->nexttype = ('X'), v->nextvalue = (':')), 1);
                } else
                        return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        default:
                ((void)0);
                break;
        }


        ((void)0);


        switch (c) {
        case (((unsigned char) ('|'))):
                return ((v->nexttype = ('|')), 1);
                break;
        case (((unsigned char) ('*'))):
                if ((v->cflags&000002) && (!(v->now >= v->stop) && *v->now == (((unsigned char) ('?'))))) {
                        v->now++;
                        (v->re->re_info |= (000200));
                        return ((v->nexttype = ('*'), v->nextvalue = (0)), 1);
                }
                return ((v->nexttype = ('*'), v->nextvalue = (1)), 1);
                break;
        case (((unsigned char) ('+'))):
                if ((v->cflags&000002) && (!(v->now >= v->stop) && *v->now == (((unsigned char) ('?'))))) {
                        v->now++;
                        (v->re->re_info |= (000200));
                        return ((v->nexttype = ('+'), v->nextvalue = (0)), 1);
                }
                return ((v->nexttype = ('+'), v->nextvalue = (1)), 1);
                break;
        case (((unsigned char) ('?'))):
                if ((v->cflags&000002) && (!(v->now >= v->stop) && *v->now == (((unsigned char) ('?'))))) {
                        v->now++;
                        (v->re->re_info |= (000200));
                        return ((v->nexttype = ('?'), v->nextvalue = (0)), 1);
                }
                return ((v->nexttype = ('?'), v->nextvalue = (1)), 1);
                break;
        case (((unsigned char) ('{'))):
                if (v->cflags&000040)
                        skip(v);
                if ((v->now >= v->stop) || !Tcl_UniCharIsDigit(*v->now)) {
                        (v->re->re_info |= (000010));
                        (v->re->re_info |= (000400));
                        return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                } else {
                        (v->re->re_info |= (000004));
                        (v->lexcon = (4));
                        return ((v->nexttype = ('{')), 1);
                }
                ((void)0);
                break;
        case (((unsigned char) ('('))):
                if ((v->cflags&000002) && (!(v->now >= v->stop) && *v->now == (((unsigned char) ('?'))))) {
                        (v->re->re_info |= (000200));
                        v->now++;
                        switch (*v->now++) {
                        case (((unsigned char) (':'))):
                                return ((v->nexttype = ('('), v->nextvalue = (0)), 1);
                                break;
                        case (((unsigned char) ('#'))):
                                while (!(v->now >= v->stop) && *v->now != (((unsigned char) (')'))))
                                        v->now++;
                                if (!(v->now >= v->stop))
                                        v->now++;
                                ((void)0);
                                return next(v);
                                break;
                        case (((unsigned char) ('='))):
                                (v->re->re_info |= (000002));
                                return ((v->nexttype = ('L'), v->nextvalue = (1)), 1);
                                break;
                        case (((unsigned char) ('!'))):
                                (v->re->re_info |= (000002));
                                return ((v->nexttype = ('L'), v->nextvalue = (0)), 1);
                                break;
                        default:
                                return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (13))), 0);
                                break;
                        }
                        ((void)0);
                }
                if (v->cflags&000020)
                        return ((v->nexttype = ('('), v->nextvalue = (0)), 1);
                else
                        return ((v->nexttype = ('('), v->nextvalue = (1)), 1);
                break;
        case (((unsigned char) (')'))):
                if ((v->lasttype == ('('))) {
                        (v->re->re_info |= (000400));
                }
                return ((v->nexttype = (')'), v->nextvalue = (c)), 1);
                break;
        case (((unsigned char) ('['))):
                if ((v->stop - v->now >= (6)) && *(v->now+0) == (((unsigned char) ('['))) &&
                                *(v->now+1) == (((unsigned char) (':'))) &&
                                (*(v->now+2) == (((unsigned char) ('<'))) ||
                                                *(v->now+2) == (((unsigned char) ('>')))) &&
                                *(v->now+3) == (((unsigned char) (':'))) &&
                                *(v->now+4) == (((unsigned char) (']'))) &&
                                *(v->now+5) == (((unsigned char) (']')))) {
                        c = *(v->now+2);
                        v->now += 6;
                        (v->re->re_info |= (000200));
                        return ((v->nexttype = ((c == (((unsigned char) ('<')))) ? '<' : '>')), 1);
                }
                (v->lexcon = (6));
                if ((!(v->now >= v->stop) && *v->now == (((unsigned char) ('^'))))) {
                        v->now++;
                        return ((v->nexttype = ('['), v->nextvalue = (0)), 1);
                }
                return ((v->nexttype = ('['), v->nextvalue = (1)), 1);
                break;
        case (((unsigned char) ('.'))):
                return ((v->nexttype = ('.')), 1);
                break;
        case (((unsigned char) ('^'))):
                return ((v->nexttype = ('^')), 1);
                break;
        case (((unsigned char) ('$'))):
                return ((v->nexttype = ('$')), 1);
                break;
        case (((unsigned char) ('\\'))):
                if ((v->now >= v->stop))
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
                break;
        default:
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        }


        ((void)0);
        if (!(v->cflags&000002)) {
                if (Tcl_UniCharIsAlnum(*v->now)) {
                        (v->re->re_info |= (000020));
                        (v->re->re_info |= (000400));
                }
                return ((v->nexttype = ('p'), v->nextvalue = (*v->now++)), 1);
        }
        (void)lexescape(v);
        if (((v)->err != 0))
                return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
        if (v->nexttype == 'C') {
                switch (v->nextvalue) {
                case 'd': lexnest(v, backd, ((backd) + sizeof(backd)/sizeof(chr))); break;
                case 'D': lexnest(v, backD, ((backD) + sizeof(backD)/sizeof(chr))); break;
                case 's': lexnest(v, backs, ((backs) + sizeof(backs)/sizeof(chr))); break;
                case 'S': lexnest(v, backS, ((backS) + sizeof(backS)/sizeof(chr))); break;
                case 'w': lexnest(v, backw, ((backw) + sizeof(backw)/sizeof(chr))); break;
                case 'W': lexnest(v, backW, ((backW) + sizeof(backW)/sizeof(chr))); break;
                default:
                        ((void)0);
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (15))), 0);
                        break;
                }

                v->nexttype = v->lasttype;
                return next(v);
        }

        return !((v)->err != 0);
}






static int
lexescape(v)
struct vars *v;
{
        chr c;
        static chr alert[] = {
                (((unsigned char) ('a'))), (((unsigned char) ('l'))), (((unsigned char) ('e'))), (((unsigned char) ('r'))), (((unsigned char) ('t')))
        };
        static chr esc[] = {
                (((unsigned char) ('E'))), (((unsigned char) ('S'))), (((unsigned char) ('C')))
        };
        chr *save;

        ((void)0);

        ((void)0);
        c = *v->now++;
        if (!Tcl_UniCharIsAlnum(c))
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);

        (v->re->re_info |= (000200));
        switch (c) {
        case (((unsigned char) ('a'))):
                return ((v->nexttype = ('p'), v->nextvalue = (chrnamed(v, alert, ((alert) + sizeof(alert)/sizeof(chr)), (((unsigned char) ('\007')))))), 1);
                break;
        case (((unsigned char) ('A'))):
                return ((v->nexttype = ('A'), v->nextvalue = (0)), 1);
                break;
        case (((unsigned char) ('b'))):
                return ((v->nexttype = ('p'), v->nextvalue = ((((unsigned char) ('\b'))))), 1);
                break;
        case (((unsigned char) ('B'))):
                return ((v->nexttype = ('p'), v->nextvalue = ((((unsigned char) ('\\'))))), 1);
                break;
        case (((unsigned char) ('c'))):
                (v->re->re_info |= (001000));
                if ((v->now >= v->stop))
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
                return ((v->nexttype = ('p'), v->nextvalue = ((chr)(*v->now++ & 037))), 1);
                break;
        case (((unsigned char) ('d'))):
                (v->re->re_info |= (002000));
                return ((v->nexttype = ('C'), v->nextvalue = ('d')), 1);
                break;
        case (((unsigned char) ('D'))):
                (v->re->re_info |= (002000));
                return ((v->nexttype = ('C'), v->nextvalue = ('D')), 1);
                break;
        case (((unsigned char) ('e'))):
                (v->re->re_info |= (001000));
                return ((v->nexttype = ('p'), v->nextvalue = (chrnamed(v, esc, ((esc) + sizeof(esc)/sizeof(chr)), (((unsigned char) ('\033')))))), 1);
                break;
        case (((unsigned char) ('f'))):
                return ((v->nexttype = ('p'), v->nextvalue = ((((unsigned char) ('\f'))))), 1);
                break;
        case (((unsigned char) ('m'))):
                return ((v->nexttype = ('<')), 1);
                break;
        case (((unsigned char) ('M'))):
                return ((v->nexttype = ('>')), 1);
                break;
        case (((unsigned char) ('n'))):
                return ((v->nexttype = ('p'), v->nextvalue = ((((unsigned char) ('\n'))))), 1);
                break;
        case (((unsigned char) ('r'))):
                return ((v->nexttype = ('p'), v->nextvalue = ((((unsigned char) ('\r'))))), 1);
                break;
        case (((unsigned char) ('s'))):
                (v->re->re_info |= (002000));
                return ((v->nexttype = ('C'), v->nextvalue = ('s')), 1);
                break;
        case (((unsigned char) ('S'))):
                (v->re->re_info |= (002000));
                return ((v->nexttype = ('C'), v->nextvalue = ('S')), 1);
                break;
        case (((unsigned char) ('t'))):
                return ((v->nexttype = ('p'), v->nextvalue = ((((unsigned char) ('\t'))))), 1);
                break;
        case (((unsigned char) ('u'))):
                c = lexdigits(v, 16, 4, 4);
                if (((v)->err != 0))
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        case (((unsigned char) ('U'))):
                c = lexdigits(v, 16, 8, 8);
                if (((v)->err != 0))
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        case (((unsigned char) ('v'))):
                return ((v->nexttype = ('p'), v->nextvalue = ((((unsigned char) ('\v'))))), 1);
                break;
        case (((unsigned char) ('w'))):
                (v->re->re_info |= (002000));
                return ((v->nexttype = ('C'), v->nextvalue = ('w')), 1);
                break;
        case (((unsigned char) ('W'))):
                (v->re->re_info |= (002000));
                return ((v->nexttype = ('C'), v->nextvalue = ('W')), 1);
                break;
        case (((unsigned char) ('x'))):
                (v->re->re_info |= (001000));
                c = lexdigits(v, 16, 1, 255);
                if (((v)->err != 0))
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        case (((unsigned char) ('y'))):
                (v->re->re_info |= (002000));
                return ((v->nexttype = ('w'), v->nextvalue = (0)), 1);
                break;
        case (((unsigned char) ('Y'))):
                (v->re->re_info |= (002000));
                return ((v->nexttype = ('W'), v->nextvalue = (0)), 1);
                break;
        case (((unsigned char) ('Z'))):
                return ((v->nexttype = ('Z'), v->nextvalue = (0)), 1);
                break;
        case (((unsigned char) ('1'))): case (((unsigned char) ('2'))): case (((unsigned char) ('3'))): case (((unsigned char) ('4'))):
        case (((unsigned char) ('5'))): case (((unsigned char) ('6'))): case (((unsigned char) ('7'))): case (((unsigned char) ('8'))):
        case (((unsigned char) ('9'))):
                save = v->now;
                v->now--;
                c = lexdigits(v, 10, 1, 255);
                if (((v)->err != 0))
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);

                if (v->now - save == 0 || (int)c <= v->nsubexp) {
                        (v->re->re_info |= (000001));
                        return ((v->nexttype = ('b'), v->nextvalue = ((chr)c)), 1);
                }

                v->now = save;

        case (((unsigned char) ('0'))):
                (v->re->re_info |= (001000));
                v->now--;
                c = lexdigits(v, 8, 1, 3);
                if (((v)->err != 0))
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        default:
                ((void)0);
                return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
                break;
        }
        ((void)0);
}





static chr
lexdigits(v, base, minlen, maxlen)
struct vars *v;
int base;
int minlen;
int maxlen;
{
        uchr n;
        int len;
        chr c;
        int d;
        const uchr ub = (uchr) base;

        n = 0;
        for (len = 0; len < maxlen && !(v->now >= v->stop); len++) {
                c = *v->now++;
                switch (c) {
                case (((unsigned char) ('0'))): case (((unsigned char) ('1'))): case (((unsigned char) ('2'))): case (((unsigned char) ('3'))):
                case (((unsigned char) ('4'))): case (((unsigned char) ('5'))): case (((unsigned char) ('6'))): case (((unsigned char) ('7'))):
                case (((unsigned char) ('8'))): case (((unsigned char) ('9'))):
                        d = ((c)-'0');
                        break;
                case (((unsigned char) ('a'))): case (((unsigned char) ('A'))): d = 10; break;
                case (((unsigned char) ('b'))): case (((unsigned char) ('B'))): d = 11; break;
                case (((unsigned char) ('c'))): case (((unsigned char) ('C'))): d = 12; break;
                case (((unsigned char) ('d'))): case (((unsigned char) ('D'))): d = 13; break;
                case (((unsigned char) ('e'))): case (((unsigned char) ('E'))): d = 14; break;
                case (((unsigned char) ('f'))): case (((unsigned char) ('F'))): d = 15; break;
                default:
                        v->now--;
                        d = -1;
                        break;
                }

                if (d >= base) {
                        v->now--;
                        d = -1;
                }
                if (d < 0)
                        break;
                n = n*ub + (uchr)d;
        }
        if (len < minlen)
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5)));

        return (chr)n;
}







static int
brenext(v, pc)
struct vars *v;
pchr pc;
{
        chr c = (chr)pc;

        switch (c) {
        case (((unsigned char) ('*'))):
                if ((v->lasttype == ('n')) || (v->lasttype == ('(')) || (v->lasttype == ('^')))
                        return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                return ((v->nexttype = ('*')), 1);
                break;
        case (((unsigned char) ('['))):
                if ((v->stop - v->now >= (6)) && *(v->now+0) == (((unsigned char) ('['))) &&
                                *(v->now+1) == (((unsigned char) (':'))) &&
                                (*(v->now+2) == (((unsigned char) ('<'))) ||
                                                *(v->now+2) == (((unsigned char) ('>')))) &&
                                *(v->now+3) == (((unsigned char) (':'))) &&
                                *(v->now+4) == (((unsigned char) (']'))) &&
                                *(v->now+5) == (((unsigned char) (']')))) {
                        c = *(v->now+2);
                        v->now += 6;
                        (v->re->re_info |= (000200));
                        return ((v->nexttype = ((c == (((unsigned char) ('<')))) ? '<' : '>')), 1);
                }
                (v->lexcon = (6));
                if ((!(v->now >= v->stop) && *v->now == (((unsigned char) ('^'))))) {
                        v->now++;
                        return ((v->nexttype = ('['), v->nextvalue = (0)), 1);
                }
                return ((v->nexttype = ('['), v->nextvalue = (1)), 1);
                break;
        case (((unsigned char) ('.'))):
                return ((v->nexttype = ('.')), 1);
                break;
        case (((unsigned char) ('^'))):
                if ((v->lasttype == ('n')))
                        return ((v->nexttype = ('^')), 1);
                if ((v->lasttype == ('('))) {
                        (v->re->re_info |= (000400));
                        return ((v->nexttype = ('^')), 1);
                }
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        case (((unsigned char) ('$'))):
                if (v->cflags&000040)
                        skip(v);
                if ((v->now >= v->stop))
                        return ((v->nexttype = ('$')), 1);
                if (((v->stop - v->now >= (2)) && *v->now == (((unsigned char) ('\\'))) && *(v->now+1) == (((unsigned char) (')'))))) {
                        (v->re->re_info |= (000400));
                        return ((v->nexttype = ('$')), 1);
                }
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        case (((unsigned char) ('\\'))):
                break;
        default:
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        }

        ((void)0);

        if ((v->now >= v->stop))
                return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);

        c = *v->now++;
        switch (c) {
        case (((unsigned char) ('{'))):
                (v->lexcon = (5));
                (v->re->re_info |= (000004));
                return ((v->nexttype = ('{')), 1);
                break;
        case (((unsigned char) ('('))):
                return ((v->nexttype = ('('), v->nextvalue = (1)), 1);
                break;
        case (((unsigned char) (')'))):
                return ((v->nexttype = (')'), v->nextvalue = (c)), 1);
                break;
        case (((unsigned char) ('<'))):
                (v->re->re_info |= (000200));
                return ((v->nexttype = ('<')), 1);
                break;
        case (((unsigned char) ('>'))):
                (v->re->re_info |= (000200));
                return ((v->nexttype = ('>')), 1);
                break;
        case (((unsigned char) ('1'))): case (((unsigned char) ('2'))): case (((unsigned char) ('3'))): case (((unsigned char) ('4'))):
        case (((unsigned char) ('5'))): case (((unsigned char) ('6'))): case (((unsigned char) ('7'))): case (((unsigned char) ('8'))):
        case (((unsigned char) ('9'))):
                (v->re->re_info |= (000001));
                return ((v->nexttype = ('b'), v->nextvalue = ((chr)((c)-'0'))), 1);
                break;
        default:
                if (Tcl_UniCharIsAlnum(c)) {
                        (v->re->re_info |= (000020));
                        (v->re->re_info |= (000400));
                }
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        }

        ((void)0);
}





static void
skip(v)
struct vars *v;
{
        chr *start = v->now;

        ((void)0);

        for (;;) {
                while (!(v->now >= v->stop) && Tcl_UniCharIsSpace(*v->now))
                        v->now++;
                if ((v->now >= v->stop) || *v->now != (((unsigned char) ('#'))))
                        break;
                ((void)0);
                while (!(v->now >= v->stop) && *v->now != (((unsigned char) ('\n'))))
                        v->now++;

        }

        if (v->now != start)
                (v->re->re_info |= (000200));
}






static chr
newline()
{
        return (((unsigned char) ('\n')));
}
# 1036 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_lex.c"
static chr
chrnamed(v, startp, endp, lastresort)
struct vars *v;
chr *startp;
chr *endp;
pchr lastresort;
{
        celt c;
        int errsave;
        int e;
        struct cvec *cv;

        errsave = v->err;
        v->err = 0;
        c = element(v, startp, endp);
        e = v->err;
        v->err = errsave;

        if (e != 0)
                return (chr)lastresort;

        cv = range(v, c, c, 0);
        if (cv->nchrs == 0)
                return (chr)lastresort;
        return cv->chrs[0];
}
# 2172 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c" 2
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_color.c" 1
# 48 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_color.c"
static void
initcm(v, cm)
struct vars *v;
struct colormap *cm;
{
        int i;
        int j;
        union tree *t;
        union tree *nextt;
        struct colordesc *cd;

        cm->magic = 0x876;
        cm->v = v;

        cm->ncds = ((size_t)10);
        cm->cd = cm->cdspace;
        cm->max = 0;
        cm->free = 0;

        cd = cm->cd;
        cd->sub = (-1);
        cd->arcs = ((void *)0);
        cd->flags = 0;
        cd->nchrs = 0xffff - 0x0000 + 1;


        for (t = &cm->tree[0], j = ((16 +8 -1)/8)-1; j > 0; t = nextt, j--) {
                nextt = t + 1;
                for (i = (1<<8)-1; i >= 0; i--)
                        t->ptrs.pptr[i] = nextt;
        }

        t = &cm->tree[((16 +8 -1)/8)-1];
        for (i = (1<<8)-1; i >= 0; i--)
                t->colors.ccolor[i] = 0;
        cd->block = t;
}





static void
freecm(cm)
struct colormap *cm;
{
        size_t i;
        union tree *cb;

        cm->magic = 0;
        if (((16 +8 -1)/8) > 1)
                cmtreefree(cm, cm->tree, 0);
        for (i = 1; i <= cm->max; i++)
                if (!((&cm->cd[i])->flags&01)) {
                        cb = cm->cd[i].block;
                        if (cb != ((void *)0))
                                Tcl_Free(((void *)(cb)));
                }
        if (cm->cd != cm->cdspace)
                Tcl_Free(((void *)(cm->cd)));
}





static void
cmtreefree(cm, tree, level)
struct colormap *cm;
union tree *tree;
int level;
{
        int i;
        union tree *t;
        union tree *fillt = &cm->tree[level+1];
        union tree *cb;

        ((void)0);
        for (i = (1<<8)-1; i >= 0; i--) {
                t = tree->ptrs.pptr[i];
                ((void)0);
                if (t != fillt) {
                        if (level < ((16 +8 -1)/8)-2) {
                                cmtreefree(cm, t, level+1);
                                Tcl_Free(((void *)(t)));
                        } else {
                                cb = cm->cd[t->colors.ccolor[0]].block;
                                if (t != cb)
                                        Tcl_Free(((void *)(t)));
                        }
                }
        }
}





static color
setcolor(cm, c, co)
struct colormap *cm;
pchr c;
pcolor co;
{
        uchr uc = c;
        int shift;
        int level;
        int b;
        int bottom;
        union tree *t;
        union tree *newt;
        union tree *fillt;
        union tree *lastt;
        union tree *cb;
        color prev;

        ((void)0);
        if (((cm->v)->err != 0) || co == (-1))
                return (-1);

        t = cm->tree;
        for (level = 0, shift = 8 * (((16 +8 -1)/8) - 1); shift > 0;
                                                level++, shift -= 8) {
                b = (uc >> shift) & ((1<<8)-1);
                lastt = t;
                t = lastt->ptrs.pptr[b];
                ((void)0);
                fillt = &cm->tree[level+1];
                bottom = (shift <= 8) ? 1 : 0;
                cb = (bottom) ? cm->cd[t->colors.ccolor[0]].block : fillt;
                if (t == fillt || t == cb) {
                        newt = (union tree *)Tcl_Alloc((bottom) ? sizeof(struct colors) : sizeof(struct ptrs));

                        if (newt == ((void *)0)) {
                                ((cm->v)->nexttype = 'e', ((cm->v)->err) ? (cm->v)->err : ((cm->v)->err = ((12))));
                                return (-1);
                        }
                        if (bottom)
                                memcpy(((void *)(newt->colors.ccolor)), ((void *)(t->colors.ccolor)),
                                                        (1<<8)*sizeof(color));
                        else
                                memcpy(((void *)(newt->ptrs.pptr)), ((void *)(t->ptrs.pptr)),
                                                (1<<8)*sizeof(union tree *));
                        t = newt;
                        lastt->ptrs.pptr[b] = t;
                }
        }

        b = uc & ((1<<8)-1);
        prev = t->colors.ccolor[b];
        t->colors.ccolor[b] = (color)co;
        return prev;
}





static color
maxcolor(cm)
struct colormap *cm;
{
        if (((cm->v)->err != 0))
                return (-1);

        return (color)cm->max;
}






static color
newcolor(cm)
struct colormap *cm;
{
        struct colordesc *cd;
        struct colordesc *new;
        size_t n;

        if (((cm->v)->err != 0))
                return (-1);

        if (cm->free != 0) {
                ((void)0);
                ((void)0);
                cd = &cm->cd[cm->free];
                ((void)0);
                ((void)0);
                cm->free = cd->sub;
        } else if (cm->max < cm->ncds - 1) {
                cm->max++;
                cd = &cm->cd[cm->max];
        } else {

                n = cm->ncds * 2;
                if (cm->cd == cm->cdspace) {
                        new = (struct colordesc *)Tcl_Alloc(n * sizeof(struct colordesc));

                        if (new != ((void *)0))
                                memcpy(((void *)(new)), ((void *)(cm->cdspace)), cm->ncds *
                                                sizeof(struct colordesc));
                } else
                        new = (struct colordesc *)Tcl_Realloc(((void *)(cm->cd)),n * sizeof(struct colordesc));

                if (new == ((void *)0)) {
                        ((cm->v)->nexttype = 'e', ((cm->v)->err) ? (cm->v)->err : ((cm->v)->err = ((12))));
                        return (-1);
                }
                cm->cd = new;
                cm->ncds = n;
                ((void)0);
                cm->max++;
                cd = &cm->cd[cm->max];
        }

        cd->nchrs = 0;
        cd->sub = (-1);
        cd->arcs = ((void *)0);
        cd->flags = 0;
        cd->block = ((void *)0);

        return (color)(cd - cm->cd);
}





static void
freecolor(cm, co)
struct colormap *cm;
pcolor co;
{
        struct colordesc *cd = &cm->cd[co];
        color pco, nco;

        ((void)0);
        if (co == 0)
                return;

        ((void)0);
        ((void)0);
        ((void)0);
        cd->flags = 01;
        if (cd->block != ((void *)0)) {
                Tcl_Free(((void *)(cd->block)));
                cd->block = ((void *)0);
        }

        if ((size_t)co == cm->max) {
                while (cm->max > 0 && ((&cm->cd[cm->max])->flags&01))
                        cm->max--;
                ((void)0);
                while ((size_t)cm->free > cm->max)
                        cm->free = cm->cd[cm->free].sub;
                if (cm->free > 0) {
                        ((void)0);
                        pco = cm->free;
                        nco = cm->cd[pco].sub;
                        while (nco > 0)
                                if ((size_t)nco > cm->max) {

                                        nco = cm->cd[nco].sub;
                                        cm->cd[pco].sub = nco;
                                } else {
                                        ((void)0);
                                        pco = nco;
                                        nco = cm->cd[pco].sub;
                                }
                }
        } else {
                cd->sub = cm->free;
                cm->free = (color)(cd - cm->cd);
        }
}





static color
pseudocolor(cm)
struct colormap *cm;
{
        color co;

        co = newcolor(cm);
        if (((cm->v)->err != 0))
                return (-1);
        cm->cd[co].nchrs = 1;
        cm->cd[co].flags = 02;
        return co;
}





static color
subcolor(cm, c)
struct colormap *cm;
pchr c;
{
        color co;
        color sco;

        co = ((cm)->tree->ptrs.pptr[(((c)>>8) & ((1<<8)-1))]->colors.ccolor[((c) & ((1<<8)-1))]);
        sco = newsub(cm, co);
        if (((cm->v)->err != 0))
                return (-1);
        ((void)0);

        if (co == sco)
                return co;
        cm->cd[co].nchrs--;
        cm->cd[sco].nchrs++;
        setcolor(cm, c, sco);
        return sco;
}





static color
newsub(cm, co)
struct colormap *cm;
pcolor co;
{
        color sco;

        sco = cm->cd[co].sub;
        if (sco == (-1)) {
                if (cm->cd[co].nchrs == 1)
                        return co;
                sco = newcolor(cm);
                if (sco == (-1)) {
                        ((void)0);
                        return (-1);
                }
                cm->cd[co].sub = sco;
                cm->cd[sco].sub = sco;
        }
        ((void)0);

        return sco;
}






static void
subrange(v, from, to, lp, rp)
struct vars *v;
pchr from;
pchr to;
struct state *lp;
struct state *rp;
{
        uchr uf;
        int i;

        ((void)0);


        uf = (uchr)from;
        i = (int)( ((uf + (1<<8)-1) & (uchr)~((1<<8)-1)) - uf );
        for (; from <= to && i > 0; i--, from++)
                newarc(v->nfa, 'p', subcolor(v->cm, from), lp, rp);
        if (from > to)
                return;


        for (; to - from >= (1<<8); from += (1<<8))
                subblock(v, from, lp, rp);


        for (; from <= to; from++)
                newarc(v->nfa, 'p', subcolor(v->cm, from), lp, rp);
}





static void
subblock(v, start, lp, rp)
struct vars *v;
pchr start;
struct state *lp;
struct state *rp;
{
        uchr uc = start;
        struct colormap *cm = v->cm;
        int shift;
        int level;
        int i;
        int b;
        union tree *t;
        union tree *cb;
        union tree *fillt;
        union tree *lastt;
        int previ;
        int ndone;
        color co;
        color sco;

        ((void)0);


        t = cm->tree;
        fillt = ((void *)0);
        for (level = 0, shift = 8 * (((16 +8 -1)/8) - 1); shift > 0;
                                                level++, shift -= 8) {
                b = (uc >> shift) & ((1<<8)-1);
                lastt = t;
                t = lastt->ptrs.pptr[b];
                ((void)0);
                fillt = &cm->tree[level+1];
                if (t == fillt && shift > 8) {
                        t = (union tree *)Tcl_Alloc(sizeof(struct ptrs));
                        if (t == ((void *)0)) {
                                ((cm->v)->nexttype = 'e', ((cm->v)->err) ? (cm->v)->err : ((cm->v)->err = ((12))));
                                return;
                        }
                        memcpy(((void *)(t->ptrs.pptr)), ((void *)(fillt->ptrs.pptr)),
                                                (1<<8)*sizeof(union tree *));
                        lastt->ptrs.pptr[b] = t;
                }
        }


        co = t->colors.ccolor[0];
        cb = cm->cd[co].block;
        if (t == fillt || t == cb) {

                sco = newsub(cm, co);
                t = cm->cd[sco].block;
                if (t == ((void *)0)) {
                        t = (union tree *)Tcl_Alloc(sizeof(struct colors));
                        if (t == ((void *)0)) {
                                ((cm->v)->nexttype = 'e', ((cm->v)->err) ? (cm->v)->err : ((cm->v)->err = ((12))));
                                return;
                        }
                        for (i = 0; i < (1<<8); i++)
                                t->colors.ccolor[i] = sco;
                        cm->cd[sco].block = t;
                }

                lastt->ptrs.pptr[b] = t;
                newarc(v->nfa, 'p', sco, lp, rp);
                cm->cd[co].nchrs -= (1<<8);
                cm->cd[sco].nchrs += (1<<8);
                return;
        }


        i = 0;
        while (i < (1<<8)) {
                co = t->colors.ccolor[i];
                sco = newsub(cm, co);
                newarc(v->nfa, 'p', sco, lp, rp);
                previ = i;
                do {
                        t->colors.ccolor[i++] = sco;
                } while (i < (1<<8) && t->colors.ccolor[i] == co);
                ndone = i - previ;
                cm->cd[co].nchrs -= ndone;
                cm->cd[sco].nchrs += ndone;
        }
}





static void
okcolors(nfa, cm)
struct nfa *nfa;
struct colormap *cm;
{
        struct colordesc *cd;
        struct colordesc *end = (&(cm)->cd[(cm)->max + 1]);
        struct colordesc *scd;
        struct arc *a;
        color co;
        color sco;

        for (cd = cm->cd, co = 0; cd < end; cd++, co++) {
                sco = cd->sub;
                if (((cd)->flags&01) || sco == (-1)) {

                } else if (sco == co) {

                } else if (cd->nchrs == 0) {

                        cd->sub = (-1);
                        scd = &cm->cd[sco];
                        ((void)0);
                        ((void)0);
                        scd->sub = (-1);
                        while ((a = cd->arcs) != ((void *)0)) {
                                ((void)0);

                                cd->arcs = a->colorchain;
                                a->co = sco;

                                a->colorchain = scd->arcs;
                                scd->arcs = a;
                        }
                        freecolor(cm, co);
                } else {

                        cd->sub = (-1);
                        scd = &cm->cd[sco];
                        ((void)0);
                        ((void)0);
                        scd->sub = (-1);
                        for (a = cd->arcs; a != ((void *)0); a = a->colorchain) {
                                ((void)0);
                                newarc(nfa, a->type, sco, a->from, a->to);
                        }
                }
        }
}





static void
colorchain(cm, a)
struct colormap *cm;
struct arc *a;
{
        struct colordesc *cd = &cm->cd[a->co];

        a->colorchain = cd->arcs;
        cd->arcs = a;
}





static void
uncolorchain(cm, a)
struct colormap *cm;
struct arc *a;
{
        struct colordesc *cd = &cm->cd[a->co];
        struct arc *aa;

        aa = cd->arcs;
        if (aa == a)
                cd->arcs = a->colorchain;
        else {
                for (; aa != ((void *)0) && aa->colorchain != a; aa = aa->colorchain)
                        continue;
                ((void)0);
                aa->colorchain = a->colorchain;
        }
        a->colorchain = ((void *)0);
}





static int
singleton(cm, c)
struct colormap *cm;
pchr c;
{
        color co;

        co = ((cm)->tree->ptrs.pptr[(((c)>>8) & ((1<<8)-1))]->colors.ccolor[((c) & ((1<<8)-1))]);
        if (cm->cd[co].nchrs == 1 && cm->cd[co].sub == (-1))
                return 1;
        return 0;
}






static void
rainbow(nfa, cm, type, but, from, to)
struct nfa *nfa;
struct colormap *cm;
int type;
pcolor but;
struct state *from;
struct state *to;
{
        struct colordesc *cd;
        struct colordesc *end = (&(cm)->cd[(cm)->max + 1]);
        color co;

        for (cd = cm->cd, co = 0; cd < end && !((cm->v)->err != 0); cd++, co++)
                if (!((cd)->flags&01) && cd->sub != co && co != but &&
                                                        !(cd->flags&02))
                        newarc(nfa, type, co, from, to);
}







static void
colorcomplement(nfa, cm, type, of, from, to)
struct nfa *nfa;
struct colormap *cm;
int type;
struct state *of;
struct state *from;
struct state *to;
{
        struct colordesc *cd;
        struct colordesc *end = (&(cm)->cd[(cm)->max + 1]);
        color co;

        ((void)0);
        for (cd = cm->cd, co = 0; cd < end && !((cm->v)->err != 0); cd++, co++)
                if (!((cd)->flags&01) && !(cd->flags&02))
                        if (findarc(of, 'p', co) == ((void *)0))
                                newarc(nfa, type, co, from, to);
}
# 2173 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c" 2
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c" 1
# 46 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c"
static struct nfa *
newnfa(v, cm, parent)
struct vars *v;
struct colormap *cm;
struct nfa *parent;
{
        struct nfa *nfa;

        nfa = (struct nfa *)Tcl_Alloc(sizeof(struct nfa));
        if (nfa == ((void *)0))
                return ((void *)0);

        nfa->states = ((void *)0);
        nfa->slast = ((void *)0);
        nfa->free = ((void *)0);
        nfa->nstates = 0;
        nfa->cm = cm;
        nfa->v = v;
        nfa->bos[0] = nfa->bos[1] = (-1);
        nfa->eos[0] = nfa->eos[1] = (-1);
        nfa->post = newfstate(nfa, '@');
        nfa->pre = newfstate(nfa, '>');
        nfa->parent = parent;

        nfa->init = newstate(nfa);
        nfa->final = newstate(nfa);
        if (((v)->err != 0)) {
                freenfa(nfa);
                return ((void *)0);
        }
        rainbow(nfa, nfa->cm, 'p', (-1), nfa->pre, nfa->init);
        newarc(nfa, '^', 1, nfa->pre, nfa->init);
        newarc(nfa, '^', 0, nfa->pre, nfa->init);
        rainbow(nfa, nfa->cm, 'p', (-1), nfa->final, nfa->post);
        newarc(nfa, '$', 1, nfa->final, nfa->post);
        newarc(nfa, '$', 0, nfa->final, nfa->post);

        if (((v)->err != 0)) {
                freenfa(nfa);
                return ((void *)0);
        }
        return nfa;
}





static void
freenfa(nfa)
struct nfa *nfa;
{
        struct state *s;

        while ((s = nfa->states) != ((void *)0)) {
                s->nins = s->nouts = 0;
                freestate(nfa, s);
        }
        while ((s = nfa->free) != ((void *)0)) {
                nfa->free = s->next;
                destroystate(nfa, s);
        }

        nfa->slast = ((void *)0);
        nfa->nstates = -1;
        nfa->pre = ((void *)0);
        nfa->post = ((void *)0);
        Tcl_Free(((void *)(nfa)));
}





static struct state *
newstate(nfa)
struct nfa *nfa;
{
        struct state *s;

        if (nfa->free != ((void *)0)) {
                s = nfa->free;
                nfa->free = s->next;
        } else {
                s = (struct state *)Tcl_Alloc(sizeof(struct state));
                if (s == ((void *)0)) {
                        ((nfa->v)->nexttype = 'e', ((nfa->v)->err) ? (nfa->v)->err : ((nfa->v)->err = ((12))));
                        return ((void *)0);
                }
                s->oas.next = ((void *)0);
                s->free = ((void *)0);
                s->noas = 0;
        }

        ((void)0);
        s->no = nfa->nstates++;
        s->flag = 0;
        if (nfa->states == ((void *)0))
                nfa->states = s;
        s->nins = 0;
        s->ins = ((void *)0);
        s->nouts = 0;
        s->outs = ((void *)0);
        s->tmp = ((void *)0);
        s->next = ((void *)0);
        if (nfa->slast != ((void *)0)) {
                ((void)0);
                nfa->slast->next = s;
        }
        s->prev = nfa->slast;
        nfa->slast = s;
        return s;
}





static struct state *
newfstate(nfa, flag)
struct nfa *nfa;
int flag;
{
        struct state *s;

        s = newstate(nfa);
        if (s != ((void *)0))
                s->flag = (char)flag;
        return s;
}





static void
dropstate(nfa, s)
struct nfa *nfa;
struct state *s;
{
        struct arc *a;

        while ((a = s->ins) != ((void *)0))
                freearc(nfa, a);
        while ((a = s->outs) != ((void *)0))
                freearc(nfa, a);
        freestate(nfa, s);
}





static void
freestate(nfa, s)
struct nfa *nfa;
struct state *s;
{
        ((void)0);
        ((void)0);

        s->no = (-1);
        s->flag = 0;
        if (s->next != ((void *)0))
                s->next->prev = s->prev;
        else {
                ((void)0);
                nfa->slast = s->prev;
        }
        if (s->prev != ((void *)0))
                s->prev->next = s->next;
        else {
                ((void)0);
                nfa->states = s->next;
        }
        s->prev = ((void *)0);
        s->next = nfa->free;
        nfa->free = s;
}





static void
destroystate(nfa, s)
struct nfa *nfa;
struct state *s;
{
        struct arcbatch *ab;
        struct arcbatch *abnext;

        ((void)0);
        for (ab = s->oas.next; ab != ((void *)0); ab = abnext) {
                abnext = ab->next;
                Tcl_Free(((void *)(ab)));
        }
        s->ins = ((void *)0);
        s->outs = ((void *)0);
        s->next = ((void *)0);
        Tcl_Free(((void *)(s)));
}






static void
newarc(nfa, t, co, from, to)
struct nfa *nfa;
int t;
pcolor co;
struct state *from;
struct state *to;
{
        struct arc *a;

        ((void)0);


        for (a = from->outs; a != ((void *)0); a = a->outchain)
                if (a->to == to && a->co == co && a->type == t)
                        return;

        a = allocarc(nfa, from);
        if (((nfa->v)->err != 0))
                return;
        ((void)0);

        a->type = t;
        a->co = (color)co;
        a->to = to;
        a->from = from;







        a->inchain = to->ins;
        to->ins = a;
        a->outchain = from->outs;
        from->outs = a;

        from->nouts++;
        to->nins++;

        if (((a)->type == 'p' || (a)->type == 'a' || (a)->type == 'r') && nfa->parent == ((void *)0))
                colorchain(nfa->cm, a);

        return;
}





static struct arc *
allocarc(nfa, s)
struct nfa *nfa;
struct state *s;
{
        struct arc *a;
        struct arcbatch *new;
        int i;


        if (s->free == ((void *)0) && s->noas < 10) {
                a = &s->oas.a[s->noas];
                s->noas++;
                return a;
        }


        if (s->free == ((void *)0)) {
                new = (struct arcbatch *)Tcl_Alloc(sizeof(struct arcbatch));
                if (new == ((void *)0)) {
                        ((nfa->v)->nexttype = 'e', ((nfa->v)->err) ? (nfa->v)->err : ((nfa->v)->err = ((12))));
                        return ((void *)0);
                }
                new->next = s->oas.next;
                s->oas.next = new;

                for (i = 0; i < 10; i++) {
                        new->a[i].type = 0;
                        new->a[i].outchain = &new->a[i+1];
                }
                new->a[10 -1].outchain = ((void *)0);
                s->free = &new->a[0];
        }
        ((void)0);

        a = s->free;
        s->free = a->outchain;
        return a;
}





static void
freearc(nfa, victim)
struct nfa *nfa;
struct arc *victim;
{
        struct state *from = victim->from;
        struct state *to = victim->to;
        struct arc *a;

        ((void)0);


        if (((victim)->type == 'p' || (victim)->type == 'a' || (victim)->type == 'r') && nfa->parent == ((void *)0))
                uncolorchain(nfa->cm, victim);


        ((void)0);
        ((void)0);
        a = from->outs;
        if (a == victim)
                from->outs = victim->outchain;
        else {
                for (; a != ((void *)0) && a->outchain != victim; a = a->outchain)
                        continue;
                ((void)0);
                a->outchain = victim->outchain;
        }
        from->nouts--;


        ((void)0);
        ((void)0);
        a = to->ins;
        if (a == victim)
                to->ins = victim->inchain;
        else {
                for (; a != ((void *)0) && a->inchain != victim; a = a->inchain)
                        continue;
                ((void)0);
                a->inchain = victim->inchain;
        }
        to->nins--;


        victim->type = 0;
        victim->from = ((void *)0);
        victim->to = ((void *)0);
        victim->inchain = ((void *)0);
        victim->outchain = ((void *)0);
        victim->outchain = from->free;
        from->free = victim;
}






static struct arc *
findarc(s, type, co)
struct state *s;
int type;
pcolor co;
{
        struct arc *a;

        for (a = s->outs; a != ((void *)0); a = a->outchain)
                if (a->type == type && a->co == co)
                        return a;
        return ((void *)0);
}






static void
cparc(nfa, oa, from, to)
struct nfa *nfa;
struct arc *oa;
struct state *from;
struct state *to;
{
        newarc(nfa, oa->type, oa->co, from, to);
}
# 444 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c"
static void
moveins(nfa, old, new)
struct nfa *nfa;
struct state *old;
struct state *new;
{
        struct arc *a;

        ((void)0);

        while ((a = old->ins) != ((void *)0)) {
                cparc(nfa, a, a->from, new);
                freearc(nfa, a);
        }
        ((void)0);
        ((void)0);
}





static void
copyins(nfa, old, new)
struct nfa *nfa;
struct state *old;
struct state *new;
{
        struct arc *a;

        ((void)0);

        for (a = old->ins; a != ((void *)0); a = a->inchain)
                cparc(nfa, a, a->from, new);
}





static void
moveouts(nfa, old, new)
struct nfa *nfa;
struct state *old;
struct state *new;
{
        struct arc *a;

        ((void)0);

        while ((a = old->outs) != ((void *)0)) {
                cparc(nfa, a, new, a->to);
                freearc(nfa, a);
        }
}





static void
copyouts(nfa, old, new)
struct nfa *nfa;
struct state *old;
struct state *new;
{
        struct arc *a;

        ((void)0);

        for (a = old->outs; a != ((void *)0); a = a->outchain)
                cparc(nfa, a, new, a->to);
}






static void
cloneouts(nfa, old, from, to, type)
struct nfa *nfa;
struct state *old;
struct state *from;
struct state *to;
int type;
{
        struct arc *a;

        ((void)0);

        for (a = old->outs; a != ((void *)0); a = a->outchain)
                newarc(nfa, type, a->co, from, to);
}







static void
delsub(nfa, lp, rp)
struct nfa *nfa;
struct state *lp;
struct state *rp;
{
        ((void)0);

        rp->tmp = rp;

        deltraverse(nfa, lp, lp);
        ((void)0);
        ((void)0);

        rp->tmp = ((void *)0);
        lp->tmp = ((void *)0);
}






static void
deltraverse(nfa, leftend, s)
struct nfa *nfa;
struct state *leftend;
struct state *s;
{
        struct arc *a;
        struct state *to;

        if (s->nouts == 0)
                return;
        if (s->tmp != ((void *)0))
                return;

        s->tmp = s;

        while ((a = s->outs) != ((void *)0)) {
                to = a->to;
                deltraverse(nfa, leftend, to);
                ((void)0);
                freearc(nfa, a);
                if (to->nins == 0 && to->tmp == ((void *)0)) {
                        ((void)0);
                        freestate(nfa, to);
                }
        }

        ((void)0);
        ((void)0);
        ((void)0);

        s->tmp = ((void *)0);
}
# 610 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c"
static void
dupnfa(nfa, start, stop, from, to)
struct nfa *nfa;
struct state *start;
struct state *stop;
struct state *from;
struct state *to;
{
        if (start == stop) {
                newarc(nfa, 'n', 0, from, to);
                return;
        }

        stop->tmp = to;
        duptraverse(nfa, start, from);


        stop->tmp = ((void *)0);
        cleartraverse(nfa, start);
}





static void
duptraverse(nfa, s, stmp)
struct nfa *nfa;
struct state *s;
struct state *stmp;
{
        struct arc *a;

        if (s->tmp != ((void *)0))
                return;

        s->tmp = (stmp == ((void *)0)) ? newstate(nfa) : stmp;
        if (s->tmp == ((void *)0)) {
                ((void)0);
                return;
        }

        for (a = s->outs; a != ((void *)0) && !((nfa->v)->err != 0); a = a->outchain) {
                duptraverse(nfa, a->to, (struct state *)((void *)0));
                ((void)0);
                cparc(nfa, a, s->tmp, a->to->tmp);
        }
}





static void
cleartraverse(nfa, s)
struct nfa *nfa;
struct state *s;
{
        struct arc *a;

        if (s->tmp == ((void *)0))
                return;
        s->tmp = ((void *)0);

        for (a = s->outs; a != ((void *)0); a = a->outchain)
                cleartraverse(nfa, a->to);
}





static void
specialcolors(nfa)
struct nfa *nfa;
{

        if (nfa->parent == ((void *)0)) {
                nfa->bos[0] = pseudocolor(nfa->cm);
                nfa->bos[1] = pseudocolor(nfa->cm);
                nfa->eos[0] = pseudocolor(nfa->cm);
                nfa->eos[1] = pseudocolor(nfa->cm);
        } else {
                ((void)0);
                nfa->bos[0] = nfa->parent->bos[0];
                ((void)0);
                nfa->bos[1] = nfa->parent->bos[1];
                ((void)0);
                nfa->eos[0] = nfa->parent->eos[0];
                ((void)0);
                nfa->eos[1] = nfa->parent->eos[1];
        }
}





static long
optimize(nfa, f)
struct nfa *nfa;
FILE *f;
{
        int verbose = (f != ((void *)0)) ? 1 : 0;

        if (verbose)
                fprintf(f, "\ninitial cleanup:\n");
        cleanup(nfa);
        if (verbose)
                dumpnfa(nfa, f);
        if (verbose)
                fprintf(f, "\nempties:\n");
        fixempties(nfa, f);
        if (verbose)
                fprintf(f, "\nconstraints:\n");
        pullback(nfa, f);
        pushfwd(nfa, f);
        if (verbose)
                fprintf(f, "\nfinal cleanup:\n");
        cleanup(nfa);
        return analyze(nfa);
}





static void
pullback(nfa, f)
struct nfa *nfa;
FILE *f;
{
        struct state *s;
        struct state *nexts;
        struct arc *a;
        struct arc *nexta;
        int progress;


        do {
                progress = 0;
                for (s = nfa->states; s != ((void *)0) && !((nfa->v)->err != 0); s = nexts) {
                        nexts = s->next;
                        for (a = s->outs; a != ((void *)0) && !((nfa->v)->err != 0); a = nexta) {
                                nexta = a->outchain;
                                if (a->type == '^' || a->type == 'r')
                                        if (pull(nfa, a))
                                                progress = 1;
                                ((void)0);
                        }
                }
                if (progress && f != ((void *)0))
                        dumpnfa(nfa, f);
        } while (progress && !((nfa->v)->err != 0));
        if (((nfa->v)->err != 0))
                return;

        for (a = nfa->pre->outs; a != ((void *)0); a = nexta) {
                nexta = a->outchain;
                if (a->type == '^') {
                        ((void)0);
                        newarc(nfa, 'p', nfa->bos[a->co], a->from, a->to);
                        freearc(nfa, a);
                }
        }
}
# 784 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c"
static int
pull(nfa, con)
struct nfa *nfa;
struct arc *con;
{
        struct state *from = con->from;
        struct state *to = con->to;
        struct arc *a;
        struct arc *nexta;
        struct state *s;

        if (from == to) {
                freearc(nfa, con);
                return 1;
        }
        if (from->flag)
                return 0;
        if (from->nins == 0) {
                freearc(nfa, con);
                return 1;
        }


        if (from->nouts > 1) {
                s = newstate(nfa);
                if (((nfa->v)->err != 0))
                        return 0;
                ((void)0);
                copyins(nfa, from, s);
                cparc(nfa, con, s, to);
                freearc(nfa, con);
                from = s;
                con = from->outs;
        }
        ((void)0);


        for (a = from->ins; a != ((void *)0); a = nexta) {
                nexta = a->inchain;
                switch (combine(con, a)) {
                case 1:
                        freearc(nfa, a);
                        break;
                case 2:
                        break;
                case 3:
                        s = newstate(nfa);
                        if (((nfa->v)->err != 0))
                                return 0;
                        cparc(nfa, a, s, to);
                        cparc(nfa, con, a->from, s);
                        if (((nfa->v)->err != 0))
                                return 0;
                        freearc(nfa, a);
                        break;
                default:
                        ((void)0);
                        break;
                }
        }


        moveins(nfa, from, to);
        dropstate(nfa, from);
        return 1;
}





static void
pushfwd(nfa, f)
struct nfa *nfa;
FILE *f;
{
        struct state *s;
        struct state *nexts;
        struct arc *a;
        struct arc *nexta;
        int progress;


        do {
                progress = 0;
                for (s = nfa->states; s != ((void *)0) && !((nfa->v)->err != 0); s = nexts) {
                        nexts = s->next;
                        for (a = s->ins; a != ((void *)0) && !((nfa->v)->err != 0); a = nexta) {
                                nexta = a->inchain;
                                if (a->type == '$' || a->type == 'a')
                                        if (push(nfa, a))
                                                progress = 1;
                                ((void)0);
                        }
                }
                if (progress && f != ((void *)0))
                        dumpnfa(nfa, f);
        } while (progress && !((nfa->v)->err != 0));
        if (((nfa->v)->err != 0))
                return;

        for (a = nfa->post->ins; a != ((void *)0); a = nexta) {
                nexta = a->inchain;
                if (a->type == '$') {
                        ((void)0);
                        newarc(nfa, 'p', nfa->eos[a->co], a->from, a->to);
                        freearc(nfa, a);
                }
        }
}
# 902 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c"
static int
push(nfa, con)
struct nfa *nfa;
struct arc *con;
{
        struct state *from = con->from;
        struct state *to = con->to;
        struct arc *a;
        struct arc *nexta;
        struct state *s;

        if (to == from) {
                freearc(nfa, con);
                return 1;
        }
        if (to->flag)
                return 0;
        if (to->nouts == 0) {
                freearc(nfa, con);
                return 1;
        }


        if (to->nins > 1) {
                s = newstate(nfa);
                if (((nfa->v)->err != 0))
                        return 0;
                copyouts(nfa, to, s);
                cparc(nfa, con, from, s);
                freearc(nfa, con);
                to = s;
                con = to->ins;
        }
        ((void)0);


        for (a = to->outs; a != ((void *)0); a = nexta) {
                nexta = a->outchain;
                switch (combine(con, a)) {
                case 1:
                        freearc(nfa, a);
                        break;
                case 2:
                        break;
                case 3:
                        s = newstate(nfa);
                        if (((nfa->v)->err != 0))
                                return 0;
                        cparc(nfa, con, s, a->to);
                        cparc(nfa, a, from, s);
                        if (((nfa->v)->err != 0))
                                return 0;
                        freearc(nfa, a);
                        break;
                default:
                        ((void)0);
                        break;
                }
        }


        moveouts(nfa, to, from);
        dropstate(nfa, to);
        return 1;
}
# 975 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c"
static int
combine(con, a)
struct arc *con;
struct arc *a;
{


        switch ((((con->type)<<8) | (a->type))) {
        case ((('^')<<8) | ('p')):
        case ((('$')<<8) | ('p')):
                return 1;
                break;
        case ((('a')<<8) | ('p')):
        case ((('r')<<8) | ('p')):
                if (con->co == a->co)
                        return 2;
                return 1;
                break;
        case ((('^')<<8) | ('^')):
        case ((('$')<<8) | ('$')):
        case ((('a')<<8) | ('a')):
        case ((('r')<<8) | ('r')):
                if (con->co == a->co)
                        return 2;
                return 1;
                break;
        case ((('^')<<8) | ('r')):
        case ((('r')<<8) | ('^')):
        case ((('$')<<8) | ('a')):
        case ((('a')<<8) | ('$')):
                return 1;
                break;
        case ((('^')<<8) | ('$')):
        case ((('^')<<8) | ('a')):
        case ((('r')<<8) | ('$')):
        case ((('r')<<8) | ('a')):
        case ((('$')<<8) | ('^')):
        case ((('$')<<8) | ('r')):
        case ((('a')<<8) | ('^')):
        case ((('a')<<8) | ('r')):
        case ((('^')<<8) | ('L')):
        case ((('r')<<8) | ('L')):
        case ((('$')<<8) | ('L')):
        case ((('a')<<8) | ('L')):
                return 3;
                break;
        }
        ((void)0);
        return 1;
}





static void
fixempties(nfa, f)
struct nfa *nfa;
FILE *f;
{
        struct state *s;
        struct state *nexts;
        struct arc *a;
        struct arc *nexta;
        int progress;


        do {
                progress = 0;
                for (s = nfa->states; s != ((void *)0) && !((nfa->v)->err != 0); s = nexts) {
                        nexts = s->next;
                        for (a = s->outs; a != ((void *)0) && !((nfa->v)->err != 0); a = nexta) {
                                nexta = a->outchain;
                                if (a->type == 'n' && unempty(nfa, a))
                                        progress = 1;
                                ((void)0);
                        }
                }
                if (progress && f != ((void *)0))
                        dumpnfa(nfa, f);
        } while (progress && !((nfa->v)->err != 0));
}







static int
unempty(nfa, a)
struct nfa *nfa;
struct arc *a;
{
        struct state *from = a->from;
        struct state *to = a->to;
        int usefrom;

        ((void)0);
        ((void)0);

        if (from == to) {
                freearc(nfa, a);
                return 1;
        }


        usefrom = 1;
        if (from->nouts > to->nins)
                usefrom = 0;
        else if (from->nouts == to->nins) {

                if (from->nins > to->nouts)
                        usefrom = 0;
        }

        freearc(nfa, a);
        if (usefrom) {
                if (from->nouts == 0) {

                        moveins(nfa, from, to);
                        freestate(nfa, from);
                } else
                        copyins(nfa, from, to);
        } else {
                if (to->nins == 0) {

                        moveouts(nfa, to, from);
                        freestate(nfa, to);
                } else
                        copyouts(nfa, to, from);
        }

        return 1;
}





static void
cleanup(nfa)
struct nfa *nfa;
{
        struct state *s;
        struct state *nexts;
        int n;



        markreachable(nfa, nfa->pre, (struct state *)((void *)0), nfa->pre);
        markcanreach(nfa, nfa->post, nfa->pre, nfa->post);
        for (s = nfa->states; s != ((void *)0); s = nexts) {
                nexts = s->next;
                if (s->tmp != nfa->post && !s->flag)
                        dropstate(nfa, s);
        }
        ((void)0);
        cleartraverse(nfa, nfa->pre);
        ((void)0);



        n = 0;
        for (s = nfa->states; s != ((void *)0); s = s->next)
                s->no = n++;
        nfa->nstates = n;
}






static void
markreachable(nfa, s, okay, mark)
struct nfa *nfa;
struct state *s;
struct state *okay;
struct state *mark;
{
        struct arc *a;

        if (s->tmp != okay)
                return;
        s->tmp = mark;

        for (a = s->outs; a != ((void *)0); a = a->outchain)
                markreachable(nfa, a->to, okay, mark);
}






static void
markcanreach(nfa, s, okay, mark)
struct nfa *nfa;
struct state *s;
struct state *okay;
struct state *mark;
{
        struct arc *a;

        if (s->tmp != okay)
                return;
        s->tmp = mark;

        for (a = s->ins; a != ((void *)0); a = a->inchain)
                markcanreach(nfa, a->from, okay, mark);
}





static long
analyze(nfa)
struct nfa *nfa;
{
        struct arc *a;
        struct arc *aa;

        if (nfa->pre->outs == ((void *)0))
                return 010000;
        for (a = nfa->pre->outs; a != ((void *)0); a = a->outchain)
                for (aa = a->to->outs; aa != ((void *)0); aa = aa->outchain)
                        if (aa->to == nfa->post)
                                return 004000;
        return 0;
}





static void
compact(nfa, cnfa)
struct nfa *nfa;
struct cnfa *cnfa;
{
        struct state *s;
        struct arc *a;
        size_t nstates;
        size_t narcs;
        struct carc *ca;
        struct carc *first;

        ((void)0);

        nstates = 0;
        narcs = 0;
        for (s = nfa->states; s != ((void *)0); s = s->next) {
                nstates++;
                narcs += 1 + s->nouts + 1;

        }

        cnfa->states = (struct carc **)Tcl_Alloc(nstates * sizeof(struct carc *));
        cnfa->arcs = (struct carc *)Tcl_Alloc(narcs * sizeof(struct carc));
        if (cnfa->states == ((void *)0) || cnfa->arcs == ((void *)0)) {
                if (cnfa->states != ((void *)0))
                        Tcl_Free(((void *)(cnfa->states)));
                if (cnfa->arcs != ((void *)0))
                        Tcl_Free(((void *)(cnfa->arcs)));
                ((nfa->v)->nexttype = 'e', ((nfa->v)->err) ? (nfa->v)->err : ((nfa->v)->err = ((12))));
                return;
        }
        cnfa->nstates = nstates;
        cnfa->pre = nfa->pre->no;
        cnfa->post = nfa->post->no;
        cnfa->bos[0] = nfa->bos[0];
        cnfa->bos[1] = nfa->bos[1];
        cnfa->eos[0] = nfa->eos[0];
        cnfa->eos[1] = nfa->eos[1];
        cnfa->ncolors = maxcolor(nfa->cm) + 1;
        cnfa->flags = 0;

        ca = cnfa->arcs;
        for (s = nfa->states; s != ((void *)0); s = s->next) {
                ((void)0);
                cnfa->states[s->no] = ca;
                ca->co = 0;
                ca++;
                first = ca;
                for (a = s->outs; a != ((void *)0); a = a->outchain)
                        switch (a->type) {
                        case 'p':
                                ca->co = a->co;
                                ca->to = a->to->no;
                                ca++;
                                break;
                        case 'L':
                                ((void)0);
                                ca->co = (color)(cnfa->ncolors + a->co);
                                ca->to = a->to->no;
                                ca++;
                                cnfa->flags |= 01;
                                break;
                        default:
                                ((void)0);
                                break;
                        }
                carcsort(first, ca-1);
                ca->co = (-1);
                ca->to = 0;
                ca++;
        }
        ((void)0);
        ((void)0);


        for (a = nfa->pre->outs; a != ((void *)0); a = a->outchain)
                cnfa->states[a->to->no]->co = 1;
        cnfa->states[nfa->pre->no]->co = 1;
}







static void
carcsort(first, last)
struct carc *first;
struct carc *last;
{
        struct carc *p;
        struct carc *q;
        struct carc tmp;

        if (last - first <= 1)
                return;

        for (p = first; p <= last; p++)
                for (q = p; q <= last; q++)
                        if (p->co > q->co ||
                                        (p->co == q->co && p->to > q->to)) {
                                ((void)0);
                                tmp = *p;
                                *p = *q;
                                *q = tmp;
                        }
}





static void
freecnfa(cnfa)
struct cnfa *cnfa;
{
        ((void)0);
        cnfa->nstates = 0;
        Tcl_Free(((void *)(cnfa->states)));
        Tcl_Free(((void *)(cnfa->arcs)));
}





static void
dumpnfa(nfa, f)
struct nfa *nfa;
FILE *f;
{
# 1364 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c"
}
# 1508 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c"
static void
dumpcnfa(cnfa, f)
struct cnfa *cnfa;
FILE *f;
{
# 1532 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c"
}
# 2174 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c" 2
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_cvec.c" 1
# 37 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_cvec.c"
static struct cvec *
newcvec(nchrs, nranges, nmcces)
int nchrs;
int nranges;
int nmcces;
{
        size_t n;
        size_t nc;
        struct cvec *cv;

        nc = (size_t)nchrs + (size_t)nmcces*(2 +1) + (size_t)nranges*2;
        n = sizeof(struct cvec) + (size_t)(nmcces-1)*sizeof(chr *) +
                                                                nc*sizeof(chr);
        cv = (struct cvec *)Tcl_Alloc(n);
        if (cv == ((void *)0))
                return ((void *)0);
        cv->chrspace = nc;
        cv->chrs = (chr *)&cv->mcces[nmcces];
        cv->mccespace = nmcces;
        cv->ranges = cv->chrs + nchrs + nmcces*(2 +1);
        cv->rangespace = nranges;
        return clearcvec(cv);
}






static struct cvec *
clearcvec(cv)
struct cvec *cv;
{
        int i;

        ((void)0);
        cv->nchrs = 0;
        ((void)0);
        cv->nmcces = 0;
        cv->nmccechrs = 0;
        cv->nranges = 0;
        for (i = 0; i < cv->mccespace; i++)
                cv->mcces[i] = ((void *)0);

        return cv;
}





static void
addchr(cv, c)
struct cvec *cv;
pchr c;
{
        ((void)0);
        cv->chrs[cv->nchrs++] = (chr)c;
}





static void
addrange(cv, from, to)
struct cvec *cv;
pchr from;
pchr to;
{
        ((void)0);
        cv->ranges[cv->nranges*2] = (chr)from;
        cv->ranges[cv->nranges*2 + 1] = (chr)to;
        cv->nranges++;
}





static void
addmcce(cv, startp, endp)
struct cvec *cv;
chr *startp;
chr *endp;
{
        int len;
        int i;
        chr *s;
        chr *d;

        if (startp == ((void *)0) && endp == ((void *)0))
                return;
        len = endp - startp;
        ((void)0);
        ((void)0);
        ((void)0);
        d = &cv->chrs[cv->chrspace - cv->nmccechrs - len - 1];
        cv->mcces[cv->nmcces++] = d;
        for (s = startp, i = len; i > 0; s++, i--)
                *d++ = *s;
        *d++ = 0;
        ((void)0);
        cv->nmccechrs += len + 1;
}





static int
haschr(cv, c)
struct cvec *cv;
pchr c;
{
        int i;
        chr *p;

        for (p = cv->chrs, i = cv->nchrs; i > 0; p++, i--)
                if (*p == c)
                        return 1;
        for (p = cv->ranges, i = cv->nranges; i > 0; p += 2, i--)
                if (*p <= c && c <= *(p+1))
                        return 1;
        return 0;
}





static struct cvec *
getcvec(v, nchrs, nranges, nmcces)
struct vars *v;
int nchrs;
int nranges;
int nmcces;
{
        if (v->cv != ((void *)0) && nchrs <= v->cv->chrspace &&
                                        nranges <= v->cv->rangespace &&
                                        nmcces <= v->cv->mccespace)
                return clearcvec(v->cv);

        if (v->cv != ((void *)0))
                freecvec(v->cv);
        v->cv = newcvec(nchrs, nranges, nmcces);
        if (v->cv == ((void *)0))
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (12)));

        return v->cv;
}





static void
freecvec(cv)
struct cvec *cv;
{
        Tcl_Free(((void *)(cv)));
}
# 2175 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c" 2
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_locale.c" 1
# 17 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_locale.c"
static struct cname {
        char *name;
        char code;
} cnames[] = {
        {"NUL", '\0'},
        {"SOH", '\001'},
        {"STX", '\002'},
        {"ETX", '\003'},
        {"EOT", '\004'},
        {"ENQ", '\005'},
        {"ACK", '\006'},
        {"BEL", '\007'},
        {"alert", '\007'},
        {"BS", '\010'},
        {"backspace", '\b'},
        {"HT", '\011'},
        {"tab", '\t'},
        {"LF", '\012'},
        {"newline", '\n'},
        {"VT", '\013'},
        {"vertical-tab", '\v'},
        {"FF", '\014'},
        {"form-feed", '\f'},
        {"CR", '\015'},
        {"carriage-return", '\r'},
        {"SO", '\016'},
        {"SI", '\017'},
        {"DLE", '\020'},
        {"DC1", '\021'},
        {"DC2", '\022'},
        {"DC3", '\023'},
        {"DC4", '\024'},
        {"NAK", '\025'},
        {"SYN", '\026'},
        {"ETB", '\027'},
        {"CAN", '\030'},
        {"EM", '\031'},
        {"SUB", '\032'},
        {"ESC", '\033'},
        {"IS4", '\034'},
        {"FS", '\034'},
        {"IS3", '\035'},
        {"GS", '\035'},
        {"IS2", '\036'},
        {"RS", '\036'},
        {"IS1", '\037'},
        {"US", '\037'},
        {"space", ' '},
        {"exclamation-mark", '!'},
        {"quotation-mark", '"'},
        {"number-sign", '#'},
        {"dollar-sign", '$'},
        {"percent-sign", '%'},
        {"ampersand", '&'},
        {"apostrophe", '\''},
        {"left-parenthesis", '('},
        {"right-parenthesis", ')'},
        {"asterisk", '*'},
        {"plus-sign", '+'},
        {"comma", ','},
        {"hyphen", '-'},
        {"hyphen-minus", '-'},
        {"period", '.'},
        {"full-stop", '.'},
        {"slash", '/'},
        {"solidus", '/'},
        {"zero", '0'},
        {"one", '1'},
        {"two", '2'},
        {"three", '3'},
        {"four", '4'},
        {"five", '5'},
        {"six", '6'},
        {"seven", '7'},
        {"eight", '8'},
        {"nine", '9'},
        {"colon", ':'},
        {"semicolon", ';'},
        {"less-than-sign", '<'},
        {"equals-sign", '='},
        {"greater-than-sign", '>'},
        {"question-mark", '?'},
        {"commercial-at", '@'},
        {"left-square-bracket", '['},
        {"backslash", '\\'},
        {"reverse-solidus", '\\'},
        {"right-square-bracket", ']'},
        {"circumflex", '^'},
        {"circumflex-accent", '^'},
        {"underscore", '_'},
        {"low-line", '_'},
        {"grave-accent", '`'},
        {"left-brace", '{'},
        {"left-curly-bracket", '{'},
        {"vertical-line", '|'},
        {"right-brace", '}'},
        {"right-curly-bracket", '}'},
        {"tilde", '~'},
        {"DEL", '\177'},
        {((void *)0), 0}
};



typedef struct crange {
    chr start;
    chr end;
} crange;



static crange alphaRangeTable[] = {
    {0x0041, 0x005a}, {0x0061, 0x007a}, {0x00c0, 0x00d6}, {0x00d8, 0x00f6},
    {0x00f8, 0x01f5}, {0x01fa, 0x0217}, {0x0250, 0x02a8}, {0x02b0, 0x02b8},
    {0x02bb, 0x02c1}, {0x02e0, 0x02e4}, {0x0388, 0x038a}, {0x038e, 0x03a1},
    {0x03a3, 0x03ce}, {0x03d0, 0x03d6}, {0x03e2, 0x03f3}, {0x0401, 0x040c},
    {0x040e, 0x044f}, {0x0451, 0x045c}, {0x045e, 0x0481}, {0x0490, 0x04c4},
    {0x04d0, 0x04eb}, {0x04ee, 0x04f5}, {0x0531, 0x0556}, {0x0561, 0x0587},
    {0x05d0, 0x05ea}, {0x05f0, 0x05f2}, {0x0621, 0x063a}, {0x0640, 0x064a},
    {0x0671, 0x06b7}, {0x06ba, 0x06be}, {0x06c0, 0x06ce}, {0x06d0, 0x06d3},
    {0x0905, 0x0939}, {0x0958, 0x0961}, {0x0985, 0x098c}, {0x0993, 0x09a8},
    {0x09aa, 0x09b0}, {0x09b6, 0x09b9}, {0x09df, 0x09e1}, {0x0a05, 0x0a0a},
    {0x0a13, 0x0a28}, {0x0a2a, 0x0a30}, {0x0a59, 0x0a5c}, {0x0a72, 0x0a74},
    {0x0a85, 0x0a8b}, {0x0a8f, 0x0a91}, {0x0a93, 0x0aa8}, {0x0aaa, 0x0ab0},
    {0x0ab5, 0x0ab9}, {0x0b05, 0x0b0c}, {0x0b13, 0x0b28}, {0x0b2a, 0x0b30},
    {0x0b36, 0x0b39}, {0x0b5f, 0x0b61}, {0x0b85, 0x0b8a}, {0x0b8e, 0x0b90},
    {0x0b92, 0x0b95}, {0x0ba8, 0x0baa}, {0x0bae, 0x0bb5}, {0x0bb7, 0x0bb9},
    {0x0c05, 0x0c0c}, {0x0c0e, 0x0c10}, {0x0c12, 0x0c28}, {0x0c2a, 0x0c33},
    {0x0c35, 0x0c39}, {0x0c85, 0x0c8c}, {0x0c8e, 0x0c90}, {0x0c92, 0x0ca8},
    {0x0caa, 0x0cb3}, {0x0cb5, 0x0cb9}, {0x0d05, 0x0d0c}, {0x0d0e, 0x0d10},
    {0x0d12, 0x0d28}, {0x0d2a, 0x0d39}, {0x0e01, 0x0e30}, {0x0e40, 0x0e46},
    {0x0e94, 0x0e97}, {0x0e99, 0x0e9f}, {0x0ea1, 0x0ea3}, {0x0ead, 0x0eb0},
    {0x0ec0, 0x0ec4}, {0x0f40, 0x0f47}, {0x0f49, 0x0f69}, {0x0f88, 0x0f8b},
    {0x10a0, 0x10c5}, {0x10d0, 0x10f6}, {0x1100, 0x1159}, {0x115f, 0x11a2},
    {0x11a8, 0x11f9}, {0x1e00, 0x1e9b}, {0x1ea0, 0x1ef9}, {0x1f00, 0x1f15},
    {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57},
    {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc}, {0x1fc2, 0x1fc4},
    {0x1fc6, 0x1fcc}, {0x1fd0, 0x1fd3}, {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec},
    {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc}, {0x210a, 0x2113}, {0x2118, 0x211d},
    {0x212a, 0x2131}, {0x2133, 0x2138}, {0x3031, 0x3035}, {0x3041, 0x3094},
    {0x30a1, 0x30fa}, {0x30fc, 0x30fe}, {0x3105, 0x312c}, {0x3131, 0x318e},
    {0x4e00, 0x9fa5}, {0xac00, 0xd7a3}, {0xf900, 0xfa2d}, {0xfb00, 0xfb06},
    {0xfb13, 0xfb17}, {0xfb1f, 0xfb28}, {0xfb2a, 0xfb36}, {0xfb38, 0xfb3c},
    {0xfb46, 0xfbb1}, {0xfbd3, 0xfd3d}, {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7},
    {0xfdf0, 0xfdfb}, {0xfe70, 0xfe72}, {0xfe76, 0xfefc}, {0xff21, 0xff3a},
    {0xff41, 0xff5a}, {0xff66, 0xffbe}, {0xffc2, 0xffc7}, {0xffca, 0xffcf},
    {0xffd2, 0xffd7}, {0xffda, 0xffdc}
};



static chr alphaCharTable[] = {
    0x00aa, 0x00b5, 0x00ba, 0x02d0, 0x02d1, 0x037a, 0x0386, 0x038c, 0x03da,
    0x03dc, 0x03de, 0x03e0, 0x04c7, 0x04c8, 0x04cb, 0x04cc, 0x04f8, 0x04f9,
    0x0559, 0x06d5, 0x06e5, 0x06e6, 0x093d, 0x0950, 0x098f, 0x0990, 0x09b2,
    0x09dc, 0x09dd, 0x09f0, 0x09f1, 0x0a0f, 0x0a10, 0x0a32, 0x0a33, 0x0a35,
    0x0a36, 0x0a38, 0x0a39, 0x0a5e, 0x0a8d, 0x0ab2, 0x0ab3, 0x0abd, 0x0ad0,
    0x0ae0, 0x0b0f, 0x0b10, 0x0b32, 0x0b33, 0x0b3d, 0x0b5c, 0x0b5d, 0x0b99,
    0x0b9a, 0x0b9c, 0x0b9e, 0x0b9f, 0x0ba3, 0x0ba4, 0x0c60, 0x0c61, 0x0cde,
    0x0ce0, 0x0ce1, 0x0d60, 0x0d61, 0x0e32, 0x0e33, 0x0e81, 0x0e82, 0x0e84,
    0x0e87, 0x0e88, 0x0e8a, 0x0e8d, 0x0ea5, 0x0ea7, 0x0eaa, 0x0eab, 0x0eb2,
    0x0eb3, 0x0ebd, 0x0ec6, 0x0edc, 0x0edd, 0x0f00, 0x1f59, 0x1f5b, 0x1f5d,
    0x1fbe, 0x207f, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x3005,
    0x3006, 0x309d, 0x309e, 0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44, 0xfe74
};





static crange digitRangeTable[] = {
    {0x0030, 0x0039}, {0x0660, 0x0669}, {0x06f0, 0x06f9}, {0x0966, 0x096f},
    {0x09e6, 0x09ef}, {0x0a66, 0x0a6f}, {0x0ae6, 0x0aef}, {0x0b66, 0x0b6f},
    {0x0be7, 0x0bef}, {0x0c66, 0x0c6f}, {0x0ce6, 0x0cef}, {0x0d66, 0x0d6f},
    {0x0e50, 0x0e59}, {0x0ed0, 0x0ed9}, {0x0f20, 0x0f29}, {0xff10, 0xff19}
};





static crange punctRangeTable[] = {
    {0x0021, 0x0023}, {0x0025, 0x002a}, {0x002c, 0x002f}, {0x005b, 0x005d},
    {0x055a, 0x055f}, {0x066a, 0x066d}, {0x0f04, 0x0f12}, {0x0f3a, 0x0f3d},
    {0x2010, 0x2027}, {0x2030, 0x2043}, {0x3001, 0x3003}, {0x3008, 0x3011},
    {0x3014, 0x301f}, {0xfe30, 0xfe44}, {0xfe49, 0xfe52}, {0xfe54, 0xfe61},
    {0xff01, 0xff03}, {0xff05, 0xff0a}, {0xff0c, 0xff0f}, {0xff3b, 0xff3d},
    {0xff61, 0xff65}
};



static chr punctCharTable[] = {
    0x003a, 0x003b, 0x003f, 0x0040, 0x005f, 0x007b, 0x007d, 0x00a1, 0x00ab,
    0x00ad, 0x00b7, 0x00bb, 0x00bf, 0x037e, 0x0387, 0x0589, 0x05be, 0x05c0,
    0x05c3, 0x05f3, 0x05f4, 0x060c, 0x061b, 0x061f, 0x06d4, 0x0964, 0x0965,
    0x0970, 0x0e5a, 0x0e5b, 0x0f85, 0x10fb, 0x2045, 0x2046, 0x207d, 0x207e,
    0x208d, 0x208e, 0x2329, 0x232a, 0x3030, 0x30fb, 0xfd3e, 0xfd3f, 0xfe63,
    0xfe68, 0xfe6a, 0xfe6b, 0xff1a, 0xff1b, 0xff1f, 0xff20, 0xff3f, 0xff5b,
    0xff5d
};





static crange spaceRangeTable[] = {
    {0x0009, 0x000d}, {0x2000, 0x200b},
};



static chr spaceCharTable[] = {
    0x0020, 0x00a0, 0x2028, 0x2029, 0x3000
};





static crange lowerRangeTable[] = {
    {0x0061, 0x007a}, {0x00df, 0x00f6}, {0x00f8, 0x00ff}, {0x017e, 0x0180},
    {0x0199, 0x019b}, {0x0250, 0x02a8}, {0x03ac, 0x03ce}, {0x03ef, 0x03f2},
    {0x0430, 0x044f}, {0x0451, 0x045c}, {0x0561, 0x0587}, {0x10d0, 0x10f6},
    {0x1e95, 0x1e9b}, {0x1f00, 0x1f07}, {0x1f10, 0x1f15}, {0x1f20, 0x1f27},
    {0x1f30, 0x1f37}, {0x1f40, 0x1f45}, {0x1f50, 0x1f57}, {0x1f60, 0x1f67},
    {0x1f70, 0x1f7d}, {0x1f80, 0x1f87}, {0x1f90, 0x1f97}, {0x1fa0, 0x1fa7},
    {0x1fb0, 0x1fb4}, {0x1fc2, 0x1fc4}, {0x1fd0, 0x1fd3}, {0x1fe0, 0x1fe7},
    {0x1ff2, 0x1ff4}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, {0xff41, 0xff5a}
};



static chr lowerCharTable[] = {
    0x00aa, 0x00b5, 0x00ba, 0x0101, 0x0103, 0x0105, 0x0107, 0x0109, 0x010b,
    0x010d, 0x010f, 0x0111, 0x0113, 0x0115, 0x0117, 0x0119, 0x011b, 0x011d,
    0x011f, 0x0121, 0x0123, 0x0125, 0x0127, 0x0129, 0x012b, 0x012d, 0x012f,
    0x0131, 0x0133, 0x0135, 0x0137, 0x0138, 0x013a, 0x013c, 0x013e, 0x0140,
    0x0142, 0x0144, 0x0146, 0x0148, 0x0149, 0x014b, 0x014d, 0x014f, 0x0151,
    0x0153, 0x0155, 0x0157, 0x0159, 0x015b, 0x015d, 0x015f, 0x0161, 0x0163,
    0x0165, 0x0167, 0x0169, 0x016b, 0x016d, 0x016f, 0x0171, 0x0173, 0x0175,
    0x0177, 0x017a, 0x017c, 0x0183, 0x0185, 0x0188, 0x018c, 0x018d, 0x0192,
    0x0195, 0x019e, 0x01a1, 0x01a3, 0x01a5, 0x01a8, 0x01ab, 0x01ad, 0x01b0,
    0x01b4, 0x01b6, 0x01b9, 0x01ba, 0x01bd, 0x01c6, 0x01c9, 0x01cc, 0x01ce,
    0x01d0, 0x01d2, 0x01d4, 0x01d6, 0x01d8, 0x01da, 0x01dc, 0x01dd, 0x01df,
    0x01e1, 0x01e3, 0x01e5, 0x01e7, 0x01e9, 0x01eb, 0x01ed, 0x01ef, 0x01f0,
    0x01f3, 0x01f5, 0x01fb, 0x01fd, 0x01ff, 0x0201, 0x0203, 0x0205, 0x0207,
    0x0209, 0x020b, 0x020d, 0x020f, 0x0211, 0x0213, 0x0215, 0x0217, 0x0390,
    0x03d0, 0x03d1, 0x03d5, 0x03d6, 0x03e3, 0x03e5, 0x03e7, 0x03e9, 0x03eb,
    0x03ed, 0x045e, 0x045f, 0x0461, 0x0463, 0x0465, 0x0467, 0x0469, 0x046b,
    0x046d, 0x046f, 0x0471, 0x0473, 0x0475, 0x0477, 0x0479, 0x047b, 0x047d,
    0x047f, 0x0481, 0x0491, 0x0493, 0x0495, 0x0497, 0x0499, 0x049b, 0x049d,
    0x049f, 0x04a1, 0x04a3, 0x04a5, 0x04a7, 0x04a9, 0x04ab, 0x04ad, 0x04af,
    0x04b1, 0x04b3, 0x04b5, 0x04b7, 0x04b9, 0x04bb, 0x04bd, 0x04bf, 0x04c2,
    0x04c4, 0x04c8, 0x04cc, 0x04d1, 0x04d3, 0x04d5, 0x04d7, 0x04d9, 0x04db,
    0x04dd, 0x04df, 0x04e1, 0x04e3, 0x04e5, 0x04e7, 0x04e9, 0x04eb, 0x04ef,
    0x04f1, 0x04f3, 0x04f5, 0x04f9, 0x1e01, 0x1e03, 0x1e05, 0x1e07, 0x1e09,
    0x1e0b, 0x1e0d, 0x1e0f, 0x1e11, 0x1e13, 0x1e15, 0x1e17, 0x1e19, 0x1e1b,
    0x1e1d, 0x1e1f, 0x1e21, 0x1e23, 0x1e25, 0x1e27, 0x1e29, 0x1e2b, 0x1e2d,
    0x1e2f, 0x1e31, 0x1e33, 0x1e35, 0x1e37, 0x1e39, 0x1e3b, 0x1e3d, 0x1e3f,
    0x1e41, 0x1e43, 0x1e45, 0x1e47, 0x1e49, 0x1e4b, 0x1e4d, 0x1e4f, 0x1e51,
    0x1e53, 0x1e55, 0x1e57, 0x1e59, 0x1e5b, 0x1e5d, 0x1e5f, 0x1e61, 0x1e63,
    0x1e65, 0x1e67, 0x1e69, 0x1e6b, 0x1e6d, 0x1e6f, 0x1e71, 0x1e73, 0x1e75,
    0x1e77, 0x1e79, 0x1e7b, 0x1e7d, 0x1e7f, 0x1e81, 0x1e83, 0x1e85, 0x1e87,
    0x1e89, 0x1e8b, 0x1e8d, 0x1e8f, 0x1e91, 0x1e93, 0x1ea1, 0x1ea3, 0x1ea5,
    0x1ea7, 0x1ea9, 0x1eab, 0x1ead, 0x1eaf, 0x1eb1, 0x1eb3, 0x1eb5, 0x1eb7,
    0x1eb9, 0x1ebb, 0x1ebd, 0x1ebf, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ec7, 0x1ec9,
    0x1ecb, 0x1ecd, 0x1ecf, 0x1ed1, 0x1ed3, 0x1ed5, 0x1ed7, 0x1ed9, 0x1edb,
    0x1edd, 0x1edf, 0x1ee1, 0x1ee3, 0x1ee5, 0x1ee7, 0x1ee9, 0x1eeb, 0x1eed,
    0x1eef, 0x1ef1, 0x1ef3, 0x1ef5, 0x1ef7, 0x1ef9, 0x1fb6, 0x1fb7, 0x1fbe,
    0x1fc6, 0x1fc7, 0x1fd6, 0x1fd7, 0x1ff6, 0x1ff7, 0x207f, 0x210a, 0x210e,
    0x210f, 0x2113, 0x2118, 0x212e, 0x212f, 0x2134
};





static crange upperRangeTable[] = {
    {0x0041, 0x005a}, {0x00c0, 0x00d6}, {0x00d8, 0x00de}, {0x0189, 0x018b},
    {0x018e, 0x0191}, {0x0196, 0x0198}, {0x01b1, 0x01b3}, {0x0388, 0x038a},
    {0x0391, 0x03a1}, {0x03a3, 0x03ab}, {0x03d2, 0x03d4}, {0x0401, 0x040c},
    {0x040e, 0x042f}, {0x0531, 0x0556}, {0x10a0, 0x10c5}, {0x1f08, 0x1f0f},
    {0x1f18, 0x1f1d}, {0x1f28, 0x1f2f}, {0x1f38, 0x1f3f}, {0x1f48, 0x1f4d},
    {0x1f68, 0x1f6f}, {0x1f88, 0x1f8f}, {0x1f98, 0x1f9f}, {0x1fa8, 0x1faf},
    {0x1fb8, 0x1fbc}, {0x1fc8, 0x1fcc}, {0x1fd8, 0x1fdb}, {0x1fe8, 0x1fec},
    {0x1ff8, 0x1ffc}, {0x210b, 0x210d}, {0x2110, 0x2112}, {0x2119, 0x211d},
    {0x212a, 0x212d}, {0xff21, 0xff3a}
};



static chr upperCharTable[] = {
    0x0100, 0x0102, 0x0104, 0x0106, 0x0108, 0x010a, 0x010c, 0x010e, 0x0110,
    0x0112, 0x0114, 0x0116, 0x0118, 0x011a, 0x011c, 0x011e, 0x0120, 0x0122,
    0x0124, 0x0126, 0x0128, 0x012a, 0x012c, 0x012e, 0x0130, 0x0132, 0x0134,
    0x0136, 0x0139, 0x013b, 0x013d, 0x013f, 0x0141, 0x0143, 0x0145, 0x0147,
    0x014a, 0x014c, 0x014e, 0x0150, 0x0152, 0x0154, 0x0156, 0x0158, 0x015a,
    0x015c, 0x015e, 0x0160, 0x0162, 0x0164, 0x0166, 0x0168, 0x016a, 0x016c,
    0x016e, 0x0170, 0x0172, 0x0174, 0x0176, 0x0178, 0x0179, 0x017b, 0x017d,
    0x0181, 0x0182, 0x0184, 0x0186, 0x0187, 0x0193, 0x0194, 0x019c, 0x019d,
    0x019f, 0x01a0, 0x01a2, 0x01a4, 0x01a6, 0x01a7, 0x01a9, 0x01ac, 0x01ae,
    0x01af, 0x01b5, 0x01b7, 0x01b8, 0x01bc, 0x01c4, 0x01c7, 0x01ca, 0x01cd,
    0x01cf, 0x01d1, 0x01d3, 0x01d5, 0x01d7, 0x01d9, 0x01db, 0x01de, 0x01e0,
    0x01e2, 0x01e4, 0x01e6, 0x01e8, 0x01ea, 0x01ec, 0x01ee, 0x01f1, 0x01f4,
    0x01fa, 0x01fc, 0x01fe, 0x0200, 0x0202, 0x0204, 0x0206, 0x0208, 0x020a,
    0x020c, 0x020e, 0x0210, 0x0212, 0x0214, 0x0216, 0x0386, 0x038c, 0x038e,
    0x038f, 0x03da, 0x03dc, 0x03de, 0x03e0, 0x03e2, 0x03e4, 0x03e6, 0x03e8,
    0x03ea, 0x03ec, 0x03ee, 0x0460, 0x0462, 0x0464, 0x0466, 0x0468, 0x046a,
    0x046c, 0x046e, 0x0470, 0x0472, 0x0474, 0x0476, 0x0478, 0x047a, 0x047c,
    0x047e, 0x0480, 0x0490, 0x0492, 0x0494, 0x0496, 0x0498, 0x049a, 0x049c,
    0x049e, 0x04a0, 0x04a2, 0x04a4, 0x04a6, 0x04a8, 0x04aa, 0x04ac, 0x04ae,
    0x04b0, 0x04b2, 0x04b4, 0x04b6, 0x04b8, 0x04ba, 0x04bc, 0x04be, 0x04c1,
    0x04c3, 0x04c7, 0x04cb, 0x04d0, 0x04d2, 0x04d4, 0x04d6, 0x04d8, 0x04da,
    0x04dc, 0x04de, 0x04e0, 0x04e2, 0x04e4, 0x04e6, 0x04e8, 0x04ea, 0x04ee,
    0x04f0, 0x04f2, 0x04f4, 0x04f8, 0x1e00, 0x1e02, 0x1e04, 0x1e06, 0x1e08,
    0x1e0a, 0x1e0c, 0x1e0e, 0x1e10, 0x1e12, 0x1e14, 0x1e16, 0x1e18, 0x1e1a,
    0x1e1c, 0x1e1e, 0x1e20, 0x1e22, 0x1e24, 0x1e26, 0x1e28, 0x1e2a, 0x1e2c,
    0x1e2e, 0x1e30, 0x1e32, 0x1e34, 0x1e36, 0x1e38, 0x1e3a, 0x1e3c, 0x1e3e,
    0x1e40, 0x1e42, 0x1e44, 0x1e46, 0x1e48, 0x1e4a, 0x1e4c, 0x1e4e, 0x1e50,
    0x1e52, 0x1e54, 0x1e56, 0x1e58, 0x1e5a, 0x1e5c, 0x1e5e, 0x1e60, 0x1e62,
    0x1e64, 0x1e66, 0x1e68, 0x1e6a, 0x1e6c, 0x1e6e, 0x1e70, 0x1e72, 0x1e74,
    0x1e76, 0x1e78, 0x1e7a, 0x1e7c, 0x1e7e, 0x1e80, 0x1e82, 0x1e84, 0x1e86,
    0x1e88, 0x1e8a, 0x1e8c, 0x1e8e, 0x1e90, 0x1e92, 0x1e94, 0x1ea0, 0x1ea2,
    0x1ea4, 0x1ea6, 0x1ea8, 0x1eaa, 0x1eac, 0x1eae, 0x1eb0, 0x1eb2, 0x1eb4,
    0x1eb6, 0x1eb8, 0x1eba, 0x1ebc, 0x1ebe, 0x1ec0, 0x1ec2, 0x1ec4, 0x1ec6,
    0x1ec8, 0x1eca, 0x1ecc, 0x1ece, 0x1ed0, 0x1ed2, 0x1ed4, 0x1ed6, 0x1ed8,
    0x1eda, 0x1edc, 0x1ede, 0x1ee0, 0x1ee2, 0x1ee4, 0x1ee6, 0x1ee8, 0x1eea,
    0x1eec, 0x1eee, 0x1ef0, 0x1ef2, 0x1ef4, 0x1ef6, 0x1ef8, 0x1f59, 0x1f5b,
    0x1f5d, 0x1f5f, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x2130,
    0x2131, 0x2133
};
# 357 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_locale.c"
static crange graphRangeTable[] = {
    {0x0021, 0x007e}, {0x00a0, 0x011f}, {0x0121, 0x01f5}, {0x01fa, 0x0217},
    {0x0250, 0x02a8}, {0x02b0, 0x02de}, {0x02e0, 0x02e9}, {0x0300, 0x031f},
    {0x0321, 0x0345}, {0x0384, 0x038a}, {0x038e, 0x03a1}, {0x03a3, 0x03ce},
    {0x03d0, 0x03d6}, {0x03e2, 0x03f3}, {0x0401, 0x040c}, {0x040e, 0x041f},
    {0x0421, 0x044f}, {0x0451, 0x045c}, {0x045e, 0x0486}, {0x0490, 0x04c4},
    {0x04d0, 0x04eb}, {0x04ee, 0x04f5}, {0x0531, 0x0556}, {0x0559, 0x055f},
    {0x0561, 0x0587}, {0x0591, 0x05a1}, {0x05a3, 0x05b9}, {0x05bb, 0x05c4},
    {0x05d0, 0x05ea}, {0x05f0, 0x05f4}, {0x0621, 0x063a}, {0x0640, 0x0652},
    {0x0660, 0x066d}, {0x0670, 0x06b7}, {0x06ba, 0x06be}, {0x06c0, 0x06ce},
    {0x06d0, 0x06ed}, {0x06f0, 0x06f9}, {0x0901, 0x0903}, {0x0905, 0x091f},
    {0x0921, 0x0939}, {0x093c, 0x094d}, {0x0950, 0x0954}, {0x0958, 0x0970},
    {0x0981, 0x0983}, {0x0985, 0x098c}, {0x0993, 0x09a8}, {0x09aa, 0x09b0},
    {0x09b6, 0x09b9}, {0x09be, 0x09c4}, {0x09cb, 0x09cd}, {0x09df, 0x09e3},
    {0x09e6, 0x09fa}, {0x0a05, 0x0a0a}, {0x0a13, 0x0a1f}, {0x0a21, 0x0a28},
    {0x0a2a, 0x0a30}, {0x0a3e, 0x0a42}, {0x0a4b, 0x0a4d}, {0x0a59, 0x0a5c},
    {0x0a66, 0x0a74}, {0x0a81, 0x0a83}, {0x0a85, 0x0a8b}, {0x0a8f, 0x0a91},
    {0x0a93, 0x0aa8}, {0x0aaa, 0x0ab0}, {0x0ab5, 0x0ab9}, {0x0abc, 0x0ac5},
    {0x0ac7, 0x0ac9}, {0x0acb, 0x0acd}, {0x0ae6, 0x0aef}, {0x0b01, 0x0b03},
    {0x0b05, 0x0b0c}, {0x0b13, 0x0b1f}, {0x0b21, 0x0b28}, {0x0b2a, 0x0b30},
    {0x0b36, 0x0b39}, {0x0b3c, 0x0b43}, {0x0b4b, 0x0b4d}, {0x0b5f, 0x0b61},
    {0x0b66, 0x0b70}, {0x0b85, 0x0b8a}, {0x0b8e, 0x0b90}, {0x0b92, 0x0b95},
    {0x0ba8, 0x0baa}, {0x0bae, 0x0bb5}, {0x0bb7, 0x0bb9}, {0x0bbe, 0x0bc2},
    {0x0bc6, 0x0bc8}, {0x0bca, 0x0bcd}, {0x0be7, 0x0bf2}, {0x0c01, 0x0c03},
    {0x0c05, 0x0c0c}, {0x0c0e, 0x0c10}, {0x0c12, 0x0c1f}, {0x0c21, 0x0c28},
    {0x0c2a, 0x0c33}, {0x0c35, 0x0c39}, {0x0c3e, 0x0c44}, {0x0c46, 0x0c48},
    {0x0c4a, 0x0c4d}, {0x0c66, 0x0c6f}, {0x0c85, 0x0c8c}, {0x0c8e, 0x0c90},
    {0x0c92, 0x0ca8}, {0x0caa, 0x0cb3}, {0x0cb5, 0x0cb9}, {0x0cbe, 0x0cc4},
    {0x0cc6, 0x0cc8}, {0x0cca, 0x0ccd}, {0x0ce6, 0x0cef}, {0x0d05, 0x0d0c},
    {0x0d0e, 0x0d10}, {0x0d12, 0x0d1f}, {0x0d21, 0x0d28}, {0x0d2a, 0x0d39},
    {0x0d3e, 0x0d43}, {0x0d46, 0x0d48}, {0x0d4a, 0x0d4d}, {0x0d66, 0x0d6f},
    {0x0e01, 0x0e1f}, {0x0e21, 0x0e3a}, {0x0e3f, 0x0e5b}, {0x0e94, 0x0e97},
    {0x0e99, 0x0e9f}, {0x0ea1, 0x0ea3}, {0x0ead, 0x0eb9}, {0x0ebb, 0x0ebd},
    {0x0ec0, 0x0ec4}, {0x0ec8, 0x0ecd}, {0x0ed0, 0x0ed9}, {0x0f00, 0x0f1f},
    {0x0f21, 0x0f47}, {0x0f49, 0x0f69}, {0x0f71, 0x0f8b}, {0x0f90, 0x0f95},
    {0x0f99, 0x0fad}, {0x0fb1, 0x0fb7}, {0x10a0, 0x10c5}, {0x10d0, 0x10f6},
    {0x1100, 0x111f}, {0x1121, 0x1159}, {0x115f, 0x11a2}, {0x11a8, 0x11f9},
    {0x1e00, 0x1e1f}, {0x1e21, 0x1e9b}, {0x1ea0, 0x1ef9}, {0x1f00, 0x1f15},
    {0x1f18, 0x1f1d}, {0x1f21, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57},
    {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fc4}, {0x1fc6, 0x1fd3},
    {0x1fd6, 0x1fdb}, {0x1fdd, 0x1fef}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffe},
    {0x2000, 0x200b}, {0x2010, 0x201f}, {0x2021, 0x2029}, {0x2030, 0x2046},
    {0x2074, 0x208e}, {0x20a0, 0x20ac}, {0x20d0, 0x20e1}, {0x2100, 0x211f},
    {0x2121, 0x2138}, {0x2153, 0x2182}, {0x2190, 0x21ea}, {0x2200, 0x221f},
    {0x2221, 0x22f1}, {0x2302, 0x231f}, {0x2321, 0x237a}, {0x2400, 0x241f},
    {0x2421, 0x2424}, {0x2440, 0x244a}, {0x2460, 0x24ea}, {0x2500, 0x251f},
    {0x2521, 0x2595}, {0x25a0, 0x25ef}, {0x2600, 0x2613}, {0x261a, 0x261f},
    {0x2621, 0x266f}, {0x2701, 0x2704}, {0x2706, 0x2709}, {0x270c, 0x271f},
    {0x2721, 0x2727}, {0x2729, 0x274b}, {0x274f, 0x2752}, {0x2758, 0x275e},
    {0x2761, 0x2767}, {0x2776, 0x2794}, {0x2798, 0x27af}, {0x27b1, 0x27be},
    {0x3000, 0x301f}, {0x3021, 0x3037}, {0x3041, 0x3094}, {0x3099, 0x309e},
    {0x30a1, 0x30fe}, {0x3105, 0x311f}, {0x3121, 0x312c}, {0x3131, 0x318e},
    {0x3190, 0x319f}, {0x3200, 0x321c}, {0x3221, 0x3243}, {0x3260, 0x327b},
    {0x327f, 0x32b0}, {0x32c0, 0x32cb}, {0x32d0, 0x32fe}, {0x3300, 0x331f},
    {0x3321, 0x3376}, {0x337b, 0x33dd}, {0x33e0, 0x33fe}, {0x4e00, 0x4e1f},
    {0x4e21, 0x4f1f}, {0x4f21, 0x501f}, {0x5021, 0x511f}, {0x5121, 0x521f},
    {0x5221, 0x531f}, {0x5321, 0x541f}, {0x5421, 0x551f}, {0x5521, 0x561f},
    {0x5621, 0x571f}, {0x5721, 0x581f}, {0x5821, 0x591f}, {0x5921, 0x5a1f},
    {0x5a21, 0x5b1f}, {0x5b21, 0x5c1f}, {0x5c21, 0x5d1f}, {0x5d21, 0x5e1f},
    {0x5e21, 0x5f1f}, {0x5f21, 0x601f}, {0x6021, 0x611f}, {0x6121, 0x621f},
    {0x6221, 0x631f}, {0x6321, 0x641f}, {0x6421, 0x651f}, {0x6521, 0x661f},
    {0x6621, 0x671f}, {0x6721, 0x681f}, {0x6821, 0x691f}, {0x6921, 0x6a1f},
    {0x6a21, 0x6b1f}, {0x6b21, 0x6c1f}, {0x6c21, 0x6d1f}, {0x6d21, 0x6e1f},
    {0x6e21, 0x6f1f}, {0x6f21, 0x701f}, {0x7021, 0x711f}, {0x7121, 0x721f},
    {0x7221, 0x731f}, {0x7321, 0x741f}, {0x7421, 0x751f}, {0x7521, 0x761f},
    {0x7621, 0x771f}, {0x7721, 0x781f}, {0x7821, 0x791f}, {0x7921, 0x7a1f},
    {0x7a21, 0x7b1f}, {0x7b21, 0x7c1f}, {0x7c21, 0x7d1f}, {0x7d21, 0x7e1f},
    {0x7e21, 0x7f1f}, {0x7f21, 0x801f}, {0x8021, 0x811f}, {0x8121, 0x821f},
    {0x8221, 0x831f}, {0x8321, 0x841f}, {0x8421, 0x851f}, {0x8521, 0x861f},
    {0x8621, 0x871f}, {0x8721, 0x881f}, {0x8821, 0x891f}, {0x8921, 0x8a1f},
    {0x8a21, 0x8b1f}, {0x8b21, 0x8c1f}, {0x8c21, 0x8d1f}, {0x8d21, 0x8e1f},
    {0x8e21, 0x8f1f}, {0x8f21, 0x901f}, {0x9021, 0x911f}, {0x9121, 0x921f},
    {0x9221, 0x931f}, {0x9321, 0x941f}, {0x9421, 0x951f}, {0x9521, 0x961f},
    {0x9621, 0x971f}, {0x9721, 0x981f}, {0x9821, 0x991f}, {0x9921, 0x9a1f},
    {0x9a21, 0x9b1f}, {0x9b21, 0x9c1f}, {0x9c21, 0x9d1f}, {0x9d21, 0x9e1f},
    {0x9e21, 0x9f1f}, {0x9f21, 0x9fa5}, {0xac00, 0xac1f}, {0xac21, 0xad1f},
    {0xad21, 0xae1f}, {0xae21, 0xaf1f}, {0xaf21, 0xb01f}, {0xb021, 0xb11f},
    {0xb121, 0xb21f}, {0xb221, 0xb31f}, {0xb321, 0xb41f}, {0xb421, 0xb51f},
    {0xb521, 0xb61f}, {0xb621, 0xb71f}, {0xb721, 0xb81f}, {0xb821, 0xb91f},
    {0xb921, 0xba1f}, {0xba21, 0xbb1f}, {0xbb21, 0xbc1f}, {0xbc21, 0xbd1f},
    {0xbd21, 0xbe1f}, {0xbe21, 0xbf1f}, {0xbf21, 0xc01f}, {0xc021, 0xc11f},
    {0xc121, 0xc21f}, {0xc221, 0xc31f}, {0xc321, 0xc41f}, {0xc421, 0xc51f},
    {0xc521, 0xc61f}, {0xc621, 0xc71f}, {0xc721, 0xc81f}, {0xc821, 0xc91f},
    {0xc921, 0xca1f}, {0xca21, 0xcb1f}, {0xcb21, 0xcc1f}, {0xcc21, 0xcd1f},
    {0xcd21, 0xce1f}, {0xce21, 0xcf1f}, {0xcf21, 0xd01f}, {0xd021, 0xd11f},
    {0xd121, 0xd21f}, {0xd221, 0xd31f}, {0xd321, 0xd41f}, {0xd421, 0xd51f},
    {0xd521, 0xd61f}, {0xd621, 0xd71f}, {0xd721, 0xd7a3}, {0xf900, 0xf91f},
    {0xf921, 0xfa1f}, {0xfa21, 0xfa2d}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17},
    {0xfb21, 0xfb36}, {0xfb38, 0xfb3c}, {0xfb46, 0xfbb1}, {0xfbd3, 0xfc1f},
    {0xfc21, 0xfd1f}, {0xfd21, 0xfd3f}, {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7},
    {0xfdf0, 0xfdfb}, {0xfe21, 0xfe23}, {0xfe30, 0xfe44}, {0xfe49, 0xfe52},
    {0xfe54, 0xfe66}, {0xfe68, 0xfe6b}, {0xfe70, 0xfe72}, {0xfe76, 0xfefc},
    {0xff01, 0xff1f}, {0xff21, 0xff5e}, {0xff61, 0xffbe}, {0xffc2, 0xffc7},
    {0xffca, 0xffcf}, {0xffd2, 0xffd7}, {0xffda, 0xffdc}, {0xffe0, 0xffe6},
    {0xffe8, 0xffee}
};



static chr graphCharTable[] = {
    0x0360, 0x0361, 0x0374, 0x0375, 0x037a, 0x037e, 0x038c, 0x03da, 0x03dc,
    0x03de, 0x03e0, 0x04c7, 0x04c8, 0x04cb, 0x04cc, 0x04f8, 0x04f9, 0x0589,
    0x060c, 0x061b, 0x061f, 0x098f, 0x0990, 0x09b2, 0x09bc, 0x09c7, 0x09c8,
    0x09d7, 0x09dc, 0x09dd, 0x0a02, 0x0a0f, 0x0a10, 0x0a32, 0x0a33, 0x0a35,
    0x0a36, 0x0a38, 0x0a39, 0x0a3c, 0x0a47, 0x0a48, 0x0a5e, 0x0a8d, 0x0ab2,
    0x0ab3, 0x0ad0, 0x0ae0, 0x0b0f, 0x0b10, 0x0b32, 0x0b33, 0x0b47, 0x0b48,
    0x0b56, 0x0b57, 0x0b5c, 0x0b5d, 0x0b82, 0x0b83, 0x0b99, 0x0b9a, 0x0b9c,
    0x0b9e, 0x0b9f, 0x0ba3, 0x0ba4, 0x0bd7, 0x0c55, 0x0c56, 0x0c60, 0x0c61,
    0x0c82, 0x0c83, 0x0cd5, 0x0cd6, 0x0cde, 0x0ce0, 0x0ce1, 0x0d02, 0x0d03,
    0x0d57, 0x0d60, 0x0d61, 0x0e81, 0x0e82, 0x0e84, 0x0e87, 0x0e88, 0x0e8a,
    0x0e8d, 0x0ea5, 0x0ea7, 0x0eaa, 0x0eab, 0x0ec6, 0x0edc, 0x0edd, 0x0f97,
    0x0fb9, 0x10fb, 0x1f59, 0x1f5b, 0x1f5d, 0x2070, 0x2300, 0x274d, 0x2756,
    0x303f, 0xfb1e, 0xfb1f, 0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44, 0xfe74,
    0xfffc, 0xfffd
};
# 482 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_locale.c"
static int
nmcces(v)
struct vars *v;
{
        return 0;
}





static int
nleaders(v)
struct vars *v;
{
        return 0;
}





static struct cvec *
allmcces(v, cv)
struct vars *v;
struct cvec *cv;
{
        return clearcvec(cv);
}





static celt
element(v, startp, endp)
struct vars *v;
chr *startp;
chr *endp;
{
        struct cname *cn;
        size_t len;
        Tcl_DString ds;
        char *np;


        ((void)0);
        len = endp - startp;
        if (len == 1)
                return *startp;

        (v->re->re_info |= (002000));


        Tcl_DStringInit(&ds);
        np = Tcl_UniCharToUtfDString(startp, (int)len, &ds);
        for (cn = cnames; cn->name != ((void *)0); cn++)
                if (strlen(cn->name) == len && strncmp(cn->name, np, len) == 0)
                        break;
        Tcl_DStringFree(&ds);
        if (cn->name != ((void *)0))
                return (((unsigned char) (cn->code)));


        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (3)));
        return 0;
}





static struct cvec *
range(v, a, b, cases)
struct vars *v;
celt a;
celt b;
int cases;
{
        int nchrs;
        struct cvec *cv;
        celt c, lc, uc, tc;

        if (a != b && !before(a, b)) {
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (11)));
                return ((void *)0);
        }

        if (!cases) {
                cv = getcvec(v, 0, 1, 0);
                {if (((v)->err != 0)) return ((void *)0);};
                addrange(cv, a, b);
                return cv;
        }
# 584 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_locale.c"
        nchrs = (b - a + 1)*2 + 4;

        cv = getcvec(v, nchrs, 0, 0);
        {if (((v)->err != 0)) return ((void *)0);};

        for (c = a; c <= b; c++) {
                addchr(cv, c);
                lc = Tcl_UniCharToLower((chr)c);
                uc = Tcl_UniCharToUpper((chr)c);
                tc = Tcl_UniCharToTitle((chr)c);
                if (c != lc) {
                        addchr(cv, lc);
                }
                if (c != uc) {
                        addchr(cv, uc);
                }
                if (c != tc && tc != uc) {
                        addchr(cv, tc);
                }
        }

        return cv;
}





static int
before(x, y)
celt x;
celt y;
{

        if (x < y)
                return 1;
        return 0;
}






static struct cvec *
eclass(v, c, cases)
struct vars *v;
celt c;
int cases;
{
        struct cvec *cv;


        if ((v->cflags&010000) && c == 'x') {
                cv = getcvec(v, 4, 0, 0);
                addchr(cv, (chr)'x');
                addchr(cv, (chr)'y');
                if (cases) {
                        addchr(cv, (chr)'X');
                        addchr(cv, (chr)'Y');
                }
                return cv;
        }


        if (cases)
                return allcases(v, c);
        cv = getcvec(v, 1, 0, 0);
        ((void)0);
        addchr(cv, (chr)c);
        return cv;
}






static struct cvec *
cclass(v, startp, endp, cases)
struct vars *v;
chr *startp;
chr *endp;
int cases;
{
    size_t len;
    struct cvec *cv = ((void *)0);
    Tcl_DString ds;
    char *np, **namePtr;
    int i, index;





    static char *classNames[] = {
        "alnum", "alpha", "ascii", "blank", "cntrl", "digit", "graph",
        "lower", "print", "punct", "space", "upper", "xdigit", ((void *)0)
    };

    enum classes {
        CC_ALNUM, CC_ALPHA, CC_ASCII, CC_BLANK, CC_CNTRL, CC_DIGIT, CC_GRAPH,
        CC_LOWER, CC_PRINT, CC_PUNCT, CC_SPACE, CC_UPPER, CC_XDIGIT
    };






    len = endp - startp;
    Tcl_DStringInit(&ds);
    np = Tcl_UniCharToUtfDString(startp, (int)len, &ds);





    if (cases && len == 5 && (strncmp("lower", np, 5) == 0
            || strncmp("upper", np, 5) == 0)) {
        np = "alpha";
    }





    index = -1;
    for (namePtr = classNames, i = 0; *namePtr != ((void *)0); namePtr++, i++) {
        if ((strlen(*namePtr) == len) && (strncmp(*namePtr, np, len) == 0)) {
            index = i;
            break;
        }
    }
    Tcl_DStringInit(&ds);
    if (index == -1) {
        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (4)));
        return ((void *)0);
    }





    switch((enum classes) index) {
        case CC_PRINT:
        case CC_ALNUM:
            cv = getcvec(v, (sizeof(alphaCharTable)/sizeof(chr)),
                    (sizeof(digitRangeTable)/sizeof(crange)) + (sizeof(alphaRangeTable)/sizeof(crange)), 0);
            if (cv) {
                for (i = 0; i < (sizeof(alphaCharTable)/sizeof(chr)); i++) {
                    addchr(cv, alphaCharTable[i]);
                }
                for (i = 0; i < (sizeof(alphaRangeTable)/sizeof(crange)); i++) {
                    addrange(cv, alphaRangeTable[i].start,
                             alphaRangeTable[i].end);
                }
                for (i = 0; i < (sizeof(digitRangeTable)/sizeof(crange)); i++) {
                    addrange(cv, digitRangeTable[i].start,
                            digitRangeTable[i].end);
                }
            }
            break;
        case CC_ALPHA:
            cv = getcvec(v, (sizeof(alphaCharTable)/sizeof(chr)), (sizeof(alphaRangeTable)/sizeof(crange)), 0);
            if (cv) {
                for (i = 0; i < (sizeof(alphaRangeTable)/sizeof(crange)); i++) {
                    addrange(cv, alphaRangeTable[i].start,
                             alphaRangeTable[i].end);
                }
                for (i = 0; i < (sizeof(alphaCharTable)/sizeof(chr)); i++) {
                    addchr(cv, alphaCharTable[i]);
                }
            }
            break;
        case CC_ASCII:
            cv = getcvec(v, 0, 1, 0);
            if (cv) {
                addrange(cv, 0, 0x7f);
            }
            break;
        case CC_BLANK:
            cv = getcvec(v, 2, 0, 0);
            addchr(cv, '\t');
            addchr(cv, ' ');
            break;
        case CC_CNTRL:
            cv = getcvec(v, 0, 2, 0);
            addrange(cv, 0x0, 0x1f);
            addrange(cv, 0x7f, 0x9f);
            break;
        case CC_DIGIT:
            cv = getcvec(v, 0, (sizeof(digitRangeTable)/sizeof(crange)), 0);
            if (cv) {
                for (i = 0; i < (sizeof(digitRangeTable)/sizeof(crange)); i++) {
                    addrange(cv, digitRangeTable[i].start,
                            digitRangeTable[i].end);
                }
            }
            break;
        case CC_PUNCT:
            cv = getcvec(v, (sizeof(punctCharTable)/sizeof(chr)), (sizeof(punctRangeTable)/sizeof(crange)), 0);
            if (cv) {
                for (i = 0; i < (sizeof(punctRangeTable)/sizeof(crange)); i++) {
                    addrange(cv, punctRangeTable[i].start,
                             punctRangeTable[i].end);
                }
                for (i = 0; i < (sizeof(punctCharTable)/sizeof(chr)); i++) {
                    addchr(cv, punctCharTable[i]);
                }
            }
            break;
        case CC_XDIGIT:
            cv = getcvec(v, 0, (sizeof(digitRangeTable)/sizeof(crange))+2, 0);
            if (cv) {
                addrange(cv, '0', '9');
                addrange(cv, 'a', 'f');
                addrange(cv, 'A', 'F');
            }
            break;
        case CC_SPACE:
            cv = getcvec(v, (sizeof(spaceCharTable)/sizeof(chr)), (sizeof(spaceRangeTable)/sizeof(crange)), 0);
            if (cv) {
                for (i = 0; i < (sizeof(spaceRangeTable)/sizeof(crange)); i++) {
                    addrange(cv, spaceRangeTable[i].start,
                             spaceRangeTable[i].end);
                }
                for (i = 0; i < (sizeof(spaceCharTable)/sizeof(chr)); i++) {
                    addchr(cv, spaceCharTable[i]);
                }
            }
            break;
        case CC_LOWER:
            cv = getcvec(v, (sizeof(lowerCharTable)/sizeof(chr)), (sizeof(lowerRangeTable)/sizeof(crange)), 0);
            if (cv) {
                for (i = 0; i < (sizeof(lowerRangeTable)/sizeof(crange)); i++) {
                    addrange(cv, lowerRangeTable[i].start,
                             lowerRangeTable[i].end);
                }
                for (i = 0; i < (sizeof(lowerCharTable)/sizeof(chr)); i++) {
                    addchr(cv, lowerCharTable[i]);
                }
            }
            break;
        case CC_UPPER:
            cv = getcvec(v, (sizeof(upperCharTable)/sizeof(chr)), (sizeof(upperRangeTable)/sizeof(crange)), 0);
            if (cv) {
                for (i = 0; i < (sizeof(upperRangeTable)/sizeof(crange)); i++) {
                    addrange(cv, upperRangeTable[i].start,
                             upperRangeTable[i].end);
                }
                for (i = 0; i < (sizeof(upperCharTable)/sizeof(chr)); i++) {
                    addchr(cv, upperCharTable[i]);
                }
            }
            break;
        case CC_GRAPH:
            cv = getcvec(v, (sizeof(graphCharTable)/sizeof(chr)), (sizeof(graphRangeTable)/sizeof(crange)), 0);
            if (cv) {
                for (i = 0; i < (sizeof(graphRangeTable)/sizeof(crange)); i++) {
                    addrange(cv, graphRangeTable[i].start,
                             graphRangeTable[i].end);
                }
                for (i = 0; i < (sizeof(graphCharTable)/sizeof(chr)); i++) {
                    addchr(cv, graphCharTable[i]);
                }
            }
            break;
    }
    if (cv == ((void *)0)) {
        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (12)));
    }
    return cv;
}







static struct cvec *
allcases(v, pc)
struct vars *v;
pchr pc;
{
        struct cvec *cv;
        chr c = (chr)pc;
        chr lc, uc, tc;

        lc = Tcl_UniCharToLower((chr)c);
        uc = Tcl_UniCharToUpper((chr)c);
        tc = Tcl_UniCharToTitle((chr)c);

        if (tc != uc) {
            cv = getcvec(v, 3, 0, 0);
            addchr(cv, tc);
        } else {
            cv = getcvec(v, 2, 0, 0);
        }
        addchr(cv, lc);
        if (lc != uc) {
            addchr(cv, uc);
        }
        return cv;
}
# 899 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_locale.c"
static int
cmp(x, y, len)
const chr *x;
const chr *y;
size_t len;
{
        return memcmp(((void *)(x)), ((void *)(y)), len*sizeof(chr));
}
# 916 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_locale.c"
static int
casecmp(x, y, len)
const chr *x;
const chr *y;
size_t len;
{
        size_t i;
        const chr *xp;
        const chr *yp;

        for (xp = x, yp = y, i = len; i > 0; i--)
                if (Tcl_UniCharToLower(*xp++) != Tcl_UniCharToLower(*yp++))
                        return 1;
        return 0;
}
# 2176 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c" 2


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2002-10-30 20:15 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-10-30 10:46 optimization/8367: ICE compiling tcl/generic/regcomp.c (new in last week) Donn Terry
  -- strict thread matches above, loose matches on Subject: below --
2002-10-30 12:15 paolo
2002-10-26 17:16 donnte

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).