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

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

?? router.c

?? clips源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
   /*******************************************************/   /*      "C" Language Integrated Production System      */   /*                                                     */   /*             CLIPS Version 6.24  07/01/05            */   /*                                                     */   /*                  I/O ROUTER MODULE                  */   /*******************************************************//*************************************************************//* Purpose: Provides a centralized mechanism for handling    *//*   input and output requests.                              *//*                                                           *//* Principal Programmer(s):                                  *//*      Gary D. Riley                                        *//*                                                           *//* Contributing Programmer(s):                               *//*      Brian L. Donnell                                     *//*                                                           *//* Revision History:                                         *//*      6.24: Removed conversion of '\r' to '\n' from the    *//*            EnvGetcRouter function.                        *//*                                                           *//*            Renamed BOOLEAN macro type to intBool.         *//*                                                           *//*            Added support for passing context information  */ /*            to the router functions.                       *//*                                                           *//*      6.30: Fixed issues with passing context to routers.  *//*                                                           *//*************************************************************/#define _ROUTER_SOURCE_#include <stdio.h>#define _STDIO_INCLUDED_#include <stdlib.h>#include <string.h>#include "setup.h"#include "argacces.h"#include "constant.h"#include "envrnmnt.h"#include "extnfunc.h"#include "filertr.h"#include "memalloc.h"#include "strngrtr.h"#include "sysdep.h"#include "router.h"/***************************************//* LOCAL INTERNAL FUNCTION DEFINITIONS *//***************************************/   static int                     QueryRouter(void *,char *,struct router *);   static void                    DeallocateRouterData(void *);/*********************************************************//* InitializeDefaultRouters: Initializes output streams. *//*********************************************************/globle void InitializeDefaultRouters(  void *theEnv)  {   AllocateEnvironmentData(theEnv,ROUTER_DATA,sizeof(struct routerData),DeallocateRouterData);   RouterData(theEnv)->CommandBufferInputCount = -1;   #if (! RUN_TIME)   EnvDefineFunction2(theEnv,"exit",    'v', PTIEF ExitCommand,    "ExitCommand", "*1i");#endif   InitializeFileRouter(theEnv);   InitializeStringRouter(theEnv);  }  /*************************************************//* DeallocateRouterData: Deallocates environment *//*    data for I/O routers.                      *//*************************************************/static void DeallocateRouterData(  void *theEnv)  {   struct router *tmpPtr, *nextPtr;      tmpPtr = RouterData(theEnv)->ListOfRouters;   while (tmpPtr != NULL)     {      nextPtr = tmpPtr->next;      genfree(theEnv,tmpPtr->name,strlen(tmpPtr->name) + 1);      rtn_struct(theEnv,router,tmpPtr);      tmpPtr = nextPtr;     }  }/*******************************************//* EnvPrintRouter: Generic print function. *//*******************************************/globle int EnvPrintRouter(  void *theEnv,  char *logicalName,  char *str)  {   struct router *currentPtr;   /*===================================================*/   /* If the "fast save" option is being used, then the */   /* logical name is actually a pointer to a file and  */   /* fprintf can be called directly to bypass querying */   /* all of the routers.                               */   /*===================================================*/   if (((char *) RouterData(theEnv)->FastSaveFilePtr) == logicalName)     {      fprintf(RouterData(theEnv)->FastSaveFilePtr,"%s",str);      return(2);     }   /*==============================================*/   /* Search through the list of routers until one */   /* is found that will handle the print request. */   /*==============================================*/   currentPtr = RouterData(theEnv)->ListOfRouters;   while (currentPtr != NULL)     {      if ((currentPtr->printer != NULL) ? QueryRouter(theEnv,logicalName,currentPtr) : FALSE)        {         SetEnvironmentRouterContext(theEnv,currentPtr->context);         if (currentPtr->environmentAware)           { (*currentPtr->printer)(theEnv,logicalName,str); }         else                       { ((int (*)(char *,char *)) (*currentPtr->printer))(logicalName,str); }                  return(1);        }      currentPtr = currentPtr->next;     }   /*=====================================================*/   /* The logical name was not recognized by any routers. */   /*=====================================================*/   if (strcmp(WERROR,logicalName) != 0) UnrecognizedRouterMessage(theEnv,logicalName);   return(0);  }/**************************************************//* EnvGetcRouter: Generic get character function. *//**************************************************/globle int EnvGetcRouter(  void *theEnv,  char *logicalName)  {   struct router *currentPtr;   int inchar;   /*===================================================*/   /* If the "fast load" option is being used, then the */   /* logical name is actually a pointer to a file and  */   /* getc can be called directly to bypass querying    */   /* all of the routers.                               */   /*===================================================*/   if (((char *) RouterData(theEnv)->FastLoadFilePtr) == logicalName)     {      inchar = getc(RouterData(theEnv)->FastLoadFilePtr);      if ((inchar == '\r') || (inchar == '\n'))        {         if (((char *) RouterData(theEnv)->FastLoadFilePtr) == RouterData(theEnv)->LineCountRouter)           { IncrementLineCount(theEnv); }        }      /* if (inchar == '\r') return('\n'); */      return(inchar);     }   /*===============================================*/   /* If the "fast string get" option is being used */   /* for the specified logical name, then bypass   */   /* the router system and extract the character   */   /* directly from the fast get string.            */   /*===============================================*/   if (RouterData(theEnv)->FastCharGetRouter == logicalName)     {      inchar = (unsigned char) RouterData(theEnv)->FastCharGetString[RouterData(theEnv)->FastCharGetIndex];      RouterData(theEnv)->FastCharGetIndex++;      if (inchar == '\0') return(EOF);      if ((inchar == '\r') || (inchar == '\n'))        {         if (RouterData(theEnv)->FastCharGetRouter == RouterData(theEnv)->LineCountRouter)           { IncrementLineCount(theEnv); }        }      /* if (inchar == '\r') return('\n'); */      return(inchar);     }   /*==============================================*/   /* Search through the list of routers until one */   /* is found that will handle the getc request.  */   /*==============================================*/   currentPtr = RouterData(theEnv)->ListOfRouters;   while (currentPtr != NULL)     {      if ((currentPtr->charget != NULL) ? QueryRouter(theEnv,logicalName,currentPtr) : FALSE)        {         SetEnvironmentRouterContext(theEnv,currentPtr->context);         if (currentPtr->environmentAware)           { inchar = (*currentPtr->charget)(theEnv,logicalName); }         else                       { inchar = ((int (*)(char *)) (*currentPtr->charget))(logicalName); }         if ((inchar == '\r') || (inchar == '\n'))           {            if ((RouterData(theEnv)->LineCountRouter != NULL) &&                (strcmp(logicalName,RouterData(theEnv)->LineCountRouter) == 0))              { IncrementLineCount(theEnv); }           }         /* if (inchar == '\r') return('\n'); */         /*         if (inchar != '\b')           { return(inchar); }         */         return(inchar);        }      currentPtr = currentPtr->next;     }   /*=====================================================*/   /* The logical name was not recognized by any routers. */   /*=====================================================*/   UnrecognizedRouterMessage(theEnv,logicalName);   return(-1);  }/******************************************************//* EnvUngetcRouter: Generic unget character function. *//******************************************************/globle int EnvUngetcRouter(  void *theEnv,  int ch,  char *logicalName)  {   struct router *currentPtr;   /*===================================================*/   /* If the "fast load" option is being used, then the */   /* logical name is actually a pointer to a file and  */   /* ungetc can be called directly to bypass querying  */   /* all of the routers.                               */   /*===================================================*/   if (((char *) RouterData(theEnv)->FastLoadFilePtr) == logicalName)     {      if ((ch == '\r') || (ch == '\n'))        {         if (((char *) RouterData(theEnv)->FastLoadFilePtr) == RouterData(theEnv)->LineCountRouter)           { DecrementLineCount(theEnv); }        }      return(ungetc(ch,RouterData(theEnv)->FastLoadFilePtr));     }   /*===============================================*/   /* If the "fast string get" option is being used */   /* for the specified logical name, then bypass   */   /* the router system and unget the character     */   /* directly from the fast get string.            */   /*===============================================*/   if (RouterData(theEnv)->FastCharGetRouter == logicalName)     {      if ((ch == '\r') || (ch == '\n'))        {         if (RouterData(theEnv)->FastCharGetRouter == RouterData(theEnv)->LineCountRouter)           { DecrementLineCount(theEnv); }        }      if (RouterData(theEnv)->FastCharGetIndex > 0) RouterData(theEnv)->FastCharGetIndex--;      return(ch);     }   /*===============================================*/   /* Search through the list of routers until one  */   /* is found that will handle the ungetc request. */   /*===============================================*/   currentPtr = RouterData(theEnv)->ListOfRouters;   while (currentPtr != NULL)     {      if ((currentPtr->charunget != NULL) ? QueryRouter(theEnv,logicalName,currentPtr) : FALSE)        {         if ((ch == '\r') || (ch == '\n'))           {            if ((RouterData(theEnv)->LineCountRouter != NULL) &&                (strcmp(logicalName,RouterData(theEnv)->LineCountRouter) == 0))              { DecrementLineCount(theEnv); }           }                    SetEnvironmentRouterContext(theEnv,currentPtr->context);         if (currentPtr->environmentAware)           { return((*currentPtr->charunget)(theEnv,ch,logicalName)); }         else                       { return(((int (*)(int,char *)) (*currentPtr->charunget))(ch,logicalName)); }        }      currentPtr = currentPtr->next;     }   /*=====================================================*/   /* The logical name was not recognized by any routers. */   /*=====================================================*/   UnrecognizedRouterMessage(theEnv,logicalName);   return(-1);  }/*****************************************************//* ExitCommand: H/L command for exiting the program. *//*****************************************************/globle void ExitCommand(  void *theEnv)  {   int argCnt;   int status;   if ((argCnt = EnvArgCountCheck(theEnv,"exit",NO_MORE_THAN,1)) == -1) return;   if (argCnt == 0)     { EnvExitRouter(theEnv,EXIT_SUCCESS); }   else    {     status = (int) EnvRtnLong(theEnv,1);     if (GetEvaluationError(theEnv)) return;     EnvExitRouter(theEnv,status);    }   return;  }/***********************************************//* EnvExitRouter: Generic exit function. Calls *//*   all of the router exit functions.         *//***********************************************/globle void EnvExitRouter(  void *theEnv,  int num)  {   struct router *currentPtr, *nextPtr;   RouterData(theEnv)->Abort = FALSE;   currentPtr = RouterData(theEnv)->ListOfRouters;   while (currentPtr != NULL)     {      nextPtr = currentPtr->next;      if (currentPtr->active == TRUE)        {          if (currentPtr->exiter != NULL)            {            SetEnvironmentRouterContext(theEnv,currentPtr->context);            if (currentPtr->environmentAware)              { (*currentPtr->exiter)(theEnv,num); }            else                          { ((int (*)(int))(*currentPtr->exiter))(num); }           }        }      currentPtr = nextPtr;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品一区四区| 久久久久久久久久美女| 91精品国产一区二区三区蜜臀| 欧美日韩不卡一区二区| 精品人在线二区三区| 国产精品美日韩| 免费观看在线色综合| 国产日产亚洲精品系列| 国产综合成人久久大片91| 亚洲国产成人精品视频| 亚洲成人免费看| 成人av集中营| 久久品道一品道久久精品| 亚洲国产欧美在线| 色婷婷久久综合| 国产欧美日韩三区| 国内欧美视频一区二区| 欧美喷水一区二区| 亚洲狠狠爱一区二区三区| 波多野结衣91| 国产精品欧美极品| 极品少妇xxxx精品少妇偷拍| 91国产精品成人| 日本一区二区三区dvd视频在线| 午夜精品aaa| 欧美午夜一区二区三区 | 国产精品99久久久久久似苏梦涵| 色爱区综合激月婷婷| 国产欧美一区二区三区网站| 久久国产精品第一页| 91精品国产麻豆国产自产在线| 亚洲人123区| 99久久精品国产一区二区三区| 久久久久一区二区三区四区| 国内精品嫩模私拍在线| www日韩大片| 国产美女精品人人做人人爽| 精品国产免费一区二区三区香蕉| 久久精品二区亚洲w码| 日韩一区二区在线看| 首页国产丝袜综合| 日韩欧美久久一区| 国产在线不卡视频| 国产欧美日韩卡一| 色综合咪咪久久| 亚洲高清一区二区三区| 欧美年轻男男videosbes| 丝袜亚洲另类欧美| 日韩欧美中文字幕一区| 久久se精品一区二区| 国产亚洲美州欧州综合国| 成人h动漫精品一区二区| 国产精品久久看| 欧美在线影院一区二区| 亚洲福利视频三区| 日韩免费一区二区| 国产成人亚洲综合a∨婷婷| 国产日韩成人精品| 91污在线观看| 图片区小说区区亚洲影院| 26uuu国产在线精品一区二区| 成人午夜免费电影| 亚洲国产日产av| 久久久天堂av| 91欧美一区二区| 青青青伊人色综合久久| 久久精品视频免费| 色综合久久天天综合网| 日本在线不卡一区| 国产精品欧美综合在线| 欧美天堂一区二区三区| 理论片日本一区| 亚洲人成网站影音先锋播放| 在线不卡a资源高清| 成人免费av网站| 日韩精品久久理论片| 中文字幕中文乱码欧美一区二区| 欧美巨大另类极品videosbest| 国内精品久久久久影院一蜜桃| 亚洲欧洲综合另类| 精品国产欧美一区二区| 欧洲一区在线电影| 国产伦精品一区二区三区免费迷 | 国产精品久久久久久户外露出 | 欧美精品在欧美一区二区少妇| 福利91精品一区二区三区| 亚洲观看高清完整版在线观看 | 亚洲国产va精品久久久不卡综合| 久久久精品国产免大香伊| 欧美图片一区二区三区| youjizz久久| 国产一区二区三区观看| 亚洲成人av一区二区三区| 国产精品久久久久久久久免费丝袜| 91精品国产乱| 欧美在线免费视屏| av亚洲产国偷v产偷v自拍| 精品伊人久久久久7777人| 亚洲成国产人片在线观看| 国产精品色哟哟网站| 日韩精品一区二区三区三区免费| 日韩一区二区麻豆国产| 色婷婷激情一区二区三区| www.日本不卡| 国产大陆亚洲精品国产| 国产乱子轮精品视频| 久久av老司机精品网站导航| 日本不卡高清视频| 五月天激情综合| 天天综合色天天综合色h| 亚洲在线视频一区| 亚洲福中文字幕伊人影院| 亚洲人成伊人成综合网小说| 亚洲色图制服丝袜| 日韩一区欧美一区| 亚洲猫色日本管| 亚洲激情成人在线| 亚洲成a人片在线不卡一二三区| 亚洲一区免费观看| 亚洲成av人片在www色猫咪| 亚洲国产aⅴ成人精品无吗| 亚洲一区二区三区中文字幕| 性做久久久久久| 日本大胆欧美人术艺术动态| 日韩av中文在线观看| 奇米影视一区二区三区小说| 精品在线播放免费| 国产高清一区日本| 不卡在线观看av| 色素色在线综合| 欧美蜜桃一区二区三区| 日韩一级二级三级精品视频| 久久蜜桃一区二区| 国产精品全国免费观看高清| 亚洲黄色小说网站| 奇米777欧美一区二区| 国产综合久久久久影院| 成人免费视频视频| 91国偷自产一区二区三区观看 | 日本亚洲最大的色成网站www| 美女视频黄频大全不卡视频在线播放 | 欧美浪妇xxxx高跟鞋交| 欧美成人综合网站| 蜜臀久久99精品久久久久久9| 免费观看在线色综合| 国产精品99久久久久久久女警| 成人精品鲁一区一区二区| 色婷婷精品大在线视频| 欧美日本不卡视频| 国产亚洲福利社区一区| 亚洲毛片av在线| 久久精品国产第一区二区三区| 成人深夜福利app| 欧美老肥妇做.爰bbww| 国产亚洲一本大道中文在线| 亚洲久本草在线中文字幕| 免费久久精品视频| 91丨九色丨蝌蚪丨老版| 欧美一二三区在线观看| 自拍偷拍欧美精品| 久久国产精品99久久人人澡| 91啪九色porn原创视频在线观看| 欧美本精品男人aⅴ天堂| 亚洲啪啪综合av一区二区三区| 蜜臀av性久久久久蜜臀aⅴ| 成人国产精品免费网站| 欧美一区二区精美| 亚洲精品伦理在线| 国产精品影音先锋| 欧美一级黄色片| 亚洲精品美腿丝袜| 成人开心网精品视频| 欧美成人精品福利| 午夜一区二区三区在线观看| 国产91精品一区二区麻豆网站| 欧美欧美欧美欧美| 一区二区三区中文在线观看| 国产一区二区成人久久免费影院| 69p69国产精品| 一二三四区精品视频| 床上的激情91.| 久久精品人人做人人爽人人| 免费国产亚洲视频| 欧美一区二区视频在线观看2020| 亚洲精品视频自拍| 色综合 综合色| 中文字幕日韩一区二区| 国产精选一区二区三区| 欧美大片国产精品| 老色鬼精品视频在线观看播放| 欧美裸体一区二区三区| 伊人一区二区三区| 色综合久久久久网| 亚洲精品国久久99热| av日韩在线网站| 亚洲美女屁股眼交3| 97久久久精品综合88久久| 中文字幕乱码一区二区免费| 国产福利一区二区三区视频 | 777亚洲妇女|