⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sysdep.c

📁 clips源代码
💻 C
📖 第 1 页 / 共 4 页
字号:
   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 + -