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