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

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

?? factlhs.c

?? clips源代碼
?? C
字號(hào):
   /*******************************************************/   /*      "C" Language Integrated Production System      */   /*                                                     */   /*             CLIPS Version 6.22  06/15/04            */   /*                                                     */   /*            FACT LHS PATTERN PARSING MODULE          */   /*******************************************************//*************************************************************//* Purpose: Contains routines for integration of ordered and *//*   deftemplate fact patterns with the defrule LHS pattern  *//*   parser including routines for recognizing fact          *//*   patterns, parsing ordered fact patterns, initiating the *//*   parsing of deftemplate fact patterns, and creating the  *//*   default initial-fact fact pattern.                      *//*                                                           *//* Principal Programmer(s):                                  *//*      Gary D. Riley                                        *//*                                                           *//* Contributing Programmer(s):                               *//*                                                           *//* Revision History:                                         *//*                                                           *//*************************************************************/#define _FACTLHS_SOURCE_#include "setup.h"#if DEFTEMPLATE_CONSTRUCT && DEFRULE_CONSTRUCT && (! RUN_TIME) && (! BLOAD_ONLY)#include <stdio.h>#define _STDIO_INCLUDED_#include "cstrcpsr.h"#include "envrnmnt.h"#include "pattern.h"#include "router.h"#include "reorder.h"#include "tmpltpsr.h"#include "tmpltdef.h"#include "tmpltlhs.h"#include "tmpltutl.h"#include "modulutl.h"#include "modulpsr.h"#include "factlhs.h"/***********************************************//* SequenceRestrictionParse: Parses an ordered *//*   fact pattern conditional element.         *//*                                             *//*   <ordered-fact-pattern-CE>                 *//*             ::= (<symbol> <constraint>+)    *//***********************************************/globle struct lhsParseNode *SequenceRestrictionParse(  void *theEnv,  char *readSource,  struct token *theToken)  {   struct lhsParseNode *topNode;   struct lhsParseNode *nextField;   /*================================================*/   /* Create the pattern node for the relation name. */   /*================================================*/   topNode = GetLHSParseNode(theEnv);   topNode->type = SF_WILDCARD;   topNode->negated = FALSE;   topNode->exists = FALSE;   topNode->index = -1;   topNode->slotNumber = 1;   topNode->bottom = GetLHSParseNode(theEnv);   topNode->bottom->type = SYMBOL;   topNode->bottom->negated = FALSE;   topNode->bottom->exists = FALSE;   topNode->bottom->value = (void *) theToken->value;   /*======================================================*/   /* Connective constraints cannot be used in conjunction */   /* with the first field of a pattern.                   */   /*======================================================*/   SavePPBuffer(theEnv," ");   GetToken(theEnv,readSource,theToken);   if ((theToken->type == OR_CONSTRAINT) || (theToken->type == AND_CONSTRAINT))     {      ReturnLHSParseNodes(theEnv,topNode);      SyntaxErrorMessage(theEnv,"the first field of a pattern");      return(NULL);     }   /*============================================================*/   /* Treat the remaining constraints of an ordered fact pattern */   /* as if they were contained in a multifield slot.            */   /*============================================================*/   nextField = RestrictionParse(theEnv,readSource,theToken,TRUE,NULL,1,NULL,1);   if (nextField == NULL)     {      ReturnLHSParseNodes(theEnv,topNode);      return(NULL);     }   topNode->right = nextField;   /*================================================*/   /* The pattern must end with a right parenthesis. */   /*================================================*/   if (theToken->type != RPAREN)     {      PPBackup(theEnv);      SavePPBuffer(theEnv," ");      SavePPBuffer(theEnv,theToken->printForm);      SyntaxErrorMessage(theEnv,"fact patterns");      ReturnLHSParseNodes(theEnv,topNode);      return(NULL);     }   /*====================================*/   /* Fix the pretty print output if the */   /* slot contained no restrictions.    */   /*====================================*/   if (nextField->bottom == NULL)     {      PPBackup(theEnv);      PPBackup(theEnv);      SavePPBuffer(theEnv,")");     }   /*===================================*/   /* If no errors, return the pattern. */   /*===================================*/   return(topNode);  }/****************************************************************//* CreateInitialFactPattern: Creates the pattern (initial-fact) *//*   for use in rules which have no LHS patterns.               *//****************************************************************/globle struct lhsParseNode *CreateInitialFactPattern(  void *theEnv)  {   struct lhsParseNode *topNode;   struct deftemplate *theDeftemplate;   int count;      /*==================================*/   /* If the initial-fact deftemplate  */   /* doesn't exist, then create it.   */   /*==================================*/   theDeftemplate = (struct deftemplate *)                    FindImportedConstruct(theEnv,"deftemplate",NULL,"initial-fact",                                          &count,TRUE,NULL);   if (theDeftemplate == NULL)     {      PrintWarningID(theEnv,"FACTLHS",1,FALSE);      EnvPrintRouter(theEnv,WWARNING,"Creating implied initial-fact deftemplate in module ");      EnvPrintRouter(theEnv,WWARNING,EnvGetDefmoduleName(theEnv,EnvGetCurrentModule(theEnv)));      EnvPrintRouter(theEnv,WWARNING,".\n");      EnvPrintRouter(theEnv,WWARNING,"  You probably want to import this deftemplate from the MAIN module.\n");      CreateImpliedDeftemplate(theEnv,(SYMBOL_HN *) EnvAddSymbol(theEnv,"initial-fact"),FALSE);     }   /*====================================*/   /* Create the (initial-fact) pattern. */   /*====================================*/   topNode = GetLHSParseNode(theEnv);   topNode->type = SF_WILDCARD;   topNode->index = 0;   topNode->slotNumber = 1;   topNode->bottom = GetLHSParseNode(theEnv);   topNode->bottom->type = SYMBOL;   topNode->bottom->value = (void *) EnvAddSymbol(theEnv,"initial-fact");   /*=====================*/   /* Return the pattern. */   /*=====================*/   return(topNode);  }/**********************************************************************//* FactPatternParserFind: This function is the pattern find function  *//*   for facts. It tells the pattern parsing code that the specified  *//*   pattern can be parsed as a fact pattern. By default, any pattern *//*   beginning with a symbol can be parsed as a fact pattern. Since   *//*   all patterns begin with a symbol, it follows that all patterns   *//*   can be parsed as a fact pattern.                                 *//**********************************************************************/#if IBM_TBC#pragma argsused#endifgloble int FactPatternParserFind(  SYMBOL_HN *theRelation)  {#if MAC_MCW || IBM_MCW || MAC_XCD#pragma unused(theRelation)#endif   return(TRUE);  }/******************************************************//* FactPatternParse: This function is called to parse *//*  both deftemplate and ordered fact patterns.       *//******************************************************/globle struct lhsParseNode *FactPatternParse(  void *theEnv,  char *readSource,  struct token *theToken)  {   struct deftemplate *theDeftemplate;   int count;   /*=========================================*/   /* A module separator can not be included  */   /* as part of the pattern's relation name. */   /*=========================================*/   if (FindModuleSeparator(ValueToString(theToken->value)))     {      IllegalModuleSpecifierMessage(theEnv);      return(NULL);     }   /*=========================================================*/   /* Find the deftemplate associated with the relation name. */   /*=========================================================*/   theDeftemplate = (struct deftemplate *)                    FindImportedConstruct(theEnv,"deftemplate",NULL,ValueToString(theToken->value),                                          &count,TRUE,NULL);   if (count > 1)     {      AmbiguousReferenceErrorMessage(theEnv,"deftemplate",ValueToString(theToken->value));      return(NULL);     }   /*======================================================*/   /* If no deftemplate exists with the specified relation */   /* name, then create an implied deftemplate.            */   /*======================================================*/   if (theDeftemplate == NULL)     {#if DEFMODULE_CONSTRUCT      if (FindImportExportConflict(theEnv,"deftemplate",((struct defmodule *) EnvGetCurrentModule(theEnv)),ValueToString(theToken->value)))        {         ImportExportConflictMessage(theEnv,"implied deftemplate",ValueToString(theToken->value),NULL,NULL);         return(NULL);        }#endif /* DEFMODULE_CONSTRUCT */      if (! ConstructData(theEnv)->CheckSyntaxMode)        { theDeftemplate = CreateImpliedDeftemplate(theEnv,(SYMBOL_HN *) theToken->value,TRUE); }      else        { theDeftemplate = NULL; }     }   /*===============================================*/   /* If an explicit deftemplate exists, then parse */   /* the pattern as a deftemplate pattern.         */   /*===============================================*/   if ((theDeftemplate != NULL) && (theDeftemplate->implied == FALSE))     { return(DeftemplateLHSParse(theEnv,readSource,theDeftemplate)); }   /*================================*/   /* Parse an ordered fact pattern. */   /*================================*/   return(SequenceRestrictionParse(theEnv,readSource,theToken));  }#endif /* DEFTEMPLATE_CONSTRUCT && DEFRULE_CONSTRUCT && (! RUN_TIME) && (! BLOAD_ONLY) */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲夂夂婷婷色拍ww47| 久久理论电影网| 亚洲国产日日夜夜| 欧美日韩一区在线| 日韩电影免费在线观看网站| 欧美一区二区三区视频在线观看| 午夜一区二区三区视频| 欧美一区二区精品| 国产精品自在在线| 国产精品久久久99| 欧美午夜精品免费| 久久国产精品无码网站| 国产欧美日韩不卡免费| 91精品福利视频| 麻豆freexxxx性91精品| 国产日韩欧美亚洲| 欧美专区日韩专区| 经典三级一区二区| 中文字幕一区二区三区不卡在线| 欧美制服丝袜第一页| 麻豆成人久久精品二区三区小说| 中文在线免费一区三区高中清不卡| av一区二区不卡| 日韩精品久久久久久| 国产精品天美传媒| 51精品国自产在线| 成人动漫精品一区二区| 日韩福利视频网| 中文字幕av在线一区二区三区| 色综合色狠狠综合色| 另类中文字幕网| 亚洲男同性视频| 久久精品在这里| 欧美日高清视频| 99视频热这里只有精品免费| 欧美a一区二区| 亚洲丝袜制服诱惑| 精品国产一二三区| 欧洲视频一区二区| 国产99精品视频| 日韩成人av影视| 成人欧美一区二区三区小说| 欧美电视剧免费观看| 欧美亚洲一区二区在线| 高清不卡一区二区| 美女网站色91| 香蕉av福利精品导航| 亚洲丝袜自拍清纯另类| 国产欧美一区二区在线观看| 91精品国产综合久久精品性色 | 欧美一区日本一区韩国一区| 成人国产电影网| 精品一区二区三区不卡| 亚洲国产一区二区在线播放| 成人欧美一区二区三区黑人麻豆| www久久久久| 欧美一区二区三区精品| 欧美日韩国产首页| 日本韩国欧美一区二区三区| 国产成人精品影院| 精品在线播放免费| 蜜臀av国产精品久久久久| 亚洲大片免费看| 亚洲精品中文在线观看| 国产精品国产三级国产普通话三级| 精品福利一二区| 日韩欧美中文字幕一区| 欧美精选一区二区| 欧美色中文字幕| 欧美日韩一区二区欧美激情| 欧美亚洲高清一区| 欧美丝袜丝交足nylons| 欧美性感一区二区三区| 在线看国产一区| 欧美日韩免费一区二区三区| 在线亚洲欧美专区二区| 在线一区二区三区| 欧美曰成人黄网| 欧美日韩国产高清一区| 制服丝袜亚洲色图| 日韩精品一区二区三区蜜臀 | 亚洲一区在线免费观看| 中文字幕字幕中文在线中不卡视频| 国产日韩欧美综合在线| 欧美国产欧美综合| 综合激情成人伊人| 亚洲图片欧美视频| 日韩高清不卡一区| 国产精品一区在线观看乱码| 国产99久久久久久免费看农村| 成人精品鲁一区一区二区| 91免费精品国自产拍在线不卡| 在线看国产一区| 欧美一卡2卡3卡4卡| 精品国产乱码久久久久久久| 国产亚洲精品中文字幕| 亚洲视频一区二区在线观看| 一级中文字幕一区二区| 日日欢夜夜爽一区| 国产曰批免费观看久久久| 成人av影视在线观看| 欧美天堂一区二区三区| 欧美va日韩va| 国产精品国产三级国产| 亚洲国产va精品久久久不卡综合 | 久久成人久久鬼色| 国产成人亚洲综合a∨婷婷 | 在线观看日韩国产| 日韩一区二区电影在线| 欧美精彩视频一区二区三区| 亚洲免费观看高清在线观看| 午夜精品久久久久久久 | 国产超碰在线一区| 在线免费亚洲电影| 久久这里只有精品6| 亚洲欧美日韩国产成人精品影院| 日本三级亚洲精品| 成人av午夜影院| 日韩精品影音先锋| 亚洲美女屁股眼交3| 国产综合色在线视频区| 久久综合色之久久综合| 中文字幕第一区二区| 日韩在线a电影| 国产成人av福利| 91黄色激情网站| 国产亚洲一本大道中文在线| 亚洲一二三级电影| 国产成人精品午夜视频免费| 欧美日韩高清一区二区| 136国产福利精品导航| 蜜桃视频在线观看一区| 欧美性色欧美a在线播放| 久久久天堂av| 奇米四色…亚洲| 欧美揉bbbbb揉bbbbb| 国产精品人人做人人爽人人添 | 国产成人亚洲综合色影视| 欧美色国产精品| 中文字幕日本不卡| 国内精品视频一区二区三区八戒| 欧美日韩欧美一区二区| 亚洲欧美另类小说| 成人伦理片在线| 国产视频一区在线播放| 麻豆极品一区二区三区| 欧美日韩精品一区二区天天拍小说| 欧美国产97人人爽人人喊| 激情av综合网| 日韩欧美aaaaaa| 麻豆精品视频在线观看免费| 欧美日韩国产综合久久| 艳妇臀荡乳欲伦亚洲一区| av一区二区三区四区| 久久久精品中文字幕麻豆发布| 久久精品免费观看| 日韩欧美国产综合| 一区二区三区在线视频免费观看 | 久久精品国产网站| 777精品伊人久久久久大香线蕉| 一区二区国产视频| 日本高清不卡在线观看| 亚洲欧美视频在线观看| 91蜜桃在线观看| 亚洲美女免费视频| 色诱视频网站一区| 亚洲一区二区三区四区在线观看 | 亚洲精品久久嫩草网站秘色| 成人av网站大全| 一色桃子久久精品亚洲| 91丨porny丨户外露出| 亚洲欧美另类久久久精品| 91首页免费视频| 亚洲自拍欧美精品| 欧美日韩一区成人| 奇米精品一区二区三区在线观看 | 中文字幕国产一区| 99久久综合精品| 一区二区三国产精华液| 欧美女孩性生活视频| 青椒成人免费视频| 久久久久久久久久电影| 国产成人免费视频| 亚洲精品一二三| 制服丝袜国产精品| 国产精品一区二区久激情瑜伽| 国产精品全国免费观看高清 | 国产视频视频一区| 成人精品电影在线观看| 亚洲永久免费av| 欧美一级国产精品| 国产高清精品在线| 亚洲精品精品亚洲| 日韩一区二区免费在线观看| 精品一区二区三区免费| 国产精品入口麻豆九色| 欧美日韩中字一区| 国产麻豆成人精品| 亚洲欧美中日韩| 日韩欧美成人一区二区|