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