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

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

?? tmpltutl.c

?? clips源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
   /*******************************************************/   /*      "C" Language Integrated Production System      */   /*                                                     */   /*             CLIPS Version 6.24  06/05/06            */   /*                                                     */   /*            DEFTEMPLATE UTILITIES MODULE             */   /*******************************************************//*************************************************************//* Purpose: Provides utility routines for deftemplates.      *//*                                                           *//* 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.         *//*                                                           *//*            Added additional arguments to                  *//*            InvalidDeftemplateSlotMessage function.        *//*                                                           *//*            Added additional arguments to                  *//*            PrintTemplateFact function.                    *//*                                                           *//*************************************************************/#define  _TMPLTUTL_SOURCE_#include "setup.h"#if DEFTEMPLATE_CONSTRUCT#include <stdio.h>#define _STDIO_INCLUDED_#include <string.h>#include "extnfunc.h"#include "memalloc.h"#include "constrct.h"#include "router.h"#include "argacces.h"#include "cstrnchk.h"#include "envrnmnt.h"#include "tmpltfun.h"#include "tmpltpsr.h"#include "modulutl.h"#include "watch.h"#include "sysdep.h"#include "tmpltbsc.h"#include "tmpltdef.h"#include "tmpltutl.h"/********************************************************//* InvalidDeftemplateSlotMessage: Generic error message *//*   for use when a specified slot name isn't defined   *//*   in its corresponding deftemplate.                  *//********************************************************/globle void InvalidDeftemplateSlotMessage(  void *theEnv,  char *slotName,  char *deftemplateName,  int printCR)  {   PrintErrorID(theEnv,"TMPLTDEF",1,printCR);   EnvPrintRouter(theEnv,WERROR,"Invalid slot ");   EnvPrintRouter(theEnv,WERROR,slotName);   EnvPrintRouter(theEnv,WERROR," not defined in corresponding deftemplate ");   EnvPrintRouter(theEnv,WERROR,deftemplateName);   EnvPrintRouter(theEnv,WERROR,".\n");  }/**********************************************************//* SingleFieldSlotCardinalityError: Generic error message *//*   used when an attempt is made to placed a multifield  *//*   value into a single field slot.                      *//**********************************************************/globle void SingleFieldSlotCardinalityError(  void *theEnv,  char *slotName)  {   PrintErrorID(theEnv,"TMPLTDEF",2,TRUE);   EnvPrintRouter(theEnv,WERROR,"The single field slot ");   EnvPrintRouter(theEnv,WERROR,slotName);   EnvPrintRouter(theEnv,WERROR," can only contain a single field value.\n");  }/**********************************************************************//* MultiIntoSingleFieldSlotError: Determines if a multifield value is *//*   being placed into a single field slot of a deftemplate fact.     *//**********************************************************************/globle void MultiIntoSingleFieldSlotError(  void *theEnv,  struct templateSlot *theSlot,  struct deftemplate *theDeftemplate)  {   PrintErrorID(theEnv,"TMPLTFUN",2,TRUE);   EnvPrintRouter(theEnv,WERROR,"Attempted to assert a multifield value \n");   EnvPrintRouter(theEnv,WERROR,"into the single field slot ");   if (theSlot != NULL) EnvPrintRouter(theEnv,WERROR,theSlot->slotName->contents);   else EnvPrintRouter(theEnv,WERROR,"<<unknown>>");   EnvPrintRouter(theEnv,WERROR," of deftemplate ");   if (theDeftemplate != NULL) EnvPrintRouter(theEnv,WERROR,theDeftemplate->header.name->contents);   else EnvPrintRouter(theEnv,WERROR,"<<unknown>>");   EnvPrintRouter(theEnv,WERROR,".\n");   SetEvaluationError(theEnv,TRUE);  }/**************************************************************//* CheckTemplateFact: Checks a fact to see if it violates any *//*   deftemplate type, allowed-..., or range specifications.  *//**************************************************************/globle void CheckTemplateFact(  void *theEnv,  struct fact *theFact)  {   struct field *sublist;   int i;   struct deftemplate *theDeftemplate;   struct templateSlot *slotPtr;   DATA_OBJECT theData;   char thePlace[20];   int rv;   if (! EnvGetDynamicConstraintChecking(theEnv)) return;   sublist = theFact->theProposition.theFields;   /*========================================================*/   /* If the deftemplate corresponding to the first field of */   /* of the fact cannot be found, then the fact cannot be   */   /* checked against the deftemplate format.                */   /*========================================================*/   theDeftemplate = theFact->whichDeftemplate;   if (theDeftemplate == NULL) return;   if (theDeftemplate->implied) return;   /*=============================================*/   /* Check each of the slots of the deftemplate. */   /*=============================================*/   i = 0;   for (slotPtr = theDeftemplate->slotList;        slotPtr != NULL;        slotPtr = slotPtr->next)     {      /*================================================*/      /* Store the slot value in the appropriate format */      /* for a call to the constraint checking routine. */      /*================================================*/      if (slotPtr->multislot == FALSE)        {         theData.type = sublist[i].type;         theData.value = sublist[i].value;         i++;        }      else        {         theData.type = MULTIFIELD;         theData.value = (void *) sublist[i].value;         SetDOBegin(theData,1);         SetDOEnd(theData,((struct multifield *) sublist[i].value)->multifieldLength);         i++;        }      /*=============================================*/      /* Call the constraint checking routine to see */      /* if a constraint violation occurred.         */      /*=============================================*/      rv = ConstraintCheckDataObject(theEnv,&theData,slotPtr->constraints);      if (rv != NO_VIOLATION)        {         gensprintf(thePlace,"fact f-%-5lld ",theFact->factIndex);         PrintErrorID(theEnv,"CSTRNCHK",1,TRUE);         EnvPrintRouter(theEnv,WERROR,"Slot value ");         PrintDataObject(theEnv,WERROR,&theData);         EnvPrintRouter(theEnv,WERROR," ");         ConstraintViolationErrorMessage(theEnv,NULL,thePlace,FALSE,0,slotPtr->slotName,                                         0,rv,slotPtr->constraints,TRUE);         SetHaltExecution(theEnv,TRUE);         return;        }     }   return;  }/***********************************************************************//* CheckRHSSlotTypes: Checks the validity of a change to a slot as the *//*   result of an assert, modify, or duplicate command. This checking  *//*   is performed statically (i.e. when the command is being parsed).  *//***********************************************************************/globle intBool CheckRHSSlotTypes(  void *theEnv,  struct expr *rhsSlots,  struct templateSlot *slotPtr,  char *thePlace)  {   int rv;   char *theName;   if (EnvGetStaticConstraintChecking(theEnv) == FALSE) return(TRUE);      rv = ConstraintCheckExpressionChain(theEnv,rhsSlots,slotPtr->constraints);      if (rv != NO_VIOLATION)        {         if (rv != CARDINALITY_VIOLATION) theName = "A literal slot value";         else theName = "Literal slot values";         ConstraintViolationErrorMessage(theEnv,theName,thePlace,TRUE,0,                                         slotPtr->slotName,0,rv,slotPtr->constraints,TRUE);         return(0);        }   return(1);  }/*********************************************************//* GetNthSlot: Given a deftemplate and an integer index, *//*   returns the nth slot of a deftemplate.              *//*********************************************************/globle struct templateSlot *GetNthSlot(  struct deftemplate *theDeftemplate,  int position)  {   struct templateSlot *slotPtr;   int i = 0;   slotPtr = theDeftemplate->slotList;   while (slotPtr != NULL)     {      if (i == position) return(slotPtr);      slotPtr = slotPtr->next;      i++;     }   return(NULL);  }/*******************************************************//* FindSlotPosition: Finds the position of a specified *//*   slot in a deftemplate structure.                  *//*******************************************************/globle int FindSlotPosition(  struct deftemplate *theDeftemplate,  SYMBOL_HN *name)  {   struct templateSlot *slotPtr;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级黄色大片| 91蝌蚪porny成人天涯| 亚洲一区二区在线免费观看视频| 国产一区二区网址| 在线观看三级视频欧美| 亚洲综合色噜噜狠狠| 一本色道久久综合精品竹菊| 一区二区三区欧美日| 欧美日韩国产一级片| 蜜臀久久99精品久久久久宅男| 日韩三级中文字幕| 成人午夜av在线| 亚洲日穴在线视频| 欧美午夜精品免费| 久久激情五月婷婷| 国产精品久99| 欧美老人xxxx18| 国产乱理伦片在线观看夜一区| 国产精品系列在线| 欧美日韩一区二区三区免费看 | 亚洲视频网在线直播| 91激情五月电影| 麻豆91在线播放免费| 国产精品私人自拍| 欧美视频在线播放| 蜜桃视频一区二区三区| 成人免费在线播放视频| 91麻豆精品国产无毒不卡在线观看| 国产尤物一区二区在线| 一区二区免费在线| 久久蜜桃av一区二区天堂| 色爱区综合激月婷婷| 九色综合狠狠综合久久| 亚洲综合色在线| 久久精品人人做人人综合| 欧美亚洲图片小说| 国产成人免费xxxxxxxx| 丝袜脚交一区二区| 中文字幕在线观看一区| 日韩欧美在线综合网| 在线观看成人免费视频| 国产经典欧美精品| 视频在线观看一区二区三区| 国产精品视频看| 精品免费国产二区三区| 欧美少妇bbb| 99精品视频在线播放观看| 久久草av在线| 三级不卡在线观看| 亚洲精品欧美综合四区| 国产欧美日韩视频在线观看| 欧美日韩成人在线| 91毛片在线观看| 国产91清纯白嫩初高中在线观看| 日产欧产美韩系列久久99| 日韩美女啊v在线免费观看| 国产欧美视频在线观看| 精品免费99久久| 884aa四虎影成人精品一区| 色综合中文字幕国产 | 制服丝袜一区二区三区| 色噜噜狠狠一区二区三区果冻| 国产成人亚洲综合a∨猫咪| 麻豆精品蜜桃视频网站| 婷婷激情综合网| 一个色在线综合| 亚洲精品成人在线| 亚洲精品一二三区| 136国产福利精品导航| 国产精品九色蝌蚪自拍| 国产精品久线观看视频| 国产精品欧美一级免费| 国产人成亚洲第一网站在线播放| 欧美成人a∨高清免费观看| 日韩一区二区在线看| 欧美zozo另类异族| 日韩欧美中文字幕公布| 欧美一区二区在线观看| 欧美一区二区三级| 日韩视频在线你懂得| 日韩欧美一二三| 精品久久久久久亚洲综合网| 精品三级av在线| 国产欧美日韩一区二区三区在线观看| 久久久久久影视| 中文字幕 久热精品 视频在线| 国产精品亲子乱子伦xxxx裸| 成人欧美一区二区三区小说| 亚洲图片另类小说| 亚洲五码中文字幕| 日本一不卡视频| 国产精品一区二区视频| 成人av免费在线观看| 一本色道亚洲精品aⅴ| 欧美性色黄大片| 欧美一区二区三区在线| 精品国产91洋老外米糕| 亚洲国产精品传媒在线观看| **性色生活片久久毛片| 香蕉影视欧美成人| 韩国一区二区在线观看| av在线播放成人| 欧美乱妇20p| 久久综合丝袜日本网| 国产精品久久影院| 亚洲va天堂va国产va久| 韩国女主播一区| 91女厕偷拍女厕偷拍高清| 777奇米四色成人影色区| 国产精品一级片在线观看| 视频一区二区国产| 韩国欧美国产一区| 91丨porny丨最新| 日韩视频免费观看高清完整版| 91麻豆精品秘密| 日韩欧美一级在线播放| 国产精品免费丝袜| 同产精品九九九| 欧美日韩国产大片| 久久久久久久免费视频了| 亚洲精品高清视频在线观看| 国内不卡的二区三区中文字幕| 国内精品在线播放| 91老司机福利 在线| 精品日韩在线观看| 日韩毛片高清在线播放| 奇米影视一区二区三区| 波多野洁衣一区| 日韩精品一区二区三区在线播放 | 久久亚洲欧美国产精品乐播| 亚洲欧美偷拍另类a∨色屁股| 香蕉久久夜色精品国产使用方法 | 夜夜嗨av一区二区三区中文字幕 | 久久 天天综合| 欧美在线免费观看亚洲| 精品对白一区国产伦| 夜夜亚洲天天久久| 成人av网在线| 欧美电影免费观看高清完整版在线| 中文字幕精品在线不卡| 美国欧美日韩国产在线播放| 在线精品亚洲一区二区不卡| 国产视频在线观看一区二区三区| 亚洲欧美日韩成人高清在线一区| 麻豆精品新av中文字幕| 欧美在线小视频| 国产精品传媒视频| 国产高清精品久久久久| 欧美一区二区三区不卡| 午夜视频一区在线观看| 日韩美女啊v在线免费观看| 国产一区二区不卡在线| 91麻豆精品国产91久久久久久久久 | 久久人人超碰精品| 亚洲主播在线播放| 91蜜桃视频在线| 中文字幕亚洲电影| 成人国产一区二区三区精品| 久久久久国产精品麻豆ai换脸 | 国内精品伊人久久久久av影院| zzijzzij亚洲日本少妇熟睡| 久久久亚洲国产美女国产盗摄 | 亚洲精选视频免费看| 丁香激情综合五月| 国产午夜精品久久久久久久| 久草这里只有精品视频| 精品日韩一区二区三区| 六月丁香婷婷久久| 日韩欧美国产不卡| 久久不见久久见免费视频1| 91精品欧美久久久久久动漫| 青娱乐精品视频| 日韩欧美中文字幕一区| 捆绑调教一区二区三区| 91精品国产福利| 久久成人免费电影| 欧美精品一区二区久久婷婷| 狠狠色丁香婷婷综合久久片| 久久久亚洲午夜电影| 成人丝袜视频网| 亚洲欧美日韩久久精品| 在线免费不卡视频| 日韩二区在线观看| 欧美成人在线直播| 国产精品综合久久| 国产精品免费久久| 欧美在线视频日韩| 日韩中文字幕麻豆| 久久免费的精品国产v∧| 99riav一区二区三区| 亚洲永久免费视频| 91精品国产综合久久久久| 国产一区在线不卡| 国产精品国产馆在线真实露脸| 不卡的av电影| 婷婷开心激情综合| www日韩大片| 99国产一区二区三精品乱码| 亚洲大型综合色站| 精品久久一区二区|