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

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

?? watch.c

?? clips源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
   /*******************************************************/   /*      "C" Language Integrated Production System      */   /*                                                     */   /*             CLIPS Version 6.24  06/05/06            */   /*                                                     */   /*                    WATCH MODULE                     */   /*******************************************************//*************************************************************//* Purpose: Support functions for the watch and unwatch      *//*   commands.                                               *//*                                                           *//* Principal Programmer(s):                                  *//*      Gary D. Riley                                        *//*                                                           *//* Contributing Programmer(s):                               *//*      Brian Donnell                                        *//*                                                           *//* Revision History:                                         *//*      6.23: Changed name of variable log to logName        *//*            because of Unix compiler warnings of shadowed  *//*            definitions.                                   *//*                                                           *//*      6.24: Renamed BOOLEAN macro type to intBool.         *//*                                                           *//*            Added EnvSetWatchItem function.                *//*                                                           *//*************************************************************/#define _WATCH_SOURCE_#include "setup.h"#if DEBUGGING_FUNCTIONS#include <stdio.h>#define _STDIO_INCLUDED_#include <string.h>#include "constant.h"#include "envrnmnt.h"#include "memalloc.h"#include "router.h"#include "argacces.h"#include "extnfunc.h"#include "watch.h"/***************************************//* LOCAL INTERNAL FUNCTION DEFINITIONS *//***************************************/   static struct watchItem       *ValidWatchItem(void *,char *,int *);   static intBool                 RecognizeWatchRouters(void *,char *);   static int                     CaptureWatchPrints(void *,char *,char *);   static void                    DeallocateWatchData(void *);/**********************************************//* InitializeWatchData: Allocates environment *//*    data for watch items.                   *//**********************************************/globle void InitializeWatchData(  void *theEnv)  {   AllocateEnvironmentData(theEnv,WATCH_DATA,sizeof(struct watchData),DeallocateWatchData);  }  /************************************************//* DeallocateWatchData: Deallocates environment *//*    data for watch items.                     *//************************************************/static void DeallocateWatchData(  void *theEnv)  {   struct watchItem *tmpPtr, *nextPtr;   tmpPtr = WatchData(theEnv)->ListOfWatchItems;   while (tmpPtr != NULL)     {      nextPtr = tmpPtr->next;      rtn_struct(theEnv,watchItem,tmpPtr);      tmpPtr = nextPtr;     }  }/*************************************************************//* AddWatchItem: Adds an item to the list of watchable items *//*   that can be set using the watch and unwatch commands.   *//*   Returns FALSE if the item is already in the list,       *//*   otherwise returns TRUE.                                 *//*************************************************************/globle intBool AddWatchItem(  void *theEnv,  char *name,  int code,  unsigned *flag,  int priority,  unsigned (*accessFunc)(void *,int,unsigned,struct expr *),  unsigned (*printFunc)(void *,char *,int,struct expr *))  {   struct watchItem *newPtr, *currentPtr, *lastPtr;   /*================================================================*/   /* Find the insertion point in the watchable items list to place  */   /* the new item. If the item is already in the list return FALSE. */   /*================================================================*/   for (currentPtr = WatchData(theEnv)->ListOfWatchItems, lastPtr = NULL;        currentPtr != NULL;        currentPtr = currentPtr->next)     {      if (strcmp(currentPtr->name,name) == 0) return(FALSE);      if (priority < currentPtr->priority) lastPtr = currentPtr;     }   /*============================*/   /* Create the new watch item. */   /*============================*/   newPtr = get_struct(theEnv,watchItem);   newPtr->name = name;   newPtr->flag = flag;   newPtr->code = code;   newPtr->priority = priority;   newPtr->accessFunc = accessFunc;   newPtr->printFunc = printFunc;   /*=================================================*/   /* Insert the new item in the list of watch items. */   /*=================================================*/   if (lastPtr == NULL)     {      newPtr->next = WatchData(theEnv)->ListOfWatchItems;      WatchData(theEnv)->ListOfWatchItems = newPtr;     }   else     {      newPtr->next = lastPtr->next;      lastPtr->next = newPtr;     }   /*==================================================*/   /* Return TRUE to indicate the item has been added. */   /*==================================================*/   return(TRUE);  }/*****************************************************//* EnvWatch: C access routine for the watch command. *//*****************************************************/globle intBool EnvWatch(  void *theEnv,  char *itemName)  {   return(EnvSetWatchItem(theEnv,itemName,ON,NULL));  }/*********************************************************//* EnvUnwatch: C access routine for the unwatch command. *//*********************************************************/globle intBool EnvUnwatch(  void *theEnv,  char *itemName)  {   return(EnvSetWatchItem(theEnv,itemName,OFF,NULL));  }/***********************************************************************//* EnvSetWatchItem: Sets the state of a specified watch item to either *//*   on or off. Returns TRUE if the item was set, otherwise FALSE.     *//***********************************************************************/globle int EnvSetWatchItem(  void *theEnv,  char *itemName,  unsigned newState,  struct expr *argExprs)  {   struct watchItem *wPtr;   /*======================================================*/   /* If the new state isn't on or off, then return FALSE. */   /*======================================================*/   if ((newState != ON) && (newState != OFF)) return(FALSE);   /*===================================================*/   /* If the name of the watch item to set is all, then */   /* all watch items are set to the new state and TRUE */   /* is returned.                                      */   /*===================================================*/   if (strcmp(itemName,"all") == 0)     {      for (wPtr = WatchData(theEnv)->ListOfWatchItems; wPtr != NULL; wPtr = wPtr->next)        {         /*==============================================*/         /* If no specific arguments are specified, then */         /* set the global flag for the watch item.      */         /*==============================================*/         if (argExprs == NULL) *(wPtr->flag) = newState;         /*=======================================*/         /* Set flags for individual watch items. */         /*=======================================*/         if ((wPtr->accessFunc == NULL) ? FALSE :             ((*wPtr->accessFunc)(theEnv,wPtr->code,newState,argExprs) == FALSE))           {            SetEvaluationError(theEnv,TRUE);            return(FALSE);           }        }      return(TRUE);     }   /*=================================================*/   /* Search for the watch item to be set in the list */   /* of watch items. If found, set the watch item to */   /* its new state and return TRUE.                  */   /*=================================================*/   for (wPtr = WatchData(theEnv)->ListOfWatchItems; wPtr != NULL; wPtr = wPtr->next)     {      if (strcmp(itemName,wPtr->name) == 0)        {         /*==============================================*/         /* If no specific arguments are specified, then */         /* set the global flag for the watch item.      */         /*==============================================*/         if (argExprs == NULL) *(wPtr->flag) = newState;         /*=======================================*/         /* Set flags for individual watch items. */         /*=======================================*/         if ((wPtr->accessFunc == NULL) ? FALSE :             ((*wPtr->accessFunc)(theEnv,wPtr->code,newState,argExprs) == FALSE))           {            SetEvaluationError(theEnv,TRUE);            return(FALSE);           }         return(TRUE);        }     }   /*=================================================*/   /* If the specified item was not found in the list */   /* of watchable items then return FALSE.           */   /*=================================================*/   return(FALSE);  }/******************************************************************//* EnvGetWatchItem: Gets the current state of the specified watch *//*   item. Returns the state of the watch item (0 for off and 1   *//*   for on) if the watch item is found in the list of watch      *//*   items, otherwise -1 is returned.                             *//******************************************************************/globle int EnvGetWatchItem(  void *theEnv,  char *itemName)  {   struct watchItem *wPtr;   for (wPtr = WatchData(theEnv)->ListOfWatchItems; wPtr != NULL; wPtr = wPtr->next)     {       if (strcmp(itemName,wPtr->name) == 0)         { return((int) *(wPtr->flag)); }     }   return(-1);  }/****************************************************************//* ValidWatchItem: Returns TRUE if the specified name is found  *//*   in the list of watch items, otherwise returns FALSE.       *//****************************************************************/static struct watchItem *ValidWatchItem(  void *theEnv,  char *itemName,  int *recognized)  {   struct watchItem *wPtr;   *recognized = TRUE;   if (strcmp(itemName,"all") == 0)     return(NULL);   for (wPtr = WatchData(theEnv)->ListOfWatchItems; wPtr != NULL; wPtr = wPtr->next)     { if (strcmp(itemName,wPtr->name) == 0) return(wPtr); }   *recognized = FALSE;   return(NULL);  }/*************************************************************//* GetNthWatchName: Returns the name associated with the nth *//*   item in the list of watchable items. If the nth item    *//*   does not exist, then NULL is returned.                  */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成年人网站在线观看| 国产亚洲1区2区3区| 一区二区三区国产豹纹内裤在线| 国产高清不卡一区| 中文字幕欧美国产| 91麻豆成人久久精品二区三区| 国产精品国产精品国产专区不蜜| 99视频国产精品| 亚洲五月六月丁香激情| 91精品福利在线一区二区三区| 日韩av一区二区三区四区| 日韩一级欧美一级| 国产精品中文字幕欧美| 亚洲天堂网中文字| 在线91免费看| 国产一区视频在线看| 欧美国产欧美综合| 欧美亚洲综合在线| 久久国产精品99久久人人澡| 国产欧美日韩精品在线| 色综合久久久久综合体桃花网| 亚洲国产视频a| 日韩欧美专区在线| 成人黄页毛片网站| 首页亚洲欧美制服丝腿| 久久精品人人做人人爽人人| 色诱亚洲精品久久久久久| 午夜激情一区二区| 国产日韩欧美一区二区三区综合 | 日韩有码一区二区三区| 精品成人一区二区| 色吊一区二区三区 | 久久精品国产久精国产| 国产三级三级三级精品8ⅰ区| 99国产麻豆精品| 全国精品久久少妇| 一色桃子久久精品亚洲| 欧美日韩激情一区二区三区| 国产精品99久久久| 亚洲成av人影院| 久久久久97国产精华液好用吗| 在线免费不卡视频| 国产麻豆精品theporn| 一区二区三区在线视频观看| 精品国产伦一区二区三区观看体验 | 国产欧美一区二区三区沐欲| 欧美日韩在线观看一区二区 | 成人免费av资源| 久久99精品一区二区三区| 一区二区三区在线不卡| 久久色成人在线| 欧美猛男男办公室激情| 色综合av在线| www.亚洲激情.com| 国产成人精品亚洲午夜麻豆| 青椒成人免费视频| 亚洲一区中文在线| 中文字幕一区三区| 国产欧美日韩麻豆91| 精品国产乱码久久久久久牛牛| 精品视频一区二区三区免费| 色丁香久综合在线久综合在线观看| 高清不卡在线观看| 国产真实乱对白精彩久久| 日精品一区二区| 亚洲国产一区视频| 亚洲免费在线视频| 亚洲欧洲日本在线| 国产精品久久综合| 亚洲国产岛国毛片在线| 欧美国产综合一区二区| 久久久国产午夜精品| 久久综合狠狠综合久久综合88 | 中文字幕第一区第二区| 2014亚洲片线观看视频免费| 日韩精品一区二区在线| 日韩欧美一二区| 日韩视频免费观看高清完整版| 欧美日韩国产综合视频在线观看| 精品视频色一区| 欧美福利电影网| 91精品国产色综合久久不卡电影| 欧美日韩国产中文| 欧美疯狂做受xxxx富婆| 日韩一区二区精品葵司在线 | 国产成人啪免费观看软件| 激情国产一区二区| 成人网在线播放| 91影院在线免费观看| 欧美性一区二区| 欧美一卡二卡三卡| 精品国产sm最大网站免费看| 精品国产乱码久久久久久久久| 久久奇米777| 中文字幕国产一区| 亚洲精选免费视频| 日韩国产精品久久| 国产福利一区二区| 91丨porny丨最新| 欧美日韩免费电影| 久久久午夜精品| 日韩伦理免费电影| 五月综合激情日本mⅴ| 久久av资源站| 99久久久免费精品国产一区二区| 日本道免费精品一区二区三区| 欧美三级日韩在线| 精品国产自在久精品国产| 国产精品污网站| 亚洲国产欧美另类丝袜| 免费观看在线色综合| 国产成人免费在线视频| 欧美伊人久久久久久久久影院| 日韩午夜在线影院| 国产精品网友自拍| 天天色图综合网| 国产成人激情av| 欧美日韩美少妇| 中文字幕精品在线不卡| 午夜精品视频在线观看| 国产精品66部| 欧美理论电影在线| 国产日韩亚洲欧美综合| 婷婷久久综合九色国产成人| 国产成人精品一区二| 欧美精品在线一区二区三区| 国产亚洲一区二区在线观看| 一区二区三区鲁丝不卡| 国产自产2019最新不卡| 欧美吞精做爰啪啪高潮| 中文字幕av一区二区三区免费看 | 99re亚洲国产精品| 精品国产1区二区| 亚洲国产成人精品视频| 成人午夜在线播放| 欧美成人精品1314www| 一区二区三区在线观看视频| 国产99精品视频| 日韩欧美123| 亚洲成人一区在线| 99久久综合精品| 精品不卡在线视频| 日本视频免费一区| 日本韩国欧美三级| 国产精品久久久久久福利一牛影视| 捆绑紧缚一区二区三区视频| 欧美三级欧美一级| 一区二区在线电影| 91热门视频在线观看| 国产人成亚洲第一网站在线播放 | 国内成人免费视频| 91精品国产综合久久精品| 亚洲男人的天堂一区二区| 从欧美一区二区三区| 久久久国产精品麻豆| 精一区二区三区| 精品少妇一区二区三区日产乱码| 亚洲va国产天堂va久久en| 色婷婷av一区二区三区软件| 亚洲欧洲色图综合| 成人免费黄色在线| 国产精品久久久久天堂| 国产69精品久久99不卡| 久久奇米777| 懂色av一区二区三区免费观看 | 成人免费的视频| 国产欧美日韩一区二区三区在线观看 | 国产乱码字幕精品高清av| 欧美电影免费观看高清完整版在| 首页国产丝袜综合| 欧美一区二区三区的| 丝袜美腿亚洲综合| 6080国产精品一区二区| 视频一区在线播放| 欧美一级午夜免费电影| 奇米777欧美一区二区| 欧美一区二区三区在线视频| 美国毛片一区二区| 欧美精品一区二区三区蜜桃| 国产精品66部| 国产精品不卡视频| 色哟哟在线观看一区二区三区| 亚洲蜜臀av乱码久久精品蜜桃| 欧美亚洲国产一区在线观看网站| 午夜视频久久久久久| 日韩精品一区二区在线观看| 国产精品一线二线三线精华| 国产精品久久久久婷婷| 欧亚一区二区三区| 日韩国产欧美三级| 国产色爱av资源综合区| gogo大胆日本视频一区| 亚洲精品成人a在线观看| 91麻豆精品国产91久久久资源速度| 麻豆精品国产传媒mv男同| 国产欧美中文在线| 欧美撒尿777hd撒尿| 韩国女主播成人在线| 亚洲欧美日韩综合aⅴ视频| 欧美性大战久久久久久久|