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

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

?? 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,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
2023国产精品自拍| 国产精品嫩草影院av蜜臀| 国产成人在线视频免费播放| 亚洲欧洲制服丝袜| 精品国产乱码久久久久久免费 | 亚洲免费成人av| 欧美妇女性影城| 色综合久久天天| 国产成人在线视频网址| 日本vs亚洲vs韩国一区三区二区 | 九九视频精品免费| 亚洲成人1区2区| 国产精品超碰97尤物18| 久久亚洲一区二区三区明星换脸| 精品视频资源站| 色综合天天综合在线视频| 国产剧情av麻豆香蕉精品| 亚洲成人动漫精品| 亚洲欧美另类小说视频| 欧美激情在线观看视频免费| 精品久久久久久久久久久久久久久久久| 色欧美乱欧美15图片| 成人av在线影院| 国产美女久久久久| 黑人巨大精品欧美一区| 久久电影国产免费久久电影| 日韩av一区二区在线影视| 亚洲国产欧美在线人成| 亚洲欧美区自拍先锋| 国产精品久久久久婷婷| 亚洲国产成人一区二区三区| 国产清纯在线一区二区www| 欧美精品一区二区在线播放| 日韩欧美的一区| 欧美一级片在线看| 日韩欧美一区电影| 日韩欧美黄色影院| 日韩亚洲国产中文字幕欧美| 91精品视频网| 日韩色在线观看| 欧美一区二区三区影视| 日韩欧美国产小视频| 欧美成人午夜电影| 精品国产电影一区二区| 久久综合狠狠综合久久综合88| xnxx国产精品| 中文字幕精品三区| 亚洲欧美日本在线| 亚洲国产va精品久久久不卡综合| 亚洲影视在线播放| 秋霞国产午夜精品免费视频 | 99国产一区二区三精品乱码| 91丨porny丨国产入口| 色94色欧美sute亚洲13| 欧美日韩在线播放三区四区| 欧美放荡的少妇| 精品少妇一区二区三区在线视频| 精品日韩在线一区| 国产三级欧美三级| 亚洲欧美综合色| 国产在线国偷精品免费看| 精品一区二区三区的国产在线播放 | 欧美成人精品1314www| 日本一区二区免费在线| 亚洲精品国产高清久久伦理二区| 亚洲成人高清在线| 开心九九激情九九欧美日韩精美视频电影| 激情成人综合网| 不卡的av电影在线观看| 欧美视频一区二区三区四区| 日韩欧美成人一区二区| 中文字幕一区在线| 日韩福利电影在线观看| 成人综合婷婷国产精品久久| 一本一道久久a久久精品综合蜜臀| 欧美日韩亚洲另类| 久久综合中文字幕| 亚洲黄色小视频| 国模娜娜一区二区三区| 色综合一个色综合| 精品剧情在线观看| 亚洲精选视频在线| 国内精品免费在线观看| 在线日韩一区二区| 亚洲精品一区二区三区蜜桃下载 | 久久99精品国产麻豆婷婷| 99久久er热在这里只有精品66| 欧美日韩国产片| 日本一区二区三区在线观看| 五月激情综合网| www.欧美.com| 日韩欧美资源站| 亚洲激情自拍视频| 国产一区二区按摩在线观看| 欧美三级电影在线看| 亚洲国产精品成人久久综合一区| 三级不卡在线观看| av色综合久久天堂av综合| 日韩一级黄色大片| 伊人一区二区三区| 成人午夜av电影| 欧美va亚洲va香蕉在线 | 成人永久aaa| 在线91免费看| 综合久久久久久| 国产精品综合二区| 欧美一区二区三区小说| 洋洋成人永久网站入口| 国产成人8x视频一区二区| 日韩欧美中文字幕制服| 亚洲成人自拍网| 99精品视频在线观看| 久久久久久影视| 毛片一区二区三区| 中文字幕精品—区二区四季| 激情综合色综合久久| 91精品国产综合久久香蕉的特点 | 在线观看www91| 亚洲色图.com| 成人黄色在线网站| 国产欧美日韩三区| 国产麻豆一精品一av一免费 | 国产河南妇女毛片精品久久久| 欧美高清www午色夜在线视频| 亚洲香蕉伊在人在线观| 色综合 综合色| 亚洲色图在线视频| 91年精品国产| 亚洲精品视频一区| 色哟哟亚洲精品| 亚洲精品少妇30p| 一本到三区不卡视频| 日韩毛片高清在线播放| 99在线视频精品| 中文字幕五月欧美| 99这里只有久久精品视频| 中文字幕在线观看不卡| 99精品桃花视频在线观看| 自拍偷拍国产精品| 色综合久久天天| 亚洲综合丁香婷婷六月香| 欧洲另类一二三四区| 亚洲影视在线观看| 欧美日韩中文字幕一区二区| 视频一区国产视频| 欧美精品色一区二区三区| 蜜桃视频一区二区| 欧美v国产在线一区二区三区| 国产在线精品一区二区| 国产精品欧美久久久久一区二区| 99精品1区2区| 香港成人在线视频| 日韩精品专区在线影院观看| 国产在线精品一区二区三区不卡| 久久精品视频免费观看| av不卡免费在线观看| 亚洲精品高清在线| 欧美一区二区三级| 国产美女在线观看一区| 亚洲欧洲日韩av| 欧美精品 日韩| 国产激情精品久久久第一区二区| 亚洲日穴在线视频| 6080亚洲精品一区二区| 国产美女在线观看一区| 亚洲毛片av在线| 欧美一级黄色片| 成人免费视频网站在线观看| 亚洲一区二区三区在线播放| 日韩精品一区二区三区视频| 国产99精品在线观看| 亚洲电影在线免费观看| 久久精品一区二区三区不卡牛牛| 91蝌蚪porny九色| 九九视频精品免费| 亚洲美女免费在线| 精品国产sm最大网站免费看| 91在线免费视频观看| 日本美女一区二区三区视频| 中文久久乱码一区二区| 欧美系列日韩一区| 精品午夜久久福利影院| 亚洲黄色性网站| 久久久青草青青国产亚洲免观| 91丨九色丨尤物| 国内精品第一页| 天天综合天天做天天综合| 国产精品视频第一区| 日韩一区二区影院| 91丨九色porny丨蝌蚪| 精品无人区卡一卡二卡三乱码免费卡| 亚洲精品久久久蜜桃| 亚洲精品一区二区在线观看| 日本黄色一区二区| 国产精品系列在线观看| 日韩精品免费专区| 中文字幕亚洲一区二区va在线| 日韩女同互慰一区二区| 91老司机福利 在线| 国产一区二区三区四区五区美女|