亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? classfun.c

?? clips源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
   /*******************************************************/   /*      "C" Language Integrated Production System      */   /*                                                     */   /*             CLIPS Version 6.24  06/02/06            */   /*                                                     */   /*                CLASS FUNCTIONS MODULE               */   /*******************************************************//*************************************************************//* Purpose: Internal class manipulation routines             *//*                                                           *//* Principal Programmer(s):                                  *//*      Brian L. Donnell                                     *//*                                                           *//* Contributing Programmer(s):                               *//*                                                           *//* Revision History:                                         *//*                                                           *//*      6.24: Renamed BOOLEAN macro type to intBool.         *//*                                                           *//*            Corrected code to remove run-time program      *//*            compiler warning.                              *//*                                                           *//*************************************************************//* =========================================   *****************************************               EXTERNAL DEFINITIONS   =========================================   ***************************************** */#include <stdlib.h>#include "setup.h"#if OBJECT_SYSTEM#if BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE#include "bload.h"#endif#include "classcom.h"#include "classini.h"#include "constant.h"#include "constrct.h"#include "cstrccom.h"#include "cstrcpsr.h"#include "envrnmnt.h"#include "evaluatn.h"#include "inscom.h"#include "insfun.h"#include "insmngr.h"#include "memalloc.h"#include "modulutl.h"#include "msgfun.h"#include "router.h"#include "scanner.h"#include "utility.h"#define _CLASSFUN_SOURCE_#include "classfun.h"/* =========================================   *****************************************                   CONSTANTS   =========================================   ***************************************** */#define BIG_PRIME          11329#define CLASS_ID_MAP_CHUNK 30#define PUT_PREFIX         "put-"#define PUT_PREFIX_LENGTH  4/* =========================================   *****************************************      INTERNALLY VISIBLE FUNCTION HEADERS   =========================================   ***************************************** */static unsigned HashSlotName(SYMBOL_HN *);#if (! RUN_TIME)static int NewSlotNameID(void *);static void DeassignClassID(void *,unsigned);#endif/* =========================================   *****************************************          EXTERNALLY VISIBLE FUNCTIONS   =========================================   ***************************************** *//***************************************************  NAME         : IncrementDefclassBusyCount  DESCRIPTION  : Increments use count of defclass  INPUTS       : The class  RETURNS      : Nothing useful  SIDE EFFECTS : Busy count incremented  NOTES        : None ***************************************************/#if IBM_TBC#pragma argsused#endifgloble void IncrementDefclassBusyCount(  void *theEnv,  void *theDefclass)  {#if MAC_MCW || IBM_MCW || MAC_XCD#pragma unused(theEnv)#endif   ((DEFCLASS *) theDefclass)->busy++;  }/***************************************************  NAME         : DecrementDefclassBusyCount  DESCRIPTION  : Decrements use count of defclass  INPUTS       : The class  RETURNS      : Nothing useful  SIDE EFFECTS : Busy count decremented  NOTES        : Since use counts are ignored on                 a clear and defclasses might be                 deleted already anyway, this is                 a no-op on a clear ***************************************************/globle void DecrementDefclassBusyCount(  void *theEnv,  void *theDefclass)  {      if (! ConstructData(theEnv)->ClearInProgress)     ((DEFCLASS *) theDefclass)->busy--;  }/****************************************************  NAME         : InstancesPurge  DESCRIPTION  : Removes all instances  INPUTS       : None  RETURNS      : TRUE if all instances deleted,                 FALSE otherwise  SIDE EFFECTS : The instance hash table is cleared  NOTES        : None ****************************************************/globle intBool InstancesPurge(  void *theEnv)  {   int svdepth;   DestroyAllInstances(theEnv);   svdepth = EvaluationData(theEnv)->CurrentEvaluationDepth;   if (EvaluationData(theEnv)->CurrentEvaluationDepth == 0)     EvaluationData(theEnv)->CurrentEvaluationDepth = -1;   CleanupInstances(theEnv);   EvaluationData(theEnv)->CurrentEvaluationDepth = svdepth;   return((InstanceData(theEnv)->InstanceList != NULL) ? FALSE : TRUE);  }#if ! RUN_TIME/***************************************************  NAME         : InitializeClasses  DESCRIPTION  : Allocates class hash table                 Initializes class hash table                   to all NULL addresses                 Creates system classes  INPUTS       : None  RETURNS      : Nothing useful  SIDE EFFECTS : Hash table initialized  NOTES        : None ***************************************************/globle void InitializeClasses(  void *theEnv)  {   register int i;   DefclassData(theEnv)->ClassTable =      (DEFCLASS **) gm2(theEnv,(int) (sizeof(DEFCLASS *) * CLASS_TABLE_HASH_SIZE));   for (i = 0 ; i < CLASS_TABLE_HASH_SIZE ; i++)     DefclassData(theEnv)->ClassTable[i] = NULL;   DefclassData(theEnv)->SlotNameTable =      (SLOT_NAME **) gm2(theEnv,(int) (sizeof(SLOT_NAME *) * SLOT_NAME_TABLE_HASH_SIZE));   for (i = 0 ; i < SLOT_NAME_TABLE_HASH_SIZE ; i++)     DefclassData(theEnv)->SlotNameTable[i] = NULL;  }#endif/********************************************************  NAME         : FindClassSlot  DESCRIPTION  : Searches for a named slot in a class  INPUTS       : 1) The class address                 2) The symbolic slot name  RETURNS      : Address of slot if found, NULL otherwise  SIDE EFFECTS : None  NOTES        : Only looks in class defn, does not                   examine inheritance paths ********************************************************/globle SLOT_DESC *FindClassSlot(  DEFCLASS *cls,  SYMBOL_HN *sname)  {   long i;   for (i = 0 ; i < cls->slotCount ; i++)     {      if (cls->slots[i].slotName->name == sname)        return(&cls->slots[i]);     }   return(NULL);  }/***************************************************************  NAME         : ClassExistError  DESCRIPTION  : Prints out error message for non-existent class  INPUTS       : 1) Name of function having the error                 2) The name of the non-existent class  RETURNS      : Nothing useful  SIDE EFFECTS : None  NOTES        : None ***************************************************************/globle void ClassExistError(  void *theEnv,  char *func,  char *cname)  {   PrintErrorID(theEnv,"CLASSFUN",1,FALSE);   EnvPrintRouter(theEnv,WERROR,"Unable to find class ");   EnvPrintRouter(theEnv,WERROR,cname);   EnvPrintRouter(theEnv,WERROR," in function ");   EnvPrintRouter(theEnv,WERROR,func);   EnvPrintRouter(theEnv,WERROR,".\n");   SetEvaluationError(theEnv,TRUE);  }/*********************************************  NAME         : DeleteClassLinks  DESCRIPTION  : Deallocates a class link list  INPUTS       : The address of the list  RETURNS      : Nothing useful  SIDE EFFECTS : None  NOTES        : None *********************************************/globle void DeleteClassLinks(  void *theEnv,  CLASS_LINK *clink)  {   CLASS_LINK *ctmp;   for (ctmp = clink ; ctmp != NULL ; ctmp = clink)     {      clink = clink->nxt;      rtn_struct(theEnv,classLink,ctmp);     }  }/******************************************************  NAME         : PrintClassName  DESCRIPTION  : Displays a class's name  INPUTS       : 1) Logical name of output                 2) The class                 3) Flag indicating whether to                    print carriage-return at end  RETURNS      : Nothing useful  SIDE EFFECTS : Class name printed (and module name                 too if class is not in current module)  NOTES        : None ******************************************************/globle void PrintClassName(  void *theEnv,  char *logicalName,  DEFCLASS *theDefclass,  intBool linefeedFlag)  {   if ((theDefclass->header.whichModule->theModule != ((struct defmodule *) EnvGetCurrentModule(theEnv))) &&       (theDefclass->system == 0))     {      EnvPrintRouter(theEnv,logicalName,                 EnvGetDefmoduleName(theEnv,theDefclass->header.whichModule->theModule));      EnvPrintRouter(theEnv,logicalName,"::");     }   EnvPrintRouter(theEnv,logicalName,ValueToString(theDefclass->header.name));   if (linefeedFlag)     EnvPrintRouter(theEnv,logicalName,"\n");  }#if DEBUGGING_FUNCTIONS || ((! BLOAD_ONLY) && (! RUN_TIME))/***************************************************  NAME         : PrintPackedClassLinks  DESCRIPTION  : Displays the names of classes in                 a list with a title  INPUTS       : 1) The logical name of the output                 2) Title string                 3) List of class links  RETURNS      : Nothing useful  SIDE EFFECTS : None  NOTES        : None ***************************************************/globle void PrintPackedClassLinks(  void *theEnv,  char *logicalName,  char *title,  PACKED_CLASS_LINKS *plinks)  {   long i;   EnvPrintRouter(theEnv,logicalName,title);   for (i = 0 ; i < plinks->classCount ; i++)     {      EnvPrintRouter(theEnv,logicalName," ");      PrintClassName(theEnv,logicalName,plinks->classArray[i],FALSE);     }   EnvPrintRouter(theEnv,logicalName,"\n");  }#endif#if ! RUN_TIME/*******************************************************  NAME         : PutClassInTable  DESCRIPTION  : Inserts a class in the class hash table  INPUTS       : The class  RETURNS      : Nothing useful  SIDE EFFECTS : Class inserted  NOTES        : None *******************************************************/globle void PutClassInTable(  void *theEnv,  DEFCLASS *cls)  {   cls->hashTableIndex = HashClass(GetDefclassNamePointer((void *) cls));   cls->nxtHash = DefclassData(theEnv)->ClassTable[cls->hashTableIndex];   DefclassData(theEnv)->ClassTable[cls->hashTableIndex] = cls;  }/*********************************************************  NAME         : RemoveClassFromTable  DESCRIPTION  : Removes a class from the class hash table  INPUTS       : The class  RETURNS      : Nothing useful  SIDE EFFECTS : Class removed  NOTES        : None *********************************************************/globle void RemoveClassFromTable(  void *theEnv,  DEFCLASS *cls)  {   DEFCLASS *prvhsh,*hshptr;   prvhsh = NULL;   hshptr = DefclassData(theEnv)->ClassTable[cls->hashTableIndex];   while (hshptr != cls)     {      prvhsh = hshptr;      hshptr = hshptr->nxtHash;     }   if (prvhsh == NULL)     DefclassData(theEnv)->ClassTable[cls->hashTableIndex] = cls->nxtHash;   else     prvhsh->nxtHash = cls->nxtHash;  }/***************************************************  NAME         : AddClassLink  DESCRIPTION  : Adds a class link from one class to                  another  INPUTS       : 1) The packed links in which to                    insert the new class                 2) The subclass pointer                 3) Index of where to place the                    class (-1 to append)  RETURNS      : Nothing useful  SIDE EFFECTS : Link created and attached  NOTES        : Assumes the pack structure belongs                 to a class and does not need to                 be deallocated ***************************************************/globle void AddClassLink(  void *theEnv,  PACKED_CLASS_LINKS *src,  DEFCLASS *cls,  int posn)  {   PACKED_CLASS_LINKS dst;   dst.classArray = (DEFCLASS **) gm2(theEnv,(sizeof(DEFCLASS *) * (src->classCount + 1)));   if (posn == -1)     {      GenCopyMemory(DEFCLASS *,src->classCount,dst.classArray,src->classArray);      dst.classArray[src->classCount] = cls;     }   else     {      if (posn != 0)        GenCopyMemory(DEFCLASS *,posn,dst.classArray,src->classArray);      GenCopyMemory(DEFCLASS *,src->classCount - posn,                 dst.classArray + posn + 1,src->classArray + posn);      dst.classArray[posn] = cls;     }   dst.classCount = (unsigned short) (src->classCount + 1);   DeletePackedClassLinks(theEnv,src,FALSE);   src->classCount = dst.classCount;   src->classArray = dst.classArray;  }/***************************************************  NAME         : DeleteSubclassLink  DESCRIPTION  : Removes a class from another                 class's subclass list  INPUTS       : 1) The superclass whose subclass                    list is to be modified                 2) The subclass to be removed  RETURNS      : Nothing useful  SIDE EFFECTS : The subclass list is changed  NOTES        : None ***************************************************/globle void DeleteSubclassLink(  void *theEnv,  DEFCLASS *sclass,  DEFCLASS *cls)  {   long deletedIndex;   PACKED_CLASS_LINKS *src,dst;   src = &sclass->directSubclasses;   for (deletedIndex = 0 ; deletedIndex < src->classCount ; deletedIndex++)     if (src->classArray[deletedIndex] == cls)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆中文一区二区| 五月婷婷综合网| 亚洲欧美日韩在线| 免费成人你懂的| 91老师国产黑色丝袜在线| 欧美一区二区精品在线| 亚洲黄色尤物视频| 丁香亚洲综合激情啪啪综合| 日韩一区二区三区视频在线观看| 亚洲精品乱码久久久久久日本蜜臀| 看电视剧不卡顿的网站| 欧美二区三区的天堂| 综合欧美亚洲日本| 国产91精品一区二区| 精品久久久久久久久久久院品网 | 91蜜桃在线观看| 2020国产精品久久精品美国| 日韩高清在线不卡| 欧美日韩中文字幕一区二区| 亚洲人一二三区| 成人性色生活片| 久久美女艺术照精彩视频福利播放 | 午夜精品成人在线视频| 91污片在线观看| 欧美国产精品中文字幕| 国产麻豆欧美日韩一区| 国产精品美女www爽爽爽| 精品中文字幕一区二区小辣椒| 欧美高清视频不卡网| 亚洲国产精品人人做人人爽| 欧美亚洲综合另类| 亚洲一区二三区| 在线精品视频一区二区| 亚洲精品高清在线观看| 色婷婷香蕉在线一区二区| www国产成人| 国产成人av影院| 亚洲欧洲性图库| 色欧美88888久久久久久影院| 亚洲人成网站精品片在线观看| www.一区二区| 亚洲精品成a人| 欧美日韩小视频| 日本一区中文字幕| 精品欧美久久久| 国产在线精品一区二区夜色 | 欧美高清dvd| 日本亚洲视频在线| 日韩精品一区二区三区视频播放| 精品一区二区三区欧美| 久久精品夜夜夜夜久久| 99久久精品免费观看| 亚洲一区二区在线播放相泽| 91精品国产色综合久久ai换脸| 国产一区二区三区在线观看免费 | 日韩精品在线看片z| 国产在线观看一区二区| 成人欧美一区二区三区小说| 欧美色区777第一页| 免费观看一级特黄欧美大片| 日本一区二区三区国色天香| 91一区二区在线| 亚洲狠狠爱一区二区三区| 欧美大胆一级视频| 99视频一区二区三区| 日韩成人精品在线观看| 中文字幕欧美国产| 欧美日韩国产区一| 国产精品91xxx| 亚洲一区二区影院| 国产亚洲一区二区三区四区| 日韩一区二区在线看| 国产高清久久久久| 香蕉久久夜色精品国产使用方法| 久久一夜天堂av一区二区三区| 日本乱人伦aⅴ精品| 美女一区二区视频| 亚洲免费高清视频在线| 2020国产精品| 欧美精品高清视频| 一本一道综合狠狠老| 国产自产视频一区二区三区| 一区二区三区 在线观看视频| 久久一区二区视频| 91精品国产综合久久久久久久| 风间由美一区二区三区在线观看 | 成人免费视频国产在线观看| 日韩成人午夜精品| 亚洲亚洲人成综合网络| 国产精品欧美一区二区三区| 日韩亚洲欧美在线| 欧美日韩一级大片网址| 成人小视频在线观看| 寂寞少妇一区二区三区| 亚洲观看高清完整版在线观看| 国产精品国产成人国产三级| 精品久久久久久久久久久久久久久 | 亚洲精品日韩一| 国产精品久久久久久福利一牛影视| 在线成人午夜影院| 色噜噜久久综合| 色综合一区二区| 91免费在线看| 成人福利视频网站| 国产精品一色哟哟哟| 狠狠色丁香婷婷综合久久片| 日韩电影免费一区| 日本色综合中文字幕| 性久久久久久久久| 日韩av电影免费观看高清完整版在线观看 | 日韩 欧美一区二区三区| 亚洲一区二区综合| 亚洲成人三级小说| 亚洲成人7777| 日韩avvvv在线播放| 日韩中文字幕区一区有砖一区| 亚洲国产精品人人做人人爽| 亚洲成人免费看| 性久久久久久久久久久久| 日韩精彩视频在线观看| 青青国产91久久久久久| 久国产精品韩国三级视频| 激情综合亚洲精品| 国产精品一二一区| 波多野结衣中文一区| 91视频在线观看| 色天使色偷偷av一区二区| 色偷偷久久一区二区三区| 在线看国产日韩| 欧美人与z0zoxxxx视频| 日韩欧美激情在线| 日本一区二区三区国色天香| 国产精品人成在线观看免费| 亚洲美女少妇撒尿| 日韩高清在线不卡| 国产精品1区2区3区在线观看| 成人av综合一区| 欧美亚洲综合在线| 欧美成人福利视频| 中文字幕一区日韩精品欧美| 欧美日韩国产天堂| www.久久精品| 欧美日韩国产小视频在线观看| 51久久夜色精品国产麻豆| 欧美精品一区二区三区蜜桃| 国产精品视频麻豆| 午夜久久福利影院| 国产另类ts人妖一区二区| 91玉足脚交白嫩脚丫在线播放| 337p亚洲精品色噜噜噜| 国产欧美1区2区3区| 一区二区三区在线观看网站| 蜜桃av一区二区在线观看| 国产成人综合在线播放| 欧美三级在线看| 国产婷婷色一区二区三区| 亚洲地区一二三色| 国产成人午夜电影网| 欧美日韩国产免费一区二区| 国产欧美日本一区视频| 偷窥少妇高潮呻吟av久久免费| 国产不卡免费视频| 欧美一卡二卡在线| 一区二区三区中文字幕精品精品| 精品一区二区久久久| 欧美性受xxxx| 亚洲国产成人私人影院tom| 人禽交欧美网站| 欧美伊人久久久久久久久影院| 久久精品一区二区三区不卡| 免费在线看成人av| 色噜噜久久综合| 国产精品久久毛片a| 精品一区二区三区视频在线观看 | 久久久久久久久久久久久久久99| 一区二区视频免费在线观看| 成人午夜又粗又硬又大| 日韩精品一区国产麻豆| 亚洲丶国产丶欧美一区二区三区| 成人黄色小视频在线观看| 精品久久久三级丝袜| 日韩精品一二三| 欧美色老头old∨ideo| 亚洲三级免费观看| 成+人+亚洲+综合天堂| www亚洲一区| 激情综合色播激情啊| 日韩午夜av电影| 日韩激情一区二区| 欧美三级在线视频| 亚洲不卡av一区二区三区| 欧美亚洲动漫制服丝袜| 亚洲人亚洲人成电影网站色| 99麻豆久久久国产精品免费| 国产精品丝袜久久久久久app| 国产精品主播直播| 欧美激情一区在线观看| 福利91精品一区二区三区| 国产精品嫩草久久久久| 粉嫩久久99精品久久久久久夜|