📄 sysdep.c
字号:
if (SystemDependentData(theEnv)->AfterOpenFunction != NULL) { (*SystemDependentData(theEnv)->AfterOpenFunction)(theEnv); } return(TRUE); }/***********************************************//* GenReadBinary: Generic and machine specific *//* code for reading from a file. *//***********************************************/globle void GenReadBinary( void *theEnv, void *dataPtr, size_t size) {#if IBM_MSC char *tempPtr; tempPtr = (char *) dataPtr; while (size > INT_MAX) { _read(SystemDependentData(theEnv)->BinaryFileHandle,tempPtr,INT_MAX); size -= INT_MAX; tempPtr = tempPtr + INT_MAX; } if (size > 0) { _read(SystemDependentData(theEnv)->BinaryFileHandle,tempPtr,(unsigned int) size); }#endif#if IBM_TBC char *tempPtr; tempPtr = (char *) dataPtr; while (size > INT_MAX) { read(SystemDependentData(theEnv)->BinaryFileHandle,tempPtr,INT_MAX); size -= INT_MAX; tempPtr = tempPtr + INT_MAX; } if (size > 0) { read(SystemDependentData(theEnv)->BinaryFileHandle,tempPtr,(STD_SIZE) size); }#endif#if (! IBM_TBC) && (! IBM_MSC) fread(dataPtr,size,1,SystemDependentData(theEnv)->BinaryFP); #endif }/***************************************************//* GetSeekCurBinary: Generic and machine specific *//* code for seeking a position in a file. *//***************************************************/globle void GetSeekCurBinary( void *theEnv, long offset) {#if IBM_TBC lseek(SystemDependentData(theEnv)->BinaryFileHandle,offset,SEEK_CUR);#endif#if IBM_MSC _lseek(SystemDependentData(theEnv)->BinaryFileHandle,offset,SEEK_CUR);#endif#if (! IBM_TBC) && (! IBM_MSC) fseek(SystemDependentData(theEnv)->BinaryFP,offset,SEEK_CUR);#endif } /***************************************************//* GetSeekSetBinary: Generic and machine specific *//* code for seeking a position in a file. *//***************************************************/globle void GetSeekSetBinary( void *theEnv, long offset) {#if IBM_TBC lseek(SystemDependentData(theEnv)->BinaryFileHandle,offset,SEEK_SET);#endif#if IBM_MSC _lseek(SystemDependentData(theEnv)->BinaryFileHandle,offset,SEEK_SET);#endif#if (! IBM_TBC) && (! IBM_MSC) fseek(SystemDependentData(theEnv)->BinaryFP,offset,SEEK_SET);#endif }/************************************************//* GenTellBinary: Generic and machine specific *//* code for telling a position in a file. *//************************************************/globle void GenTellBinary( void *theEnv, long *offset) {#if IBM_TBC *offset = lseek(SystemDependentData(theEnv)->BinaryFileHandle,0,SEEK_CUR);#endif#if IBM_MSC *offset = _lseek(SystemDependentData(theEnv)->BinaryFileHandle,0,SEEK_CUR);#endif#if (! IBM_TBC) && (! IBM_MSC) *offset = ftell(SystemDependentData(theEnv)->BinaryFP);#endif }/****************************************//* GenCloseBinary: Generic and machine *//* specific code for closing a file. *//****************************************/globle void GenCloseBinary( void *theEnv) { if (SystemDependentData(theEnv)->BeforeOpenFunction != NULL) { (*SystemDependentData(theEnv)->BeforeOpenFunction)(theEnv); }#if IBM_TBC close(SystemDependentData(theEnv)->BinaryFileHandle);#endif#if IBM_MSC _close(SystemDependentData(theEnv)->BinaryFileHandle);#endif#if (! IBM_TBC) && (! IBM_MSC) fclose(SystemDependentData(theEnv)->BinaryFP);#endif if (SystemDependentData(theEnv)->AfterOpenFunction != NULL) { (*SystemDependentData(theEnv)->AfterOpenFunction)(theEnv); } } /***********************************************//* GenWrite: Generic routine for writing to a *//* file. No machine specific code as of yet. *//***********************************************/globle void GenWrite( void *dataPtr, size_t size, FILE *fp) { if (size == 0) return;#if UNIX_7 fwrite(dataPtr,size,1,fp);#else fwrite(dataPtr,size,1,fp);#endif }/*********************************************//* InitializeKeywords: Adds key words to the *//* symbol table so that they are available *//* for command completion. *//*********************************************/static void InitializeKeywords( void *theEnv) {#if (! RUN_TIME) && WINDOW_INTERFACE void *ts; /*====================*/ /* construct keywords */ /*====================*/ ts = EnvAddSymbol(theEnv,"defrule"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"defglobal"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"deftemplate"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"deffacts"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"deffunction"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"defmethod"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"defgeneric"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"defclass"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"defmessage-handler"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"definstances"); IncrementSymbolCount(ts); /*=======================*/ /* set-strategy keywords */ /*=======================*/ ts = EnvAddSymbol(theEnv,"depth"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"breadth"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"lex"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"mea"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"simplicity"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"complexity"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"random"); IncrementSymbolCount(ts); /*==================================*/ /* set-salience-evaluation keywords */ /*==================================*/ ts = EnvAddSymbol(theEnv,"when-defined"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"when-activated"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"every-cycle"); IncrementSymbolCount(ts); /*======================*/ /* deftemplate keywords */ /*======================*/ ts = EnvAddSymbol(theEnv,"field"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"multifield"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"default"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"type"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"allowed-symbols"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"allowed-strings"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"allowed-numbers"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"allowed-integers"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"allowed-floats"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"allowed-values"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"min-number-of-elements"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"max-number-of-elements"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"NONE"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"VARIABLE"); IncrementSymbolCount(ts); /*==================*/ /* defrule keywords */ /*==================*/ ts = EnvAddSymbol(theEnv,"declare"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"salience"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"test"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"or"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"and"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"not"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"logical"); IncrementSymbolCount(ts); /*===============*/ /* COOL keywords */ /*===============*/ ts = EnvAddSymbol(theEnv,"is-a"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"role"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"abstract"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"concrete"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"pattern-match"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"reactive"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"non-reactive"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"slot"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"field"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"multiple"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"single"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"storage"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"shared"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"local"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"access"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"read"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"write"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"read-only"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"read-write"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"initialize-only"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"propagation"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"inherit"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"no-inherit"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"source"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"composite"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"exclusive"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"allowed-lexemes"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"allowed-instances"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"around"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"before"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"primary"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"after"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"of"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"self"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"visibility"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"override-message"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"private"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"public"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"create-accessor"); IncrementSymbolCount(ts); /*================*/ /* watch keywords */ /*================*/ ts = EnvAddSymbol(theEnv,"compilations"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"deffunctions"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"globals"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"rules"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"activations"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"statistics"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"facts"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"generic-functions"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"methods"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"instances"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"slots"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"messages"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"message-handlers"); IncrementSymbolCount(ts); ts = EnvAddSymbol(theEnv,"focus"); IncrementSymbolCount(ts);#else#if MAC_MCW || IBM_MCW || MAC_XCD#pragma unused(theEnv)#endif#endif }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -