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

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

?? objrtfnx.c

?? clips源代碼
?? C
?? 第 1 頁 / 共 4 頁
字號(hào):
   /*******************************************************/   /*      "C" Language Integrated Production System      */   /*                                                     */   /*               CLIPS Version 6.30  10/19/06          */   /*                                                     */   /*    INFERENCE ENGINE OBJECT ACCESS ROUTINES MODULE   */   /*******************************************************//**************************************************************//* Purpose: RETE Network Interface for Objects                *//*                                                            *//* Principal Programmer(s):                                   *//*      Brian L. Donnell                                      *//*                                                            *//* Contributing Programmer(s):                                *//*                                                            *//* Revision History:                                          *//*      6.23: Correction for FalseSymbol/TrueSymbol. DR0859   *//*                                                            *//*      6.24: Converted INSTANCE_PATTERN_MATCHING to          *//*            DEFRULE_CONSTRUCT.                              *//*                                                            *//*            Renamed BOOLEAN macro type to intBool.          *//*                                                            *//*      6.30: Added support for hashed alpha memories.        *//*                                                            *//**************************************************************//* =========================================   *****************************************               EXTERNAL DEFINITIONS   =========================================   ***************************************** */#include "setup.h"#if DEFRULE_CONSTRUCT && OBJECT_SYSTEM#include <stdio.h>#define _STDIO_INCLUDED_#include <string.h>#include "classcom.h"#include "classfun.h"#if DEVELOPER#include "exprnops.h"#endif#if BLOAD || BLOAD_AND_BSAVE#include "bload.h"#endif#include "constant.h"#include "drive.h"#include "engine.h"#include "envrnmnt.h"#include "memalloc.h"#include "multifld.h"#include "objrtmch.h"#include "reteutil.h"#include "router.h"#define _OBJRTFNX_SOURCE_#include "objrtfnx.h"/* =========================================   *****************************************                 MACROS AND TYPES   =========================================   ***************************************** */#define GetInsSlot(ins,si) ins->slotAddresses[ins->cls->slotNameMap[si]-1]/* =========================================   *****************************************      INTERNALLY VISIBLE FUNCTION HEADERS   =========================================   ***************************************** */static void PrintObjectGetVarJN1(void *,char *,void *);static intBool ObjectGetVarJNFunction1(void *,void *,DATA_OBJECT *);static void PrintObjectGetVarJN2(void *,char *,void *);static intBool ObjectGetVarJNFunction2(void *,void *,DATA_OBJECT *);static void PrintObjectGetVarPN1(void *,char *,void *);static intBool ObjectGetVarPNFunction1(void *,void *,DATA_OBJECT *);static void PrintObjectGetVarPN2(void *,char *,void *);static intBool ObjectGetVarPNFunction2(void *,void *,DATA_OBJECT *);static void PrintObjectCmpConstant(void *,char *,void *);static void PrintSlotLengthTest(void *,char *,void *);static intBool SlotLengthTestFunction(void *,void *,DATA_OBJECT *);static void PrintPNSimpleCompareFunction1(void *,char *,void *);static intBool PNSimpleCompareFunction1(void *,void *,DATA_OBJECT *);static void PrintPNSimpleCompareFunction2(void *,char *,void *);static intBool PNSimpleCompareFunction2(void *,void *,DATA_OBJECT *);static void PrintPNSimpleCompareFunction3(void *,char *,void *);static intBool PNSimpleCompareFunction3(void *,void *,DATA_OBJECT *);static void PrintJNSimpleCompareFunction1(void *,char *,void *);static intBool JNSimpleCompareFunction1(void *,void *,DATA_OBJECT *);static void PrintJNSimpleCompareFunction2(void *,char *,void *);static intBool JNSimpleCompareFunction2(void *,void *,DATA_OBJECT *);static void PrintJNSimpleCompareFunction3(void *,char *,void *);static intBool JNSimpleCompareFunction3(void *,void *,DATA_OBJECT *);static void GetPatternObjectAndMarks(void *,int,int,int,INSTANCE_TYPE **,struct multifieldMarker **);static void GetObjectValueGeneral(void *,DATA_OBJECT *,INSTANCE_TYPE *,                                 struct multifieldMarker *,struct ObjectMatchVar1 *);static void GetObjectValueSimple(void *,DATA_OBJECT *,INSTANCE_TYPE *,struct ObjectMatchVar2 *);static long CalculateSlotField(struct multifieldMarker *,INSTANCE_SLOT *,long,long *); /* 6.04 Bug Fix */static void GetInsMultiSlotField(FIELD *,INSTANCE_TYPE *,unsigned,unsigned,unsigned);static void DeallocateObjectReteData(void *);static void DestroyObjectPatternNetwork(void *,OBJECT_PATTERN_NODE *);static void DestroyObjectAlphaNodes(void *,OBJECT_ALPHA_NODE *);/* =========================================   *****************************************          EXTERNALLY VISIBLE FUNCTIONS   =========================================   ***************************************** *//***************************************************  NAME         : InstallObjectPrimitives  DESCRIPTION  : Installs all the entity records                 associated with object pattern                 matching operations  INPUTS       : None  RETURNS      : Nothing useful  SIDE EFFECTS : Primitive operations installed  NOTES        : None ***************************************************/globle void InstallObjectPrimitives(  void *theEnv)  {   struct entityRecord objectGVInfo1 = { "OBJ_GET_SLOT_JNVAR1", OBJ_GET_SLOT_JNVAR1,0,1,0,                                             PrintObjectGetVarJN1,                                             PrintObjectGetVarJN1,NULL,                                             ObjectGetVarJNFunction1,                                             NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL };   struct entityRecord objectGVInfo2 = { "OBJ_GET_SLOT_JNVAR2", OBJ_GET_SLOT_JNVAR2,0,1,0,                                             PrintObjectGetVarJN2,                                             PrintObjectGetVarJN2,NULL,                                             ObjectGetVarJNFunction2,                                             NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL };   struct entityRecord objectGVPNInfo1 = { "OBJ_GET_SLOT_PNVAR1", OBJ_GET_SLOT_PNVAR1,0,1,0,                                               PrintObjectGetVarPN1,                                               PrintObjectGetVarPN1,NULL,                                               ObjectGetVarPNFunction1,                                               NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL };   struct entityRecord objectGVPNInfo2 = { "OBJ_GET_SLOT_PNVAR2", OBJ_GET_SLOT_PNVAR2,0,1,0,                                               PrintObjectGetVarPN2,                                               PrintObjectGetVarPN2,NULL,                                               ObjectGetVarPNFunction2,                                               NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL };   struct entityRecord objectCmpConstantInfo = { "OBJ_PN_CONSTANT", OBJ_PN_CONSTANT,0,1,1,                                                     PrintObjectCmpConstant,                                                     PrintObjectCmpConstant,NULL,                                                     ObjectCmpConstantFunction,                                                     NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL };   struct entityRecord lengthTestInfo = { "OBJ_SLOT_LENGTH", OBJ_SLOT_LENGTH,0,1,0,                                              PrintSlotLengthTest,                                              PrintSlotLengthTest,NULL,                                              SlotLengthTestFunction,                                              NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL };   struct entityRecord pNSimpleCompareInfo1 = { "OBJ_PN_CMP1", OBJ_PN_CMP1,0,1,1,                                                    PrintPNSimpleCompareFunction1,                                                    PrintPNSimpleCompareFunction1,NULL,                                                    PNSimpleCompareFunction1,                                                    NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL };   struct entityRecord pNSimpleCompareInfo2 = { "OBJ_PN_CMP2", OBJ_PN_CMP2,0,1,1,                                                    PrintPNSimpleCompareFunction2,                                                    PrintPNSimpleCompareFunction2,NULL,                                                    PNSimpleCompareFunction2,                                                    NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL };   struct entityRecord pNSimpleCompareInfo3 = { "OBJ_PN_CMP3", OBJ_PN_CMP3,0,1,1,                                                    PrintPNSimpleCompareFunction3,                                                    PrintPNSimpleCompareFunction3,NULL,                                                    PNSimpleCompareFunction3,                                                    NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL };   struct entityRecord jNSimpleCompareInfo1 = { "OBJ_JN_CMP1", OBJ_JN_CMP1,0,1,1,                                                    PrintJNSimpleCompareFunction1,                                                    PrintJNSimpleCompareFunction1,NULL,                                                    JNSimpleCompareFunction1,                                                    NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL };   struct entityRecord jNSimpleCompareInfo2 = { "OBJ_JN_CMP2", OBJ_JN_CMP2,0,1,1,                                                    PrintJNSimpleCompareFunction2,                                                    PrintJNSimpleCompareFunction2,NULL,                                                    JNSimpleCompareFunction2,                                                    NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL };   struct entityRecord jNSimpleCompareInfo3 = { "OBJ_JN_CMP3", OBJ_JN_CMP3,0,1,1,                                                    PrintJNSimpleCompareFunction3,                                                    PrintJNSimpleCompareFunction3,NULL,                                                    JNSimpleCompareFunction3,                                                    NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL };   AllocateEnvironmentData(theEnv,OBJECT_RETE_DATA,sizeof(struct objectReteData),DeallocateObjectReteData);   ObjectReteData(theEnv)->CurrentObjectSlotLength = 1;   memcpy(&ObjectReteData(theEnv)->ObjectGVInfo1,&objectGVInfo1,sizeof(struct entityRecord));     memcpy(&ObjectReteData(theEnv)->ObjectGVInfo2,&objectGVInfo2,sizeof(struct entityRecord));   memcpy(&ObjectReteData(theEnv)->ObjectGVPNInfo1,&objectGVPNInfo1,sizeof(struct entityRecord));   memcpy(&ObjectReteData(theEnv)->ObjectGVPNInfo2,&objectGVPNInfo2,sizeof(struct entityRecord));   memcpy(&ObjectReteData(theEnv)->ObjectCmpConstantInfo,&objectCmpConstantInfo,sizeof(struct entityRecord));    memcpy(&ObjectReteData(theEnv)->LengthTestInfo,&lengthTestInfo,sizeof(struct entityRecord));    memcpy(&ObjectReteData(theEnv)->PNSimpleCompareInfo1,&pNSimpleCompareInfo1,sizeof(struct entityRecord));    memcpy(&ObjectReteData(theEnv)->PNSimpleCompareInfo2,&pNSimpleCompareInfo2,sizeof(struct entityRecord));    memcpy(&ObjectReteData(theEnv)->PNSimpleCompareInfo3,&pNSimpleCompareInfo3,sizeof(struct entityRecord));    memcpy(&ObjectReteData(theEnv)->JNSimpleCompareInfo1,&jNSimpleCompareInfo1,sizeof(struct entityRecord));    memcpy(&ObjectReteData(theEnv)->JNSimpleCompareInfo2,&jNSimpleCompareInfo2,sizeof(struct entityRecord));    memcpy(&ObjectReteData(theEnv)->JNSimpleCompareInfo3,&jNSimpleCompareInfo3,sizeof(struct entityRecord));    InstallPrimitive(theEnv,&ObjectReteData(theEnv)->ObjectGVInfo1,OBJ_GET_SLOT_JNVAR1);   InstallPrimitive(theEnv,&ObjectReteData(theEnv)->ObjectGVInfo2,OBJ_GET_SLOT_JNVAR2);   InstallPrimitive(theEnv,&ObjectReteData(theEnv)->ObjectGVPNInfo1,OBJ_GET_SLOT_PNVAR1);   InstallPrimitive(theEnv,&ObjectReteData(theEnv)->ObjectGVPNInfo2,OBJ_GET_SLOT_PNVAR2);   InstallPrimitive(theEnv,&ObjectReteData(theEnv)->ObjectCmpConstantInfo,OBJ_PN_CONSTANT);   InstallPrimitive(theEnv,&ObjectReteData(theEnv)->LengthTestInfo,OBJ_SLOT_LENGTH);   InstallPrimitive(theEnv,&ObjectReteData(theEnv)->PNSimpleCompareInfo1,OBJ_PN_CMP1);   InstallPrimitive(theEnv,&ObjectReteData(theEnv)->PNSimpleCompareInfo2,OBJ_PN_CMP2);   InstallPrimitive(theEnv,&ObjectReteData(theEnv)->PNSimpleCompareInfo3,OBJ_PN_CMP3);   InstallPrimitive(theEnv,&ObjectReteData(theEnv)->JNSimpleCompareInfo1,OBJ_JN_CMP1);   InstallPrimitive(theEnv,&ObjectReteData(theEnv)->JNSimpleCompareInfo2,OBJ_JN_CMP2);   InstallPrimitive(theEnv,&ObjectReteData(theEnv)->JNSimpleCompareInfo3,OBJ_JN_CMP3);  }  /*****************************************************//* DeallocateObjectReteData: Deallocates environment *//*    data for the object rete network.              *//*****************************************************/static void DeallocateObjectReteData(  void *theEnv)  {   OBJECT_PATTERN_NODE *theNetwork;   #if BLOAD || BLOAD_AND_BSAVE   if (Bloaded(theEnv)) return;#endif      theNetwork = ObjectReteData(theEnv)->ObjectPatternNetworkPointer;   DestroyObjectPatternNetwork(theEnv,theNetwork);  }  /****************************************************************//* DestroyObjectPatternNetwork: Deallocates the data structures *//*   associated with the object pattern network.                *//****************************************************************/static void DestroyObjectPatternNetwork(  void *theEnv,  OBJECT_PATTERN_NODE *thePattern)  {   OBJECT_PATTERN_NODE *patternPtr;      if (thePattern == NULL) return;      while (thePattern != NULL)     {      patternPtr = thePattern->rightNode;            DestroyObjectPatternNetwork(theEnv,thePattern->nextLevel);      DestroyObjectAlphaNodes(theEnv,thePattern->alphaNode);#if ! RUN_TIME            rtn_struct(theEnv,objectPatternNode,thePattern);#endif            thePattern = patternPtr;     }  }  /************************************************************//* DestroyObjectAlphaNodes: Deallocates the data structures *//*   associated with the object alpha nodes.                *//************************************************************/static void DestroyObjectAlphaNodes(  void *theEnv,  OBJECT_ALPHA_NODE *theNode)  {   OBJECT_ALPHA_NODE *nodePtr;      if (theNode == NULL) return;      while (theNode != NULL)     {      nodePtr = theNode->nxtInGroup;             DestroyAlphaMemory(theEnv,&theNode->header,FALSE);#if ! RUN_TIME      rtn_struct(theEnv,objectAlphaNode,theNode);#endif            theNode = nodePtr;     }  }/*****************************************************  NAME         : ObjectCmpConstantFunction  DESCRIPTION  : Used to compare object slot values                 against a constant  INPUTS       : 1) The constant test bitmap                 2) Data object buffer to hold result  RETURNS      : TRUE if test successful,                 FALSE otherwise  SIDE EFFECTS : Buffer set to symbol TRUE if test                 successful, FALSE otherwise  NOTES        : Called directly by                   EvaluatePatternExpression() *****************************************************/globle intBool ObjectCmpConstantFunction(  void *theEnv,  void *theValue,  DATA_OBJECT *theResult)  {   struct ObjectCmpPNConstant *hack;   DATA_OBJECT theVar;   EXPRESSION *constantExp;   int rv;   SEGMENT *theSegment;   hack = (struct ObjectCmpPNConstant *) ValueToBitMap(theValue);   if (hack->general)     {      EvaluateExpression(theEnv,GetFirstArgument(),&theVar);      constantExp = GetFirstArgument()->nextArg;     }   else     {      constantExp = GetFirstArgument();      if (ObjectReteData(theEnv)->CurrentPatternObjectSlot->type == MULTIFIELD)        {         theSegment = (struct multifield *) ObjectReteData(theEnv)->CurrentPatternObjectSlot->value;         if (hack->fromBeginning)           {            theVar.type = theSegment->theFields[hack->offset].type;            theVar.value = theSegment->theFields[hack->offset].value;           }         else

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合偷拍欧美一区色| av中文字幕在线不卡| 亚洲mv在线观看| 亚洲黄一区二区三区| 亚洲天堂成人在线观看| 中文av一区二区| 国产精品精品国产色婷婷| 中文字幕av资源一区| 国产日韩三级在线| 中文子幕无线码一区tr| 国产精品你懂的在线| 一区免费观看视频| 亚洲精品国产精华液| 亚洲一区二区三区中文字幕| 亚洲一二三四久久| 视频在线观看一区二区三区| 免费人成在线不卡| 国产精品996| 成人av网站在线观看| 99久久精品免费观看| 在线精品视频小说1| 欧美日韩一区在线观看| 欧美一区二区性放荡片| 久久综合狠狠综合久久综合88 | 国产精品12区| 国产传媒一区在线| 91麻豆免费视频| 欧美日本乱大交xxxxx| 日韩一级免费一区| 中文字幕欧美区| 亚洲精品自拍动漫在线| 天天色图综合网| 激情亚洲综合在线| 99精品视频在线观看| 精品婷婷伊人一区三区三| 欧美成人一区二区三区在线观看| 久久精品无码一区二区三区| 亚洲精品欧美在线| 久久99蜜桃精品| 99久久免费精品| 91精品国产综合久久精品app| 久久亚洲春色中文字幕久久久| 中文字幕一区二区三区乱码在线 | 艳妇臀荡乳欲伦亚洲一区| 日韩电影在线观看电影| 国产成人三级在线观看| 在线一区二区视频| 精品第一国产综合精品aⅴ| 中文字幕一区在线观看视频| 天堂成人免费av电影一区| 国产一区二区三区美女| 色综合久久精品| 精品国产乱码久久久久久1区2区| 综合分类小说区另类春色亚洲小说欧美 | 欧美一区二区免费观在线| 国产精品女主播在线观看| 丝袜a∨在线一区二区三区不卡| 国产精品77777| 91超碰这里只有精品国产| 国产精品久久久久影院老司| 日本aⅴ免费视频一区二区三区| www.99精品| 亚洲精品一区二区在线观看| 夜夜嗨av一区二区三区四季av| 国产精品一二三区在线| 91精品国产综合久久久久久久| 中文字幕日本乱码精品影院| 精品一区二区三区免费毛片爱| 日本高清不卡在线观看| 欧美国产日韩一二三区| 久久99久久99小草精品免视看| 欧洲一区在线观看| 国产精品久久久久久久久晋中| 美国欧美日韩国产在线播放| 91成人国产精品| 成人欧美一区二区三区黑人麻豆| 久久精品国产一区二区三| 欧美午夜影院一区| 亚洲视频一区在线| 粉嫩久久99精品久久久久久夜| 欧美日本一区二区在线观看| 亚洲精品国产视频| 91在线视频免费91| 国产精品欧美一区喷水| 国产福利一区二区| 久久视频一区二区| 久久国产精品第一页| 91精品国产91久久综合桃花| 性做久久久久久免费观看欧美| 91一区一区三区| 一区免费观看视频| av影院午夜一区| 国产精品久久久爽爽爽麻豆色哟哟| 国产精品一区在线| 精品精品国产高清一毛片一天堂| 日本午夜精品视频在线观看| 欧美精品第一页| 五月综合激情网| 欧美美女直播网站| 午夜精品久久久久久久久| 欧美日韩国产免费| 日韩精品欧美精品| 欧美精品粉嫩高潮一区二区| 亚洲国产精品视频| 在线观看91av| 免费人成精品欧美精品| 日韩欧美一二三区| 国产一区二区网址| 国产情人综合久久777777| 国产91精品一区二区麻豆亚洲| 国产欧美一区二区三区网站| 成人av免费网站| 日韩毛片一二三区| 在线看国产日韩| 偷偷要91色婷婷| 欧美一级xxx| 国产一区二区视频在线| 欧美激情一区二区三区在线| 99久久精品免费看| 亚洲午夜精品在线| 91麻豆精品国产无毒不卡在线观看| 日本不卡高清视频| 久久综合网色—综合色88| 国产激情偷乱视频一区二区三区| 久久伊人中文字幕| av电影在线观看一区| 亚洲一区在线观看免费观看电影高清| 欧美日韩精品免费| 精品一区二区三区视频在线观看| 欧美激情在线免费观看| 91久久精品一区二区三区| 日韩不卡一区二区三区| 久久一留热品黄| 99re这里都是精品| 日韩影院精彩在线| 精品国产1区二区| 99久久精品国产麻豆演员表| 亚洲综合久久av| 精品国产免费视频| 99re成人精品视频| 日本成人在线视频网站| 久久精品亚洲国产奇米99| 色天天综合久久久久综合片| 日本不卡一二三| 国产精品看片你懂得| 欧美精品黑人性xxxx| 福利一区福利二区| 艳妇臀荡乳欲伦亚洲一区| 精品久久久久一区二区国产| 97精品久久久久中文字幕| 蜜臀av一级做a爰片久久| 国产精品久久久久久久久久免费看| 欧美亚洲高清一区| 国产精品1区二区.| 午夜不卡av在线| 中文字幕在线观看一区二区| 欧美精品v国产精品v日韩精品| 粗大黑人巨茎大战欧美成人| 亚洲国产精品久久艾草纯爱| 国产亚洲欧美日韩日本| 欧美嫩在线观看| eeuss鲁一区二区三区| 蜜桃久久精品一区二区| 综合色中文字幕| 久久亚洲综合色| 欧美日韩一区在线| 波多野洁衣一区| 人人爽香蕉精品| 一区二区三区资源| 国产清纯在线一区二区www| 欧美美女一区二区| 一本色道久久综合亚洲精品按摩| 国产一区二区三区在线观看免费 | 国产精品天干天干在观线| 欧美精品久久99| 色噜噜狠狠色综合中国| 国产高清不卡二三区| 美日韩黄色大片| 午夜精品一区二区三区三上悠亚| 中文字幕制服丝袜成人av| 精品久久久三级丝袜| 91精品久久久久久久91蜜桃| 色av一区二区| 99麻豆久久久国产精品免费| 国产精品一品视频| 精品在线亚洲视频| 五月婷婷激情综合| 亚洲免费av高清| 国产精品久久久久国产精品日日| 日韩三级在线免费观看| 欧美日韩国产一区二区三区地区| 一本久道久久综合中文字幕| 成人一区二区三区视频在线观看| 国产一区999| 精品一区二区免费| 蜜臀99久久精品久久久久久软件| 性做久久久久久久免费看| 亚洲福利电影网| 亚洲1区2区3区4区| 亚洲国产综合91精品麻豆|