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

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

?? cstrnpsr.c

?? clips源代碼
?? C
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
   /*******************************************************/   /*      "C" Language Integrated Production System      */   /*                                                     */   /*             CLIPS Version 6.24  07/01/05            */   /*                                                     */   /*               CONSTRAINT PARSER MODULE              */   /*******************************************************//*************************************************************//* Purpose: Provides functions for parsing constraint        *//*   declarations.                                           *//*                                                           *//* Principal Programmer(s):                                  *//*      Gary D. Riley                                        *//*                                                           *//* Contributing Programmer(s):                               *//*      Brian Donnell                                        *//*                                                           *//* Revision History:                                         *//*      6.23: Changed name of variable exp to theExp         *//*            because of Unix compiler warnings of shadowed  *//*            definitions.                                   *//*                                                           *//*      6.24: Added allowed-classes slot facet.              *//*                                                           *//*            Renamed BOOLEAN macro type to intBool.         *//*                                                           *//*************************************************************/#define _CSTRNPSR_SOURCE_#include <stdio.h>#define _STDIO_INCLUDED_#include <stdlib.h>#include "setup.h"#include "constant.h"#include "envrnmnt.h"#include "memalloc.h"#include "router.h"#include "scanner.h"#include "cstrnutl.h"#include "cstrnchk.h"#include "sysdep.h"#include "cstrnpsr.h"/***************************************//* LOCAL INTERNAL FUNCTION DEFINITIONS *//***************************************/#if (! RUN_TIME) && (! BLOAD_ONLY)   static intBool                 ParseRangeCardinalityAttribute(void *,                                                                 char *,CONSTRAINT_RECORD *,                                                                 CONSTRAINT_PARSE_RECORD *,                                                                 char *,int);   static intBool                 ParseTypeAttribute(void *,char *,CONSTRAINT_RECORD *);   static void                    AddToRestrictionList(void *,int,CONSTRAINT_RECORD *,                                                       CONSTRAINT_RECORD *);   static intBool                 ParseAllowedValuesAttribute(void *,char *,char *,                                                              CONSTRAINT_RECORD *,                                                              CONSTRAINT_PARSE_RECORD *);   static int                     GetConstraintTypeFromAllowedName(char *);   static int                     GetConstraintTypeFromTypeName(char *);   static int                     GetAttributeParseValue(char *,CONSTRAINT_PARSE_RECORD *);   static void                    SetRestrictionFlag(int,CONSTRAINT_RECORD *,int);   static void                    SetParseFlag(CONSTRAINT_PARSE_RECORD *,char *);   static void                    NoConjunctiveUseError(void *,char *,char *);#endif/********************************************************************//* CheckConstraintParseConflicts: Determines if a constraint record *//*   has any conflicts in the attribute specifications. Returns     *//*   TRUE if no conflicts were detected, otherwise FALSE.           *//********************************************************************/globle intBool CheckConstraintParseConflicts(  void *theEnv,  CONSTRAINT_RECORD *constraints)  {   /*===================================================*/   /* Check to see if any of the allowed-... attributes */   /* conflict with the type attribute.                 */   /*===================================================*/   if (constraints->anyAllowed == TRUE)     { /* Do Nothing */ }   else if (constraints->symbolRestriction &&            (constraints->symbolsAllowed == FALSE))     {      AttributeConflictErrorMessage(theEnv,"type","allowed-symbols");      return(FALSE);     }   else if (constraints->stringRestriction &&            (constraints->stringsAllowed == FALSE))     {      AttributeConflictErrorMessage(theEnv,"type","allowed-strings");      return(FALSE);     }   else if (constraints->integerRestriction &&            (constraints->integersAllowed == FALSE))     {      AttributeConflictErrorMessage(theEnv,"type","allowed-integers/numbers");      return(FALSE);     }   else if (constraints->floatRestriction &&            (constraints->floatsAllowed == FALSE))     {      AttributeConflictErrorMessage(theEnv,"type","allowed-floats/numbers");      return(FALSE);     }   else if (constraints->classRestriction &&            (constraints->instanceAddressesAllowed == FALSE) &&            (constraints->instanceNamesAllowed == FALSE))     {      AttributeConflictErrorMessage(theEnv,"type","allowed-classes");      return(FALSE);     }   else if (constraints->instanceNameRestriction &&            (constraints->instanceNamesAllowed == FALSE))     {      AttributeConflictErrorMessage(theEnv,"type","allowed-instance-names");      return(FALSE);     }   else if (constraints->anyRestriction)     {      struct expr *theExp;      for (theExp = constraints->restrictionList;           theExp != NULL;           theExp = theExp->nextArg)        {         if (ConstraintCheckValue(theEnv,theExp->type,theExp->value,constraints) != NO_VIOLATION)           {            AttributeConflictErrorMessage(theEnv,"type","allowed-values");            return(FALSE);           }        }     }   /*================================================================*/   /* Check to see if range attribute conflicts with type attribute. */   /*================================================================*/   if ((constraints->maxValue != NULL) &&       (constraints->anyAllowed == FALSE))     {      if (((constraints->maxValue->type == INTEGER) &&          (constraints->integersAllowed == FALSE)) ||          ((constraints->maxValue->type == FLOAT) &&           (constraints->floatsAllowed == FALSE)))        {         AttributeConflictErrorMessage(theEnv,"type","range");         return(FALSE);        }     }   if ((constraints->minValue != NULL) &&       (constraints->anyAllowed == FALSE))     {      if (((constraints->minValue->type == INTEGER) &&          (constraints->integersAllowed == FALSE)) ||          ((constraints->minValue->type == FLOAT) &&           (constraints->floatsAllowed == FALSE)))        {         AttributeConflictErrorMessage(theEnv,"type","range");         return(FALSE);        }     }   /*=========================================*/   /* Check to see if allowed-class attribute */   /* conflicts with type attribute.          */   /*=========================================*/   if ((constraints->classList != NULL) &&       (constraints->anyAllowed == FALSE) &&       (constraints->instanceNamesAllowed == FALSE) &&       (constraints->instanceAddressesAllowed == FALSE))     {      AttributeConflictErrorMessage(theEnv,"type","allowed-class");      return(FALSE);     }   /*=====================================================*/   /* Return TRUE to indicate no conflicts were detected. */   /*=====================================================*/   return(TRUE);  }/********************************************************//* AttributeConflictErrorMessage: Generic error message *//*   for a constraint attribute conflict.               *//********************************************************/globle void AttributeConflictErrorMessage(  void *theEnv,  char *attribute1,  char *attribute2)  {   PrintErrorID(theEnv,"CSTRNPSR",1,TRUE);   EnvPrintRouter(theEnv,WERROR,"The ");   EnvPrintRouter(theEnv,WERROR,attribute1);   EnvPrintRouter(theEnv,WERROR," attribute conflicts with the ");   EnvPrintRouter(theEnv,WERROR,attribute2);   EnvPrintRouter(theEnv,WERROR," attribute.\n");  }#if (! RUN_TIME) && (! BLOAD_ONLY)/***************************************************************************//* InitializeConstraintParseRecord: Initializes the values of a constraint *//*   parse record which is used to determine whether one of the standard   *//*   constraint specifications has already been parsed.                    *//***************************************************************************/globle void InitializeConstraintParseRecord(  CONSTRAINT_PARSE_RECORD *parsedConstraints)  {   parsedConstraints->type = FALSE;   parsedConstraints->range = FALSE;   parsedConstraints->allowedSymbols = FALSE;   parsedConstraints->allowedStrings = FALSE;   parsedConstraints->allowedLexemes = FALSE;   parsedConstraints->allowedIntegers = FALSE;   parsedConstraints->allowedFloats = FALSE;   parsedConstraints->allowedNumbers = FALSE;   parsedConstraints->allowedValues = FALSE;   parsedConstraints->allowedInstanceNames = FALSE;   parsedConstraints->allowedClasses = FALSE;   parsedConstraints->cardinality = FALSE;  }/************************************************************************//* StandardConstraint: Returns TRUE if the specified name is one of the *//*   standard constraints parseable by the routines in this module.     *//************************************************************************/globle intBool StandardConstraint(  char *constraintName)  {   if ((strcmp(constraintName,"type") == 0) ||       (strcmp(constraintName,"range") == 0) ||       (strcmp(constraintName,"cardinality") == 0) ||       (strcmp(constraintName,"allowed-symbols") == 0) ||       (strcmp(constraintName,"allowed-strings") == 0) ||       (strcmp(constraintName,"allowed-lexemes") == 0) ||       (strcmp(constraintName,"allowed-integers") == 0) ||       (strcmp(constraintName,"allowed-floats") == 0) ||       (strcmp(constraintName,"allowed-numbers") == 0) ||       (strcmp(constraintName,"allowed-instance-names") == 0) ||       (strcmp(constraintName,"allowed-classes") == 0) ||       (strcmp(constraintName,"allowed-values") == 0))     { return(TRUE); }   return(FALSE);  }/***********************************************************************//* ParseStandardConstraint: Parses a standard constraint. Returns TRUE *//*   if the constraint was successfully parsed, otherwise FALSE.       *//***********************************************************************/globle intBool ParseStandardConstraint(  void *theEnv,  char *readSource,  char *constraintName,  CONSTRAINT_RECORD *constraints,  CONSTRAINT_PARSE_RECORD *parsedConstraints,  int multipleValuesAllowed)  {   int rv = FALSE;   /*=====================================================*/   /* Determine if the attribute has already been parsed. */   /*=====================================================*/   if (GetAttributeParseValue(constraintName,parsedConstraints))     {      AlreadyParsedErrorMessage(theEnv,constraintName," attribute");      return(FALSE);     }   /*==========================================*/   /* If specified, parse the range attribute. */   /*==========================================*/   if (strcmp(constraintName,"range") == 0)     {      rv = ParseRangeCardinalityAttribute(theEnv,readSource,constraints,parsedConstraints,                                          constraintName,multipleValuesAllowed);     }   /*================================================*/   /* If specified, parse the cardinality attribute. */   /*================================================*/   else if (strcmp(constraintName,"cardinality") == 0)     {      rv = ParseRangeCardinalityAttribute(theEnv,readSource,constraints,parsedConstraints,                                          constraintName,multipleValuesAllowed);     }   /*=========================================*/   /* If specified, parse the type attribute. */   /*=========================================*/   else if (strcmp(constraintName,"type") == 0)     { rv = ParseTypeAttribute(theEnv,readSource,constraints); }   /*================================================*/   /* If specified, parse the allowed-... attribute. */   /*================================================*/   else if ((strcmp(constraintName,"allowed-symbols") == 0) ||            (strcmp(constraintName,"allowed-strings") == 0) ||            (strcmp(constraintName,"allowed-lexemes") == 0) ||            (strcmp(constraintName,"allowed-integers") == 0) ||            (strcmp(constraintName,"allowed-floats") == 0) ||            (strcmp(constraintName,"allowed-numbers") == 0) ||            (strcmp(constraintName,"allowed-instance-names") == 0) ||            (strcmp(constraintName,"allowed-classes") == 0) ||            (strcmp(constraintName,"allowed-values") == 0))     {      rv = ParseAllowedValuesAttribute(theEnv,readSource,constraintName,                                       constraints,parsedConstraints);     }   /*=========================================*/   /* Remember which constraint attribute was */   /* parsed and return the error status.     */   /*=========================================*/   SetParseFlag(parsedConstraints,constraintName);   return(rv);  }/***********************************************************//* OverlayConstraint: Overlays fields of source constraint */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
