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

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

?? tmpltdef.c

?? clips源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
   /*******************************************************/   /*      "C" Language Integrated Production System      */   /*                                                     */   /*             CLIPS Version 6.24  06/05/06            */   /*                                                     */   /*                 DEFTEMPLATE MODULE                  */   /*******************************************************//*************************************************************//* Purpose: Defines basic deftemplate primitive functions    *//*   such as allocating and deallocating, traversing, and    *//*   finding deftemplate data structures.                    *//*                                                           *//* Principal Programmer(s):                                  *//*      Gary D. Riley                                        *//*                                                           *//* Contributing Programmer(s):                               *//*      Brian L. Donnell                                     *//*                                                           *//* Revision History:                                         *//*      6.23: Added support for templates maintaining their  *//*            own list of facts.                             *//*                                                           *//*      6.24: Renamed BOOLEAN macro type to intBool.         *//*                                                           *//*            Corrected code to remove run-time program      *//*            compiler warnings.                             *//*                                                           *//*************************************************************/#define _TMPLTDEF_SOURCE_#include "setup.h"#if DEFTEMPLATE_CONSTRUCT#include <stdio.h>#define _STDIO_INCLUDED_#include "memalloc.h"#include "exprnops.h"#include "cstrccom.h"#include "network.h"#include "tmpltpsr.h"#include "tmpltbsc.h"#include "tmpltutl.h"#include "tmpltfun.h"#include "router.h"#include "modulpsr.h"#include "modulutl.h"#include "cstrnchk.h"#include "envrnmnt.h"#if BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE#include "bload.h"#include "tmpltbin.h"#endif#if CONSTRUCT_COMPILER && (! RUN_TIME)#include "tmpltcmp.h"#endif#include "tmpltdef.h"/***************************************//* LOCAL INTERNAL FUNCTION DEFINITIONS *//***************************************/   static void                   *AllocateModule(void *);   static void                    ReturnModule(void *,void *);   static void                    ReturnDeftemplate(void *,void *);   static void                    InitializeDeftemplateModules(void *);   static void                    DeallocateDeftemplateData(void *);   static void                    DestroyDeftemplateAction(void *,struct constructHeader *,void *);   static void                    DestroyDeftemplate(void *,void *);#if RUN_TIME   static void                    RuntimeDeftemplateAction(void *,struct constructHeader *,void *);   static void                    SearchForHashedPatternNodes(void *,struct factPatternNode *);#endif/******************************************************************//* InitializeDeftemplates: Initializes the deftemplate construct. *//******************************************************************/globle void InitializeDeftemplates(  void *theEnv)  {   globle struct entityRecord deftemplatePtrRecord = { "DEFTEMPLATE_PTR",                                                           DEFTEMPLATE_PTR,1,0,0,                                                           NULL,                                                           NULL,NULL,                                                           NULL,                                                           NULL,                                                           DecrementDeftemplateBusyCount,                                                           IncrementDeftemplateBusyCount,                                                           NULL,NULL,NULL,NULL,NULL };   AllocateEnvironmentData(theEnv,DEFTEMPLATE_DATA,sizeof(struct deftemplateData),DeallocateDeftemplateData);   memcpy(&DeftemplateData(theEnv)->DeftemplatePtrRecord,&deftemplatePtrRecord,sizeof(struct entityRecord));      InitializeFacts(theEnv);   InitializeDeftemplateModules(theEnv);   DeftemplateBasicCommands(theEnv);   DeftemplateFunctions(theEnv);   DeftemplateData(theEnv)->DeftemplateConstruct =      AddConstruct(theEnv,"deftemplate","deftemplates",ParseDeftemplate,EnvFindDeftemplate,                   GetConstructNamePointer,GetConstructPPForm,                   GetConstructModuleItem,EnvGetNextDeftemplate,SetNextConstruct,                   EnvIsDeftemplateDeletable,EnvUndeftemplate,ReturnDeftemplate);   InstallPrimitive(theEnv,(ENTITY_RECORD_PTR) &DeftemplateData(theEnv)->DeftemplatePtrRecord,DEFTEMPLATE_PTR);  }  /******************************************************//* DeallocateDeftemplateData: Deallocates environment *//*    data for the deftemplate construct.             *//******************************************************/static void DeallocateDeftemplateData(  void *theEnv)  {#if ! RUN_TIME   struct deftemplateModule *theModuleItem;   void *theModule;#endif#if BLOAD || BLOAD_AND_BSAVE   if (Bloaded(theEnv)) return;#endif   DoForAllConstructs(theEnv,DestroyDeftemplateAction,DeftemplateData(theEnv)->DeftemplateModuleIndex,FALSE,NULL); #if ! RUN_TIME   for (theModule = EnvGetNextDefmodule(theEnv,NULL);        theModule != NULL;        theModule = EnvGetNextDefmodule(theEnv,theModule))     {      theModuleItem = (struct deftemplateModule *)                      GetModuleItem(theEnv,(struct defmodule *) theModule,                                    DeftemplateData(theEnv)->DeftemplateModuleIndex);      rtn_struct(theEnv,deftemplateModule,theModuleItem);     }#endif  }  /*****************************************************//* DestroyDeftemplateAction: Action used to remove   *//*   deftemplates as a result of DestroyEnvironment. *//*****************************************************/#if IBM_TBC#pragma argsused#endifstatic void DestroyDeftemplateAction(  void *theEnv,  struct constructHeader *theConstruct,  void *buffer)  {#if MAC_MCW || IBM_MCW || MAC_XCD#pragma unused(buffer)#endif   struct deftemplate *theDeftemplate = (struct deftemplate *) theConstruct;      if (theDeftemplate == NULL) return;      DestroyDeftemplate(theEnv,theDeftemplate);  }/*************************************************************//* InitializeDeftemplateModules: Initializes the deftemplate *//*   construct for use with the defmodule construct.         *//*************************************************************/static void InitializeDeftemplateModules(  void *theEnv)  {   DeftemplateData(theEnv)->DeftemplateModuleIndex = RegisterModuleItem(theEnv,"deftemplate",                                    AllocateModule,                                    ReturnModule,#if BLOAD_AND_BSAVE || BLOAD || BLOAD_ONLY                                    BloadDeftemplateModuleReference,#else                                    NULL,#endif#if CONSTRUCT_COMPILER && (! RUN_TIME)                                    DeftemplateCModuleReference,#else                                    NULL,#endif                                    EnvFindDeftemplate);#if (! BLOAD_ONLY) && (! RUN_TIME) && DEFMODULE_CONSTRUCT   AddPortConstructItem(theEnv,"deftemplate",SYMBOL);#endif  }/***************************************************//* AllocateModule: Allocates a deftemplate module. *//***************************************************/static void *AllocateModule(  void *theEnv)  {       return((void *) get_struct(theEnv,deftemplateModule));   }/*************************************************//* ReturnModule: Deallocates a deftemplate module. *//*************************************************/static void ReturnModule(  void *theEnv,  void *theItem)  {      FreeConstructHeaderModule(theEnv,(struct defmoduleItemHeader *) theItem,DeftemplateData(theEnv)->DeftemplateConstruct);   rtn_struct(theEnv,deftemplateModule,theItem);  }/****************************************************************//* GetDeftemplateModuleItem: Returns a pointer to the defmodule *//*  item for the specified deftemplate or defmodule.            *//****************************************************************/globle struct deftemplateModule *GetDeftemplateModuleItem(  void *theEnv,  struct defmodule *theModule)  {      return((struct deftemplateModule *) GetConstructModuleItemByIndex(theEnv,theModule,DeftemplateData(theEnv)->DeftemplateModuleIndex));   }/*****************************************************//* EnvFindDeftemplate: Searches for a deftemplate in *//*   the list of deftemplates. Returns a pointer to  *//*   the deftemplate if  found, otherwise NULL.      *//*****************************************************/globle void *EnvFindDeftemplate(  void *theEnv,  char *deftemplateName)  {     return(FindNamedConstruct(theEnv,deftemplateName,DeftemplateData(theEnv)->DeftemplateConstruct));   }/***********************************************************************//* EnvGetNextDeftemplate: If passed a NULL pointer, returns the first  *//*   deftemplate in the ListOfDeftemplates. Otherwise returns the next *//*   deftemplate following the deftemplate passed as an argument.      *//***********************************************************************/globle void *EnvGetNextDeftemplate(  void *theEnv,  void *deftemplatePtr)  {      return((void *) GetNextConstructItem(theEnv,(struct constructHeader *) deftemplatePtr,DeftemplateData(theEnv)->DeftemplateModuleIndex));   }/***********************************************************//* EnvIsDeftemplateDeletable: Returns TRUE if a particular *//*   deftemplate can be deleted, otherwise returns FALSE.  *//***********************************************************/globle intBool EnvIsDeftemplateDeletable(  void *theEnv,  void *vTheDeftemplate)  {   struct deftemplate *theDeftemplate = (struct deftemplate *) vTheDeftemplate;   if (! ConstructsDeletable(theEnv))     { return FALSE; }   if (theDeftemplate->busyCount > 0) return(FALSE);   if (theDeftemplate->patternNetwork != NULL) return(FALSE);   return(TRUE);  }/**************************************************************//* ReturnDeftemplate: Returns the data structures associated  *//*   with a deftemplate construct to the pool of free memory. *//**************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一二一区| 日本亚洲欧美天堂免费| 国产福利精品导航| 黄色日韩网站视频| 蜜臀av性久久久久蜜臀aⅴ| 波多野结衣中文字幕一区| 亚洲精品欧美综合四区| 欧美浪妇xxxx高跟鞋交| 日韩专区欧美专区| 国产精品每日更新| 成人午夜av影视| 亚洲精品菠萝久久久久久久| 欧美日韩午夜影院| 激情综合网最新| 国产日韩欧美亚洲| 在线观看日韩电影| 欧美性videosxxxxx| 51午夜精品国产| 国产精品久久久久久久久免费相片| 国产精品污污网站在线观看 | 国产一区二区三区电影在线观看| 捆绑紧缚一区二区三区视频| 成人国产精品视频| 欧美天堂亚洲电影院在线播放| 337p亚洲精品色噜噜| 国产精品理论片| 国产一区二区三区四| 色婷婷综合久久久久中文一区二区| 日韩三级视频在线观看| 国产精品久久久久久福利一牛影视 | 亚洲天堂福利av| 蜜臀a∨国产成人精品| 在线观看视频91| 136国产福利精品导航| 国产精品一区二区在线观看网站 | 一区二区三区不卡视频在线观看| 日本成人在线看| 麻豆极品一区二区三区| 国产精品卡一卡二| 亚洲一区二区三区四区在线观看 | 成人app软件下载大全免费| 亚洲免费观看在线观看| 天堂久久一区二区三区| 色综合视频在线观看| 青娱乐精品在线视频| 五月天婷婷综合| 久久久精品黄色| 91精品国产欧美一区二区成人| 不卡一二三区首页| 国产一区二区三区不卡在线观看 | 国产大陆a不卡| 国产清纯白嫩初高生在线观看91| 久久成人精品无人区| 精品裸体舞一区二区三区| 亚洲国产一区二区a毛片| 色域天天综合网| 亚洲综合一区二区精品导航| 欧美主播一区二区三区美女| 日韩精品亚洲一区二区三区免费| 91精品国产综合久久香蕉的特点| 亚洲国产va精品久久久不卡综合| 欧美一区二区三区系列电影| 国产一区二区电影| 亚洲天堂福利av| 欧美电影免费提供在线观看| 国产成人在线视频网址| 亚洲色图视频免费播放| 欧美一区二区精品| 99v久久综合狠狠综合久久| 丝袜美腿亚洲一区| 国产精品素人视频| 欧美高清你懂得| 精品一区二区三区av| 日本美女视频一区二区| 91精品国产91久久综合桃花| 成人app下载| 亚洲欧美韩国综合色| 精品国一区二区三区| 日本vs亚洲vs韩国一区三区二区 | 国产高清精品在线| 奇米影视一区二区三区| 青娱乐精品在线视频| 日韩高清一区二区| 蜜桃一区二区三区在线| 美女视频黄a大片欧美| 国产aⅴ综合色| 国产98色在线|日韩| 国产成人综合精品三级| 成人在线一区二区三区| 国产91精品一区二区麻豆亚洲| 亚洲人成精品久久久久| 久久精品一区二区三区不卡| 日韩三级免费观看| 日韩亚洲欧美一区| 欧美精品在线一区二区| 99久久精品费精品国产一区二区| 精品一区二区三区免费视频| 久久精品欧美一区二区三区不卡| 欧美日韩亚洲高清一区二区| 在线精品视频小说1| 欧美va日韩va| 国产麻豆视频一区| 欧美久久一二区| 色综合天天综合狠狠| 91国产丝袜在线播放| 日韩视频一区在线观看| 久久久久久久久久久久久女国产乱| 亚洲国产精品激情在线观看| 一区二区三区在线影院| 日本不卡一区二区| 懂色av一区二区三区免费看| 欧美影视一区在线| 精品国产成人在线影院| 国产精品成人网| 日韩精彩视频在线观看| 懂色一区二区三区免费观看| 欧美综合久久久| 久久免费视频一区| 一区二区三区在线免费播放| 美脚の诱脚舐め脚责91| 91在线视频免费91| 777精品伊人久久久久大香线蕉| 国产欧美va欧美不卡在线| 亚洲一区二区在线视频| 韩国理伦片一区二区三区在线播放 | 亚洲摸摸操操av| 另类中文字幕网| 色哟哟欧美精品| 久久综合久色欧美综合狠狠| 亚洲综合成人网| 国产一区二区剧情av在线| 欧美在线影院一区二区| 久久久久久麻豆| 奇米在线7777在线精品| 91女神在线视频| 久久久久久黄色| 日本不卡的三区四区五区| 色综合久久综合网| 欧美国产精品专区| 黄色成人免费在线| 欧美精品一卡二卡| 一区二区三区四区在线免费观看 | 久久成人免费日本黄色| 91国产丝袜在线播放| 亚洲国产精品成人综合| 丝袜诱惑制服诱惑色一区在线观看| 在线91免费看| 18欧美乱大交hd1984| 国产毛片一区二区| 欧美一区二区三区在线视频| 樱花影视一区二区| 99国产精品久久| 中文字幕在线观看一区| 国产成人a级片| 欧美成人三级电影在线| 日韩综合一区二区| 精品视频在线免费看| 亚洲一区在线电影| 日本乱码高清不卡字幕| 92国产精品观看| 18涩涩午夜精品.www| 欧美日韩精品一区二区三区| 亚洲午夜在线视频| 欧美一区二区三区成人| 精品一区二区三区在线观看| 一区二区三区欧美日| 欧美三片在线视频观看| 青青草成人在线观看| 欧美极品xxx| 欧美女孩性生活视频| 国产精品一二三四| 一区二区三区视频在线观看| 欧美一区二区三区色| 国产精品一二三区| 首页亚洲欧美制服丝腿| 欧美大片日本大片免费观看| 91一区二区在线| 国产真实乱对白精彩久久| 亚洲成人免费观看| 中文字幕av资源一区| 国产精品久久久久久久久免费丝袜| 国产传媒久久文化传媒| 亚洲国产精品人人做人人爽| 中文字幕一区二区三区不卡| 久久久久亚洲综合| 久久嫩草精品久久久久| 在线视频一区二区三区| 国产酒店精品激情| 亚洲视频每日更新| 久久精品亚洲国产奇米99| 在线观看亚洲精品| 成人久久视频在线观看| 欧美视频一区二区| 亚洲一区二区三区自拍| 91啪在线观看| 国产网站一区二区三区| 国产自产高清不卡| 亚洲欧美日韩在线播放| 在线播放91灌醉迷j高跟美女| 狠狠网亚洲精品|