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

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

?? objrtfnx.c

?? clips源代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
   /*******************************************************/   /*      "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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费大片在线观看| 午夜精品久久一牛影视| 中文字幕一区在线观看视频| 国产精品青草综合久久久久99| 国产视频在线观看一区二区三区| 中文字幕av资源一区| 亚洲欧美成人一区二区三区| 亚洲不卡在线观看| 成人综合激情网| 欧美日韩视频第一区| 国产欧美视频在线观看| 日韩毛片视频在线看| 蜜臀av性久久久久av蜜臀妖精 | 国产乱对白刺激视频不卡| av电影一区二区| 精品久久国产老人久久综合| 国产精品国产精品国产专区不蜜 | 91精品国产91热久久久做人人| 精品国产一区二区三区忘忧草 | 制服.丝袜.亚洲.中文.综合| 国产精品视频免费看| 三级久久三级久久| 成人av集中营| 国产欧美日韩在线看| 另类中文字幕网| 日韩色在线观看| 日韩av午夜在线观看| 欧美视频一二三区| 亚洲欧美日韩综合aⅴ视频| 国产成人在线免费| 欧美成人a视频| 韩国三级中文字幕hd久久精品| 欧美日韩的一区二区| 亚洲国产精品久久久久婷婷884| www.亚洲国产| 亚洲欧美国产三级| 欧美探花视频资源| 亚洲成人一区二区在线观看| 欧美日韩一区二区三区四区五区| 一区二区三区四区乱视频| 91福利小视频| 久久国产福利国产秒拍| 亚洲国产精品激情在线观看| 成人午夜av在线| 亚洲精品中文在线观看| 欧美日韩国产在线观看| 麻豆一区二区三区| 国产精品理论片在线观看| 欧美日韩视频在线观看一区二区三区| 亚洲中国最大av网站| 欧美日韩国产高清一区二区| 久久精品国产一区二区三| 欧美精品一区男女天堂| 91丨porny丨户外露出| 亚洲成人精品一区| 亚洲大片免费看| 日本一区二区三区dvd视频在线 | 亚洲成人福利片| 在线不卡一区二区| 欧美日韩一区二区在线观看| 国产在线视频精品一区| 精品日韩一区二区三区免费视频| 粉嫩av一区二区三区粉嫩| 国产精品美女久久久久久久| 91国偷自产一区二区开放时间| 日本中文在线一区| 欧美国产亚洲另类动漫| 欧美日韩精品一区视频| 成人午夜短视频| 国内成人精品2018免费看| 亚洲成av人片在www色猫咪| 日韩一区有码在线| 国产欧美精品在线观看| 久久综合国产精品| 精品国产乱码久久久久久牛牛| 91精品国产综合久久久蜜臀图片| av激情亚洲男人天堂| 久久99精品国产| 国产激情一区二区三区| 成人小视频在线| 怡红院av一区二区三区| 久久久综合激的五月天| 亚洲日本在线视频观看| 狠狠色丁香婷婷综合| 国产福利一区二区三区视频在线| 国产在线视频精品一区| 亚洲国产精品久久人人爱蜜臀| 亚洲成人av福利| 麻豆精品精品国产自在97香蕉| 国产精品18久久久久久久久| 99久久精品一区| 欧美日韩午夜在线| 精品日韩在线观看| 一区二区三区欧美亚洲| 性欧美大战久久久久久久久| 秋霞电影一区二区| 99riav久久精品riav| 欧美一区二区三区免费视频| 国产欧美视频在线观看| 视频一区在线播放| 成人av综合在线| 91精品一区二区三区久久久久久| 日本一区二区三区dvd视频在线| 亚洲黄色免费电影| 国产suv一区二区三区88区| 欧美卡1卡2卡| 国产精品毛片久久久久久久| 久久国产福利国产秒拍| 欧美一级久久久| 久久成人免费日本黄色| 欧美精品视频www在线观看| 亚洲一区在线免费观看| 激情五月婷婷综合| 欧美日韩国产在线播放网站| 中文字幕一区在线观看| 韩国女主播成人在线| 欧美日韩中文字幕一区| 依依成人综合视频| gogo大胆日本视频一区| 国产网站一区二区| 国产精品一卡二| 精品久久久久久综合日本欧美 | 久久电影国产免费久久电影| 91精品国产综合久久精品app| 亚洲蜜桃精久久久久久久| 99re这里只有精品6| 亚洲天堂免费看| 91国在线观看| 青青草伊人久久| 2021中文字幕一区亚洲| 福利一区二区在线观看| 国产精品成人免费| 日韩你懂的在线播放| 卡一卡二国产精品| 欧美xxxxx裸体时装秀| 国产福利视频一区二区三区| 国产三级欧美三级| 91在线播放网址| 亚洲自拍偷拍九九九| 色综合久久88色综合天天免费| 亚洲一区免费视频| 久久色在线视频| 91小视频免费观看| 日韩在线一区二区三区| 久久久不卡网国产精品一区| 欧美唯美清纯偷拍| 国产东北露脸精品视频| 亚洲成av人综合在线观看| 久久一夜天堂av一区二区三区| 色偷偷久久一区二区三区| 久久国产精品第一页| 亚洲精品国产一区二区三区四区在线| 欧美群妇大交群中文字幕| 成人亚洲一区二区一| 日韩高清一区在线| 亚洲免费观看高清完整| 亚洲成人一二三| 亚洲女人小视频在线观看| 久久精品亚洲精品国产欧美| 91久久精品网| 国产999精品久久| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲一区二区av电影| 国产免费成人在线视频| 国产三级一区二区三区| 日韩一本二本av| 欧美一区二区国产| 91麻豆精品国产91久久久更新时间 | 久久99日本精品| 亚洲已满18点击进入久久| 亚洲欧洲日韩av| 国产精品污www在线观看| 久久精品免费在线观看| 久久精品亚洲麻豆av一区二区| 精品欧美乱码久久久久久| www亚洲一区| **欧美大码日韩| 一区二区三区丝袜| 亚洲成人黄色小说| 蜜桃av一区二区| 国产成人在线视频播放| 97精品国产露脸对白| 欧美色男人天堂| 久久夜色精品国产噜噜av| 国产精品毛片大码女人| 亚洲国产成人高清精品| 麻豆精品一区二区三区| 成人综合婷婷国产精品久久免费| 一本色道**综合亚洲精品蜜桃冫| 欧美自拍偷拍午夜视频| 欧美一区二区视频网站| 久久九九国产精品| 亚洲一卡二卡三卡四卡无卡久久| 久久99精品久久久久婷婷| 成人黄色av网站在线| 日韩欧美一卡二卡| 亚洲午夜国产一区99re久久| 国产精品亚洲а∨天堂免在线| 欧美日本一区二区三区| 日本一区二区动态图|