From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 518 invoked by alias); 30 Oct 2002 18:46:07 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 417 invoked by uid 71); 30 Oct 2002 18:46:05 -0000 Date: Wed, 30 Oct 2002 10:46:00 -0000 Message-ID: <20021030184605.406.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: "Donn Terry" Subject: RE: optimization/8367: ICE compiling tcl/generic/regcomp.c (new in last week) Reply-To: "Donn Terry" X-SW-Source: 2002-10/txt/msg01258.txt.bz2 List-Id: The following reply was made to PR optimization/8367; it has been noted by GNATS. From: "Donn Terry" To: 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 "" # 1 "" # 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