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

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

?? cstrnpsr.c

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久久久久久久| 亚洲免费大片在线观看| 国产日韩欧美精品在线| 久久久久国色av免费看影院| www日韩大片| 久久九九全国免费| 亚洲国产高清aⅴ视频| 中文字幕欧美一区| 亚洲综合在线免费观看| 亚洲综合一区二区精品导航| 日本视频一区二区| 日韩高清在线不卡| 日本视频中文字幕一区二区三区| 韩国女主播一区| 懂色av一区二区三区免费观看| 成人短视频下载| 欧美色中文字幕| 日韩美女一区二区三区| 欧美不卡123| 久久久久久久网| 中文字幕永久在线不卡| 欧美精品 国产精品| 91丝袜美女网| 91精品国产全国免费观看 | 欧美一区三区四区| 精品福利视频一区二区三区| 国产精品电影一区二区| 手机精品视频在线观看| 国产毛片精品视频| 91久久精品一区二区三区| 欧美一区二区视频在线观看| 国产女主播一区| 亚洲大尺度视频在线观看| 美女视频第一区二区三区免费观看网站 | 亚洲成av人片在线| 国内久久精品视频| 91国模大尺度私拍在线视频| 精品欧美一区二区三区精品久久| 国产精品欧美一区二区三区| 亚洲三级在线播放| 日韩国产精品久久| 91麻豆精品视频| 欧美成人三级电影在线| 亚洲精品欧美激情| 国精产品一区一区三区mba桃花| 色一情一乱一乱一91av| 欧美成人一区二区三区| 一区二区三区四区在线播放| 国产美女一区二区| 在线成人av影院| 最新不卡av在线| 日韩电影在线观看一区| 99国产精品视频免费观看| 欧美电影免费观看高清完整版在线观看 | 91精品婷婷国产综合久久性色| 日本一区二区三区四区在线视频| 日韩高清在线观看| 91国产福利在线| 国产精品免费免费| 精品一二三四区| 欧美日韩三级一区| 国产精品色噜噜| 蜜臀91精品一区二区三区 | 一区二区激情小说| 国产成人午夜高潮毛片| 91精品国模一区二区三区| 亚洲综合图片区| 成人免费视频视频| 久久精子c满五个校花| 国产精品影视网| 欧美成人a在线| 亚洲另类中文字| 99re成人在线| 国产欧美一区二区三区鸳鸯浴| 亚洲乱码日产精品bd| 国产精品羞羞答答xxdd| 高清久久久久久| 色婷婷亚洲一区二区三区| 中文字幕第一区二区| 久久99精品久久只有精品| 欧美羞羞免费网站| 洋洋成人永久网站入口| 99久久国产综合精品女不卡| 日本一区二区三区国色天香| 久久国产生活片100| 日本道在线观看一区二区| 亚洲三级在线免费观看| 972aa.com艺术欧美| 久久久影院官网| 狠狠色综合播放一区二区| 日韩欧美综合一区| 美女www一区二区| 欧美一区二区三区公司| 悠悠色在线精品| 欧美三区在线观看| 亚洲国产精品久久一线不卡| 欧美自拍偷拍午夜视频| 亚洲成人三级小说| 欧美日韩一级大片网址| 午夜欧美在线一二页| 欧美日韩情趣电影| 日韩精彩视频在线观看| 欧美大黄免费观看| 日韩精品免费视频人成| 欧洲av一区二区嗯嗯嗯啊| 亚洲3atv精品一区二区三区| 欧美精品高清视频| 免费精品视频在线| 久久精品欧美一区二区三区麻豆| 国产精品亚洲一区二区三区在线 | 中文字幕在线一区| 91高清视频在线| 日韩和欧美的一区| 亚洲精品在线免费播放| 成人性生交大片免费看中文| 国产精品超碰97尤物18| 欧美视频在线观看一区二区| 亚洲成av人片观看| 欧美日韩一二三区| 久久精品国产999大香线蕉| 欧美一区二区三区婷婷月色| 久久99在线观看| 中文字幕永久在线不卡| 欧美日韩在线不卡| 久久精品国产第一区二区三区| 国产亚洲美州欧州综合国| 99久久er热在这里只有精品66| 亚洲精品第1页| 精品欧美久久久| 99久久99久久精品免费观看| 亚洲成人一区在线| 久久免费视频色| 成人综合婷婷国产精品久久蜜臀| 国产精品三级久久久久三级| 99r精品视频| 无码av免费一区二区三区试看| 精品91自产拍在线观看一区| aaa欧美日韩| 蜜臀av在线播放一区二区三区| 国产精品亲子乱子伦xxxx裸| 欧美日韩国产精选| 国产精品亚洲专一区二区三区| 午夜精品一区在线观看| 国产欧美精品一区二区色综合朱莉| 色视频欧美一区二区三区| 国产麻豆视频一区| 国产日韩精品一区| 加勒比av一区二区| 亚洲国产精品综合小说图片区| 国产人成亚洲第一网站在线播放| 欧美在线一二三四区| 成人黄色网址在线观看| 免费在线观看不卡| 亚洲丝袜精品丝袜在线| 国产午夜精品一区二区三区嫩草| 欧美性猛交xxxxxx富婆| 亚洲国产裸拍裸体视频在线观看乱了| 日本一区二区在线不卡| 欧美一级久久久久久久大片| 欧洲在线/亚洲| 国产91富婆露脸刺激对白| 视频一区二区国产| 一区二区三区四区不卡在线| 国产欧美一区二区三区网站| 日韩无一区二区| 欧美日韩色综合| 99riav久久精品riav| 成人va在线观看| 国产成人免费av在线| 国产美女av一区二区三区| 久久91精品国产91久久小草| 美女视频网站黄色亚洲| 青青草原综合久久大伊人精品优势 | 国产一区二区在线视频| 久久99精品网久久| 久久se这里有精品| 精品亚洲aⅴ乱码一区二区三区| 日韩黄色免费电影| 免费高清视频精品| 美腿丝袜亚洲一区| 老司机免费视频一区二区三区| 免费欧美在线视频| 激情综合亚洲精品| 国产一区二区91| 国产91清纯白嫩初高中在线观看 | 成人免费视频在线观看| 亚洲欧洲日产国码二区| 成人免费在线视频| 一个色综合网站| 亚洲小说春色综合另类电影| 亚洲一级二级在线| 日韩vs国产vs欧美| 裸体在线国模精品偷拍| 久久99精品国产麻豆婷婷洗澡| 激情文学综合网| 国产成人自拍网| jiyouzz国产精品久久| 色一情一乱一乱一91av| 欧美女孩性生活视频| 日韩一区二区精品葵司在线|