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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? insfun.c

?? clips源代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
   /*******************************************************/   /*      "C" Language Integrated Production System      */   /*                                                     */   /*              CLIPS Version 6.24  05/17/06           */   /*                                                     */   /*                INSTANCE FUNCTIONS MODULE            */   /*******************************************************//*************************************************************//* Purpose:  Internal instance manipulation routines         *//*                                                           *//* Principal Programmer(s):                                  *//*      Brian L. Donnell                                     *//*                                                           *//* Contributing Programmer(s):                               *//*                                                           *//*                                                           *//* Revision History:                                         *//*      6.23: Correction for FalseSymbol/TrueSymbol. DR0859  *//*                                                           *//*            Changed name of variable log to logName        *//*            because of Unix compiler warnings of shadowed  *//*            definitions.                                   *//*                                                           *//*            Changed name of variable exp to theExp         *//*            because of Unix compiler warnings of shadowed  *//*            definitions.                                   *//*                                                           *//*      6.24: Link error occurs for the SlotExistError       *//*            function when OBJECT_SYSTEM is set to 0 in     *//*            setup.h. DR0865                                *//*                                                           *//*            Converted INSTANCE_PATTERN_MATCHING to         *//*            DEFRULE_CONSTRUCT.                             *//*                                                           *//*            Renamed BOOLEAN macro type to intBool.         *//*                                                           *//*            Moved EvaluateAndStoreInDataObject to          *//*            evaluatn.c                                     *//*                                                           *//*************************************************************//* =========================================   *****************************************               EXTERNAL DEFINITIONS   =========================================   ***************************************** */#include <stdlib.h>#include "setup.h"#if OBJECT_SYSTEM#include "argacces.h"#include "classcom.h"#include "classfun.h"#include "cstrnchk.h"#include "engine.h"#include "envrnmnt.h"#include "inscom.h"#include "insmngr.h"#include "memalloc.h"#include "modulutl.h"#include "msgcom.h"#include "msgfun.h"#include "prccode.h"#include "router.h"#include "utility.h"#if DEFRULE_CONSTRUCT#include "drive.h"#include "objrtmch.h"#endif#define _INSFUN_SOURCE_#include "insfun.h"/* =========================================   *****************************************                   CONSTANTS   =========================================   ***************************************** */#define BIG_PRIME    11329/* =========================================   *****************************************      INTERNALLY VISIBLE FUNCTION HEADERS   =========================================   ***************************************** */static INSTANCE_TYPE *FindImportedInstance(void *,struct defmodule *,struct defmodule *,INSTANCE_TYPE *);#if DEFRULE_CONSTRUCTstatic void NetworkModifyForSharedSlot(void *,int,DEFCLASS *,SLOT_DESC *);#endif/* =========================================   *****************************************          EXTERNALLY VISIBLE FUNCTIONS   =========================================   ***************************************** *//***************************************************  NAME         : EnvIncrementInstanceCount  DESCRIPTION  : Increments instance busy count -                   prevents it from being deleted  INPUTS       : The address of the instance  RETURNS      : Nothing useful  SIDE EFFECTS : Count set  NOTES        : None ***************************************************/#if IBM_TBC#pragma argsused#endifgloble void EnvIncrementInstanceCount(  void *theEnv,  void *vptr)  {#if MAC_MCW || IBM_MCW || MAC_XCD#pragma unused(theEnv)#endif   ((INSTANCE_TYPE *) vptr)->busy++;  }/***************************************************  NAME         : EnvDecrementInstanceCount  DESCRIPTION  : Decrements instance busy count -                   might allow it to be deleted  INPUTS       : The address of the instance  RETURNS      : Nothing useful  SIDE EFFECTS : Count set  NOTES        : None ***************************************************/#if IBM_TBC#pragma argsused#endifgloble void EnvDecrementInstanceCount(  void *theEnv,  void *vptr)  {#if MAC_MCW || IBM_MCW || MAC_XCD#pragma unused(theEnv)#endif   ((INSTANCE_TYPE *) vptr)->busy--;  }/***************************************************  NAME         : InitializeInstanceTable  DESCRIPTION  : Initializes instance hash table                  to all NULL addresses  INPUTS       : None  RETURNS      : Nothing useful  SIDE EFFECTS : Hash table initialized  NOTES        : None ***************************************************/globle void InitializeInstanceTable(  void *theEnv)  {   register int i;   InstanceData(theEnv)->InstanceTable = (INSTANCE_TYPE **)                    gm2(theEnv,(int) (sizeof(INSTANCE_TYPE *) * INSTANCE_TABLE_HASH_SIZE));   for (i = 0 ; i < INSTANCE_TABLE_HASH_SIZE ; i++)     InstanceData(theEnv)->InstanceTable[i] = NULL;  }/*******************************************************  NAME         : CleanupInstances  DESCRIPTION  : Iterates through instance garbage                   list looking for nodes that                   have become unused - and purges                   them  INPUTS       : None  RETURNS      : Nothing useful  SIDE EFFECTS : Non-busy instance garbage nodes deleted  NOTES        : None *******************************************************/globle void CleanupInstances(  void *theEnv)  {   IGARBAGE *gprv,*gtmp,*dump;   if (InstanceData(theEnv)->MaintainGarbageInstances)     return;   gprv = NULL;   gtmp = InstanceData(theEnv)->InstanceGarbageList;   while (gtmp != NULL)     {      if ((gtmp->ins->busy == 0) && (gtmp->ins->depth > EvaluationData(theEnv)->CurrentEvaluationDepth)#if DEFRULE_CONSTRUCT          && (gtmp->ins->header.busyCount == 0)#endif         )        {         UtilityData(theEnv)->EphemeralItemCount -= 2;         UtilityData(theEnv)->EphemeralItemSize -= InstanceSizeHeuristic(gtmp->ins) + sizeof(IGARBAGE);         DecrementSymbolCount(theEnv,gtmp->ins->name);         rtn_struct(theEnv,instance,gtmp->ins);         if (gprv == NULL)           InstanceData(theEnv)->InstanceGarbageList = gtmp->nxt;         else           gprv->nxt = gtmp->nxt;         dump = gtmp;         gtmp = gtmp->nxt;         rtn_struct(theEnv,igarbage,dump);        }      else        {         gprv = gtmp;         gtmp = gtmp->nxt;        }     }  }/*******************************************************  NAME         : HashInstance  DESCRIPTION  : Generates a hash index for a given                 instance name  INPUTS       : The address of the instance name SYMBOL_HN  RETURNS      : The hash index value  SIDE EFFECTS : None  NOTES        : Counts on the fact that the symbol                 has already been hashed into the                 symbol table - uses that hash value                 multiplied by a prime for a new hash *******************************************************/globle unsigned HashInstance(  SYMBOL_HN *cname)  {   unsigned long tally;   tally = ((unsigned long) cname->bucket) * BIG_PRIME;   return((unsigned) (tally % INSTANCE_TABLE_HASH_SIZE));  }/***************************************************  NAME         : DestroyAllInstances  DESCRIPTION  : Deallocates all instances,                  reinitializes hash table and                  resets class instance pointers  INPUTS       : None  RETURNS      : Nothing useful  SIDE EFFECTS : All instances deallocated  NOTES        : None ***************************************************/globle void DestroyAllInstances(  void *theEnv)  {   INSTANCE_TYPE *iptr;   int svmaintain;   SaveCurrentModule(theEnv);   svmaintain = InstanceData(theEnv)->MaintainGarbageInstances;   InstanceData(theEnv)->MaintainGarbageInstances = TRUE;   iptr = InstanceData(theEnv)->InstanceList;   while (iptr != NULL)     {      EnvSetCurrentModule(theEnv,(void *) iptr->cls->header.whichModule->theModule);      DirectMessage(theEnv,MessageHandlerData(theEnv)->DELETE_SYMBOL,iptr,NULL,NULL);      iptr = iptr->nxtList;      while ((iptr != NULL) ? iptr->garbage : FALSE)        iptr = iptr->nxtList;     }   InstanceData(theEnv)->MaintainGarbageInstances = svmaintain;   RestoreCurrentModule(theEnv);  }/******************************************************  NAME         : RemoveInstanceData  DESCRIPTION  : Deallocates all the data objects                 in instance slots and then dealloactes                 the slots themeselves  INPUTS       : The instance  RETURNS      : Nothing useful  SIDE EFFECTS : Instance slots removed  NOTES        : An instance made with CopyInstanceData                 will have shared values removed                 in all cases because they are not                 "real" instances.                 Instance class busy count decremented ******************************************************/globle void RemoveInstanceData(  void *theEnv,  INSTANCE_TYPE *ins)  {   long i;   INSTANCE_SLOT *sp;   DecrementDefclassBusyCount(theEnv,(void *) ins->cls);   for (i = 0 ; i < ins->cls->instanceSlotCount ; i++)     {      sp = ins->slotAddresses[i];      if ((sp == &sp->desc->sharedValue) ?          (--sp->desc->sharedCount == 0) : TRUE)        {         if (sp->desc->multiple)           {            MultifieldDeinstall(theEnv,(MULTIFIELD_PTR) sp->value);            AddToMultifieldList(theEnv,(MULTIFIELD_PTR) sp->value);           }         else           AtomDeinstall(theEnv,(int) sp->type,sp->value);         sp->value = NULL;        }     }   if (ins->cls->instanceSlotCount != 0)     {      rm(theEnv,(void *) ins->slotAddresses,         (ins->cls->instanceSlotCount * sizeof(INSTANCE_SLOT *)));      if (ins->cls->localInstanceSlotCount != 0)        rm(theEnv,(void *) ins->slots,           (ins->cls->localInstanceSlotCount * sizeof(INSTANCE_SLOT)));     }   ins->slots = NULL;   ins->slotAddresses = NULL;  }/***************************************************************************  NAME         : FindInstanceBySymbol  DESCRIPTION  : Looks up a specified instance in the instance hash table  INPUTS       : The symbol for the name of the instance  RETURNS      : The address of the found instance, NULL otherwise  SIDE EFFECTS : None  NOTES        : An instance is searched for by name first in the                 current module - then in imported modules according                 to the order given in the current module's definition ***************************************************************************/globle INSTANCE_TYPE *FindInstanceBySymbol(  void *theEnv,

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩你懂的电影在线观看| 国产成人av电影| 成人av在线一区二区三区| 欧美日本在线看| 国产亚洲精品aa| 三级在线观看一区二区| aa级大片欧美| 国产丝袜美腿一区二区三区| 亚洲制服丝袜av| 99亚偷拍自图区亚洲| 欧美精品一区二区高清在线观看| 亚洲午夜在线视频| 国产成人a级片| 精品国产亚洲一区二区三区在线观看| 亚洲香蕉伊在人在线观| 91色婷婷久久久久合中文| 国产日韩欧美精品一区| 久久精品噜噜噜成人av农村| 欧美精品久久99久久在免费线| 亚洲精品国产第一综合99久久| 成人三级伦理片| 欧美激情中文字幕一区二区| 久久精品国产免费看久久精品| 欧美日韩国产精品自在自线| 一区二区免费看| 成人高清伦理免费影院在线观看| 精品国产sm最大网站免费看| 久久精品国产99国产精品| 欧美精品日日鲁夜夜添| 亚洲国产精品尤物yw在线观看| 91在线播放网址| 国产精品无遮挡| 粉嫩13p一区二区三区| 国产午夜亚洲精品羞羞网站| 国产在线播放一区| www国产亚洲精品久久麻豆| 久久成人免费网站| 久久众筹精品私拍模特| 久88久久88久久久| 日韩欧美123| 国产一区中文字幕| 久久午夜羞羞影院免费观看| 国产真实精品久久二三区| 精品黑人一区二区三区久久| 韩国三级中文字幕hd久久精品| 日韩欧美一区在线| 久久97超碰国产精品超碰| 久久综合色一综合色88| 国产成人一级电影| 国产精品区一区二区三| 99精品视频在线免费观看| 亚洲欧美一区二区久久| 色综合一区二区三区| 夜夜嗨av一区二区三区| 欧美日韩免费高清一区色橹橹 | 91精品国产麻豆| 日韩综合小视频| 精品久久99ma| 国产大陆亚洲精品国产| 亚洲天堂网中文字| 色狠狠桃花综合| 天堂av在线一区| 精品久久久久久久久久久久久久久久久 | 久久www免费人成看片高清| 精品国产乱码久久久久久蜜臀| 国产一区二区三区免费播放| 欧美国产乱子伦| 日本乱人伦aⅴ精品| 亚洲五月六月丁香激情| 欧美一级理论片| 激情五月播播久久久精品| 中文一区在线播放| 在线视频欧美区| 日韩av一级片| 久久久精品欧美丰满| 99精品视频一区二区三区| 亚洲综合在线免费观看| 日韩亚洲欧美高清| 国产99久久精品| 一区二区高清视频在线观看| 日韩一区二区三区在线观看| 国产成人在线免费| 亚洲国产精品一区二区久久 | 2017欧美狠狠色| 91亚洲资源网| 蜜桃传媒麻豆第一区在线观看| 久久女同性恋中文字幕| 色国产综合视频| 极品少妇一区二区三区精品视频| 成人免费一区二区三区视频| 91精品国产一区二区| 北条麻妃国产九九精品视频| 午夜精品久久久久久久久| 久久久久久电影| 欧美在线不卡视频| 国产一区二区免费在线| 亚洲国产综合91精品麻豆| 国产亚洲人成网站| 欧美美女一区二区三区| 粉嫩一区二区三区性色av| 午夜精品福利在线| 国产精品国产三级国产a| 欧美人妖巨大在线| www.日韩精品| 久久99九九99精品| 一区二区三区四区不卡在线| www激情久久| 欧美日韩精品一区二区三区蜜桃| 国产91丝袜在线播放九色| 亚洲电影第三页| 中文字幕成人网| 精品国产一二三区| 欧洲精品一区二区| 成人午夜激情片| 美日韩一级片在线观看| 一区二区三区日韩在线观看| 久久久91精品国产一区二区精品| 欧美喷潮久久久xxxxx| 99精品国产91久久久久久| 国产精品综合在线视频| 日本欧美在线看| 亚洲精品乱码久久久久久久久 | 在线免费观看日韩欧美| 美女脱光内衣内裤视频久久网站 | 国产.欧美.日韩| 蜜桃av一区二区在线观看| 一区二区三区免费网站| 中国色在线观看另类| 欧美成人高清电影在线| 欧美日韩国产一级片| 91日韩一区二区三区| 国产精品一二三在| 久久国产乱子精品免费女| 亚洲成a天堂v人片| 一区二区三区四区不卡在线| 国产精品久久久久一区二区三区| 久久影音资源网| 精品欧美乱码久久久久久1区2区| 欧美美女网站色| 在线免费观看日本欧美| 91无套直看片红桃| 成人av在线资源| 成人免费视频一区| 成人免费视频caoporn| 国产精品 日产精品 欧美精品| 精品在线免费视频| 免费av网站大全久久| 欧美系列日韩一区| 国产激情一区二区三区桃花岛亚洲| 香蕉成人啪国产精品视频综合网| 亚洲欧洲制服丝袜| 91黄色免费网站| 国产精品久久久久久久午夜片| 国产一区美女在线| 久久久久久日产精品| 精品一区二区日韩| www一区二区| 国产宾馆实践打屁股91| 国产精品久线观看视频| 97久久超碰国产精品电影| 中文字幕综合网| 欧美三区在线观看| 日韩电影一区二区三区| 日韩欧美亚洲国产另类| 国产一区二区三区黄视频 | 成人精品在线视频观看| 中文字幕五月欧美| 欧美日韩国产精品自在自线| 麻豆成人免费电影| 国产精品美女久久久久久2018| 91污在线观看| 视频一区二区不卡| 中文字幕成人av| 欧美色欧美亚洲另类二区| 久久精品72免费观看| 亚洲专区一二三| 国产精品二三区| 久久久.com| 日韩三级电影网址| 日本韩国欧美国产| 久久久综合激的五月天| 精品精品欲导航| 国产视频一区二区在线| 综合激情网...| 一级中文字幕一区二区| 亚洲国产精品视频| 免费观看在线综合色| 激情六月婷婷久久| 成人免费高清在线| 欧美亚洲国产一区在线观看网站| 欧美三级日本三级少妇99| 日韩一区二区在线看片| 蜜臀a∨国产成人精品| 久久69国产一区二区蜜臀| 天天综合天天做天天综合| 奇米影视在线99精品| 国产激情91久久精品导航| 91国偷自产一区二区三区成为亚洲经典 | 日韩国产欧美在线观看| 久久er精品视频|