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

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

?? router.c

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区免费观看 | av资源网一区| 久久久国产综合精品女国产盗摄| 蜜桃精品视频在线| 欧美大片免费久久精品三p| 久久狠狠亚洲综合| 国产日韩欧美高清在线| av一二三不卡影片| 亚洲亚洲人成综合网络| 欧美一区二区成人6969| 极品少妇xxxx精品少妇偷拍| 国产欧美日本一区视频| 91在线精品一区二区三区| 亚洲国产精品自拍| 欧美成人a∨高清免费观看| 国产精品1区2区3区在线观看| 17c精品麻豆一区二区免费| 欧洲一区二区三区免费视频| 喷水一区二区三区| 久久精品网站免费观看| 色天使色偷偷av一区二区| 午夜精品免费在线观看| 久久夜色精品国产欧美乱极品| 国产福利一区二区三区视频| 亚洲女同女同女同女同女同69| 欧美嫩在线观看| 99久久精品免费看国产| 亚洲国产成人高清精品| 精品国产一区二区精华| 97se亚洲国产综合自在线不卡| 亚洲不卡在线观看| 国产精品入口麻豆九色| 欧美区视频在线观看| 丁香桃色午夜亚洲一区二区三区| 亚洲一区二区三区四区不卡| 亚洲精品一区二区在线观看| 色婷婷av一区二区三区软件| 精品亚洲国产成人av制服丝袜| 亚洲免费在线观看视频| 欧美成人综合网站| 一本色道**综合亚洲精品蜜桃冫| 免费成人在线网站| 亚洲理论在线观看| 中文字幕久久午夜不卡| 欧美精品tushy高清| av电影天堂一区二区在线观看| 日韩电影在线看| 亚洲色欲色欲www| 亚洲精品在线观| 91麻豆精品国产91久久久久久久久 | 日韩免费观看高清完整版| 色综合 综合色| 国产91清纯白嫩初高中在线观看| 日韩国产欧美在线观看| 一区二区视频在线看| 欧美国产欧美综合| 精品日韩在线一区| 欧美一级午夜免费电影| 欧美午夜片在线看| 色综合色综合色综合| 国产又粗又猛又爽又黄91精品| 美女网站一区二区| 欧美精选一区二区| 奇米综合一区二区三区精品视频| 欧美国产日本视频| 91国在线观看| 青青草97国产精品免费观看 | 亚洲电影一级片| 偷拍自拍另类欧美| 亚洲一区免费观看| 337p日本欧洲亚洲大胆色噜噜| 久久精品国产99| 亚洲狠狠丁香婷婷综合久久久| 亚洲与欧洲av电影| 精品影视av免费| 亚洲成人免费观看| 欧美大黄免费观看| 成人一区二区视频| 亚洲老司机在线| 欧美日韩一级视频| 蜜臀av性久久久久av蜜臀妖精| 中文字幕在线不卡一区| 欧美视频自拍偷拍| 成人污污视频在线观看| 亚洲大片在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 久久久久久免费| 精品视频在线视频| 99久久婷婷国产综合精品电影| 成人app在线| 日本亚洲三级在线| 亚洲国产成人av网| 久久久久久综合| 91美女福利视频| 亚洲一区二区三区四区五区黄| 精品国产第一区二区三区观看体验| 一区二区三区中文字幕电影| 亚洲五码中文字幕| 国产精品麻豆网站| 制服丝袜激情欧洲亚洲| 日本伦理一区二区| 91丨九色porny丨蝌蚪| 久久se这里有精品| 亚洲高清不卡在线观看| 亚洲成人免费电影| 日韩美女视频一区| 国产精品伦一区| 久久精品免视看| 亚洲狠狠丁香婷婷综合久久久| 亚洲精品自拍动漫在线| 亚洲第一在线综合网站| 国产成人在线网站| 不卡的av电影| 91在线视频免费91| 一本一道久久a久久精品综合蜜臀| av电影天堂一区二区在线观看| 欧美三级三级三级爽爽爽| 精品少妇一区二区三区在线播放 | 日韩精品自拍偷拍| 国产日韩欧美一区二区三区乱码| 亚洲色图.com| 日韩电影网1区2区| 成人动漫中文字幕| 欧美日韩1区2区| 国产精品国产自产拍在线| 亚洲一卡二卡三卡四卡五卡| 精品一区二区三区在线播放视频 | 日韩电影一二三区| 成人性色生活片| 欧美一级精品在线| 最新欧美精品一区二区三区| 日本成人在线看| 91香蕉视频黄| 久久夜色精品一区| 五月天婷婷综合| 91在线视频观看| 久久网这里都是精品| 亚洲电影一级黄| 91在线视频免费91| 亚洲国产成人一区二区三区| 日韩制服丝袜av| 91丝袜美腿高跟国产极品老师 | 欧美一区二区三区男人的天堂| 中文乱码免费一区二区| 日韩二区在线观看| 在线精品视频免费播放| 欧美激情综合网| 久久99国产精品尤物| 欧美日韩大陆一区二区| 亚洲乱码国产乱码精品精的特点 | 国产美女在线精品| 欧美一区二区三区思思人| 亚洲精品中文字幕乱码三区| 国产999精品久久久久久| 日韩一区二区在线观看| 婷婷开心久久网| 欧美亚洲自拍偷拍| 亚洲欧美激情在线| 成人国产精品免费观看动漫| 久久久综合精品| 国产一区二区美女| 日韩欧美国产一区二区三区| 午夜激情一区二区三区| 欧美日韩一区不卡| 亚洲成av人片在www色猫咪| 欧美优质美女网站| 亚洲日本丝袜连裤袜办公室| 99在线精品观看| 亚洲五月六月丁香激情| 一本色道久久综合亚洲aⅴ蜜桃 | 精品久久五月天| 精品系列免费在线观看| 日韩欧美一区二区三区在线| 视频一区二区国产| 日韩视频在线观看一区二区| 蜜桃av一区二区在线观看| 在线成人免费视频| 日本欧美久久久久免费播放网| 欧美一区二区在线免费观看| 免费观看成人av| 久久综合久久久久88| 国产中文字幕一区| 中文字幕一区二区三区在线不卡 | 一区二区三区视频在线看| 91免费观看视频| 亚洲一区二区三区在线看| 欧美三电影在线| 麻豆国产91在线播放| 精品av久久707| 国产成人在线电影| 中文字幕亚洲不卡| 欧美性感一区二区三区| 日韩专区中文字幕一区二区| 日韩一二三四区| 国内成人免费视频| 亚洲欧美日韩系列| 91精品国产综合久久香蕉麻豆| 经典三级一区二区| 亚洲人快播电影网| 欧美一区二区三区白人|