7777精品伊人久久久大香线蕉超级流畅 | 国产99久久久国产精品免费看| 亚洲成av人影院在线观看网| 亚洲丝袜自拍清纯另类| 国产日韩欧美a| 久久久久久久久久久99999| 日韩欧美卡一卡二| 欧美一区二区成人6969| 日韩一区二区免费在线电影| 欧美高清视频在线高清观看mv色露露十八 | 国产精品久久久久久户外露出 | 麻豆91小视频| 日本免费在线视频不卡一不卡二| 日韩成人午夜精品| 日产精品久久久久久久性色| 日韩福利电影在线| 久久精品噜噜噜成人av农村| 久热成人在线视频| 国产成人免费视频| 91婷婷韩国欧美一区二区| 91色九色蝌蚪| 欧美中文字幕一区| 欧美人伦禁忌dvd放荡欲情| 制服丝袜亚洲色图| 精品日韩一区二区三区免费视频| 精品剧情v国产在线观看在线| 精品国产第一区二区三区观看体验 | 欧美日韩一区二区在线视频| 欧美精品自拍偷拍| 久久亚洲精品国产精品紫薇| 国产精品天干天干在线综合| 国产精品久久久久久久久久久免费看 | 国产精品一区在线观看你懂的| 国产精品一区二区三区网站| 成人动漫在线一区| 在线免费观看成人短视频| 欧美日韩免费观看一区三区| 日韩三级精品电影久久久 | 久久av资源网| jiyouzz国产精品久久| 色婷婷综合久久久中文字幕| 欧美日韩国产电影| 久久精品一区四区| 亚洲激情成人在线| 美女视频黄 久久| 成人小视频在线| 欧美日韩精品欧美日韩精品一| 精品人在线二区三区| 国产精品免费视频网站| 亚洲成在人线在线播放| 国产乱一区二区| 在线看国产一区二区| 337p粉嫩大胆色噜噜噜噜亚洲| 中文字幕中文乱码欧美一区二区| 亚洲亚洲精品在线观看| 极品少妇一区二区三区精品视频| 99天天综合性| 日韩欧美中文一区| 亚洲人成精品久久久久久| 美国欧美日韩国产在线播放| 99精品黄色片免费大全| 欧美一级xxx| 综合激情成人伊人| 精品一区二区国语对白| 在线视频欧美精品| 久久美女艺术照精彩视频福利播放| 亚洲最快最全在线视频| 国产成人精品在线看| 在线不卡免费av| 亚洲免费毛片网站| 国产盗摄视频一区二区三区| 欧美酷刑日本凌虐凌虐| 亚洲丝袜另类动漫二区| 国产精品自在欧美一区| 91精品国产免费| 亚洲男女毛片无遮挡| 国产白丝网站精品污在线入口| 8v天堂国产在线一区二区| 国产精品欧美一区喷水| 韩日av一区二区| 91精品国产综合久久小美女| 亚洲欧美精品午睡沙发| 国产成人精品三级| 精品免费视频一区二区| 日韩精品免费视频人成| 99re成人精品视频| 国产精品久久久久久妇女6080| 精品一区二区三区在线播放视频| 欧美男生操女生| 激情图片小说一区| 日韩一区二区三区精品视频| 亚洲电影你懂得| 在线视频你懂得一区| 亚洲欧美日韩国产综合在线| 成人的网站免费观看| 国产欧美日韩中文久久| 国产一区二区伦理| 精品国产不卡一区二区三区| 三级精品在线观看| 538在线一区二区精品国产| 亚洲123区在线观看| 欧美日韩在线播放三区四区| 一区二区三区国产| 欧美伊人久久大香线蕉综合69| 综合久久国产九一剧情麻豆| 成a人片亚洲日本久久| 中文字幕av一区二区三区高 | 欧美一区二区三区视频免费播放| 亚洲一区二区精品视频| 在线免费精品视频| 午夜视频在线观看一区二区 | 欧美一级夜夜爽| 免费在线视频一区| 欧美成人vps| 国产一区91精品张津瑜| 久久人人超碰精品| 国产suv精品一区二区三区| 中文字幕不卡在线| 99视频一区二区| 一区二区三区在线视频观看58| 色av成人天堂桃色av| 亚洲成av人在线观看| 日韩视频免费直播| 国产精品自拍网站| 国产精品乱码久久久久久 | 亚洲日本乱码在线观看| 91蝌蚪porny| 亚洲高清在线精品| 欧美一级淫片007| 国产九九视频一区二区三区| 国产精品日产欧美久久久久| 日本丶国产丶欧美色综合| 丝袜美腿亚洲一区二区图片| 欧美成人猛片aaaaaaa| 国产成a人无v码亚洲福利| 亚洲欧洲国产日韩| 欧美女孩性生活视频| 国产一区二区三区免费观看| 亚洲欧洲无码一区二区三区| 欧美色精品天天在线观看视频| 婷婷亚洲久悠悠色悠在线播放| 日韩欧美国产一二三区| 成人激情动漫在线观看| 亚洲国产欧美在线| 久久精品一区四区| 欧美亚洲国产bt| 国产一区二区视频在线播放| 亚洲男女毛片无遮挡| 91精品福利在线一区二区三区 | 亚洲成人激情av| 精品国产一区二区三区四区四| 国产成人av一区二区三区在线| 一区二区三区成人| 日韩免费高清av| 色香蕉成人二区免费| 蜜桃一区二区三区在线| 亚洲欧美在线另类| 日韩一级免费一区| 97久久精品人人做人人爽| 免费av成人在线| 亚洲人成亚洲人成在线观看图片| 欧美一级日韩不卡播放免费| aaa国产一区| 狠狠色狠狠色综合日日91app| 亚洲丝袜美腿综合| 久久新电视剧免费观看| 欧美日韩中文一区| 91丨porny丨国产| 精品一区二区av| 亚洲国产中文字幕在线视频综合| 久久久精品黄色| 337p亚洲精品色噜噜噜| 91美女福利视频| 国产传媒欧美日韩成人| 日韩成人午夜电影| 亚洲免费在线观看| 中文字幕av一区二区三区免费看| 日韩一区二区三区在线视频| 欧美色手机在线观看| 成人亚洲一区二区一| 精品在线亚洲视频| 日韩国产高清影视| 亚洲一区影音先锋| 亚洲欧洲日韩av| 国产精品系列在线| 久久久久久久免费视频了| 日韩美女一区二区三区四区| 欧美日韩国产精品成人| 在线亚洲欧美专区二区| 91社区在线播放| caoporn国产精品| 国产麻豆精品一区二区| 玖玖九九国产精品| 久久99在线观看| 蜜桃一区二区三区在线观看| 热久久免费视频| 免费视频一区二区| 日韩电影网1区2区| 麻豆国产精品777777在线| 日韩激情在线观看|