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

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

?? prdctfun.c

?? clips源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
   /*******************************************************/   /*      "C" Language Integrated Production System      */   /*                                                     */   /*             CLIPS Version 6.24  06/05/06            */   /*                                                     */   /*              PREDICATE FUNCTIONS MODULE             */   /*******************************************************//*************************************************************//* Purpose: Contains the code for several predicate          *//*   functions including not, and, or, eq, neq, <=, >=, <,   *//*   >, =, <>, symbolp, stringp, lexemep, numberp, integerp, *//*   floatp, oddp, evenp, multifieldp, sequencep, and        *//*   pointerp.                                               *//*                                                           *//* Principal Programmer(s):                                  *//*      Gary D. Riley                                        *//*                                                           *//* Contributing Programmer(s):                               *//*                                                           *//* Revision History:                                         *//*      6.23: Correction for FalseSymbol/TrueSymbol. DR0859  *//*                                                           *//*      6.24: Renamed BOOLEAN macro type to intBool.         *//*                                                           *//*************************************************************/#define _PRDCTFUN_SOURCE_#include <stdio.h>#define _STDIO_INCLUDED_#include "setup.h"#include "envrnmnt.h"#include "exprnpsr.h"#include "argacces.h"#include "multifld.h"#include "router.h"#include "prdctfun.h"/**************************************************//* PredicateFunctionDefinitions: Defines standard *//*   math and predicate functions.                *//**************************************************/globle void PredicateFunctionDefinitions(  void *theEnv)  {#if ! RUN_TIME   EnvDefineFunction2(theEnv,"not", 'b', NotFunction, "NotFunction", "11");   EnvDefineFunction2(theEnv,"and", 'b', AndFunction, "AndFunction", "2*");   EnvDefineFunction2(theEnv,"or", 'b', OrFunction, "OrFunction", "2*");   EnvDefineFunction2(theEnv,"eq", 'b', EqFunction, "EqFunction", "2*");   EnvDefineFunction2(theEnv,"neq", 'b', NeqFunction, "NeqFunction", "2*");   EnvDefineFunction2(theEnv,"<=", 'b', LessThanOrEqualFunction, "LessThanOrEqualFunction", "2*n");   EnvDefineFunction2(theEnv,">=", 'b', GreaterThanOrEqualFunction, "GreaterThanOrEqualFunction", "2*n");   EnvDefineFunction2(theEnv,"<", 'b', LessThanFunction, "LessThanFunction", "2*n");   EnvDefineFunction2(theEnv,">", 'b', GreaterThanFunction, "GreaterThanFunction", "2*n");   EnvDefineFunction2(theEnv,"=", 'b', NumericEqualFunction, "NumericEqualFunction", "2*n");   EnvDefineFunction2(theEnv,"<>", 'b', NumericNotEqualFunction, "NumericNotEqualFunction", "2*n");   EnvDefineFunction2(theEnv,"!=", 'b', NumericNotEqualFunction, "NumericNotEqualFunction", "2*n");   EnvDefineFunction2(theEnv,"symbolp", 'b', SymbolpFunction, "SymbolpFunction", "11");   EnvDefineFunction2(theEnv,"wordp", 'b', SymbolpFunction, "SymbolpFunction", "11");   EnvDefineFunction2(theEnv,"stringp", 'b', StringpFunction, "StringpFunction", "11");   EnvDefineFunction2(theEnv,"lexemep", 'b', LexemepFunction, "LexemepFunction", "11");   EnvDefineFunction2(theEnv,"numberp", 'b', NumberpFunction, "NumberpFunction", "11");   EnvDefineFunction2(theEnv,"integerp", 'b', IntegerpFunction, "IntegerpFunction", "11");   EnvDefineFunction2(theEnv,"floatp", 'b', FloatpFunction, "FloatpFunction", "11");   EnvDefineFunction2(theEnv,"oddp", 'b', OddpFunction, "OddpFunction", "11i");   EnvDefineFunction2(theEnv,"evenp", 'b', EvenpFunction, "EvenpFunction", "11i");   EnvDefineFunction2(theEnv,"multifieldp",'b', MultifieldpFunction, "MultifieldpFunction", "11");   EnvDefineFunction2(theEnv,"sequencep",'b', MultifieldpFunction, "MultifieldpFunction", "11");   EnvDefineFunction2(theEnv,"pointerp", 'b', PointerpFunction, "PointerpFunction", "11");#else#if MAC_MCW || IBM_MCW || MAC_XCD#pragma unused(theEnv)#endif#endif  }/************************************//* EqFunction: H/L access routine   *//*   for the eq function.           *//************************************/globle intBool EqFunction(  void *theEnv)  {   DATA_OBJECT item, nextItem;   int numArgs, i;   struct expr *theExpression;   /*====================================*/   /* Determine the number of arguments. */   /*====================================*/   numArgs = EnvRtnArgCount(theEnv);   if (numArgs == 0) return(FALSE);   /*==============================================*/   /* Get the value of the first argument against  */   /* which subsequent arguments will be compared. */   /*==============================================*/   theExpression = GetFirstArgument();   EvaluateExpression(theEnv,theExpression,&item);   /*=====================================*/   /* Compare all arguments to the first. */   /* If any are the same, return FALSE.  */   /*=====================================*/   theExpression = GetNextArgument(theExpression);   for (i = 2 ; i <= numArgs ; i++)     {      EvaluateExpression(theEnv,theExpression,&nextItem);      if (GetType(nextItem) != GetType(item))        { return(FALSE); }      if (GetType(nextItem) == MULTIFIELD)        {         if (MultifieldDOsEqual(&nextItem,&item) == FALSE)           { return(FALSE); }        }      else if (nextItem.value != item.value)        { return(FALSE); }      theExpression = GetNextArgument(theExpression);     }   /*=====================================*/   /* All of the arguments were different */   /* from the first. Return TRUE.        */   /*=====================================*/   return(TRUE);  }/*************************************//* NeqFunction: H/L access routine   *//*   for the neq function.           *//*************************************/globle intBool NeqFunction(  void *theEnv)  {   DATA_OBJECT item, nextItem;   int numArgs, i;   struct expr *theExpression;   /*====================================*/   /* Determine the number of arguments. */   /*====================================*/   numArgs = EnvRtnArgCount(theEnv);   if (numArgs == 0) return(FALSE);   /*==============================================*/   /* Get the value of the first argument against  */   /* which subsequent arguments will be compared. */   /*==============================================*/   theExpression = GetFirstArgument();   EvaluateExpression(theEnv,theExpression,&item);   /*=====================================*/   /* Compare all arguments to the first. */   /* If any are different, return FALSE. */   /*=====================================*/   for (i = 2, theExpression = GetNextArgument(theExpression);        i <= numArgs;        i++, theExpression = GetNextArgument(theExpression))     {      EvaluateExpression(theEnv,theExpression,&nextItem);      if (GetType(nextItem) != GetType(item))        { continue; }      else if (nextItem.type == MULTIFIELD)        {         if (MultifieldDOsEqual(&nextItem,&item) == TRUE)           { return(FALSE); }        }      else if (nextItem.value == item.value)        { return(FALSE); }     }   /*=====================================*/   /* All of the arguments were identical */   /* to the first. Return TRUE.          */   /*=====================================*/   return(TRUE);  }/*****************************************//* StringpFunction: H/L access routine   *//*   for the stringp function.           *//*****************************************/globle intBool StringpFunction(  void *theEnv)  {   DATA_OBJECT item;   if (EnvArgCountCheck(theEnv,"stringp",EXACTLY,1) == -1) return(FALSE);   EnvRtnUnknown(theEnv,1,&item);   if (GetType(item) == STRING)     { return(TRUE); }   else     { return(FALSE); }  }/*****************************************//* SymbolpFunction: H/L access routine   *//*   for the symbolp function.           *//*****************************************/globle intBool SymbolpFunction(  void *theEnv)  {   DATA_OBJECT item;   if (EnvArgCountCheck(theEnv,"symbolp",EXACTLY,1) == -1) return(FALSE);   EnvRtnUnknown(theEnv,1,&item);   if (GetType(item) == SYMBOL)     { return(TRUE); }   else     { return(FALSE); }  }/*****************************************//* LexemepFunction: H/L access routine   *//*   for the lexemep function.           *//*****************************************/globle intBool LexemepFunction(  void *theEnv)  {   DATA_OBJECT item;   if (EnvArgCountCheck(theEnv,"lexemep",EXACTLY,1) == -1) return(FALSE);   EnvRtnUnknown(theEnv,1,&item);   if ((GetType(item) == SYMBOL) || (GetType(item) == STRING))     { return(TRUE); }   else     { return(FALSE); }  }/*****************************************//* NumberpFunction: H/L access routine   *//*   for the numberp function.           *//*****************************************/globle intBool NumberpFunction(  void *theEnv)  {   DATA_OBJECT item;   if (EnvArgCountCheck(theEnv,"numberp",EXACTLY,1) == -1) return(FALSE);   EnvRtnUnknown(theEnv,1,&item);   if ((GetType(item) == FLOAT) || (GetType(item) == INTEGER))     { return(TRUE); }   else     { return(FALSE); }  }/****************************************//* FloatpFunction: H/L access routine   *//*   for the floatp function.           *//****************************************/globle intBool FloatpFunction(  void *theEnv)  {   DATA_OBJECT item;   if (EnvArgCountCheck(theEnv,"floatp",EXACTLY,1) == -1) return(FALSE);   EnvRtnUnknown(theEnv,1,&item);   if (GetType(item) == FLOAT)     { return(TRUE); }   else     { return(FALSE); }  }/******************************************//* IntegerpFunction: H/L access routine   *//*   for the integerp function.           *//******************************************/globle intBool IntegerpFunction(  void *theEnv)  {   DATA_OBJECT item;   if (EnvArgCountCheck(theEnv,"integerp",EXACTLY,1) == -1) return(FALSE);   EnvRtnUnknown(theEnv,1,&item);   if (GetType(item) != INTEGER) return(FALSE);   return(TRUE);  }/*********************************************//* MultifieldpFunction: H/L access routine   *//*   for the multifieldp function.           *//*********************************************/globle intBool MultifieldpFunction(  void *theEnv)  {   DATA_OBJECT item;   if (EnvArgCountCheck(theEnv,"multifieldp",EXACTLY,1) == -1) return(FALSE);   EnvRtnUnknown(theEnv,1,&item);   if (GetType(item) != MULTIFIELD) return(FALSE);   return(TRUE);  }/******************************************//* PointerpFunction: H/L access routine   *//*   for the pointerp function.           *//******************************************/globle intBool PointerpFunction(  void *theEnv)  {   DATA_OBJECT item;   if (EnvArgCountCheck(theEnv,"pointerp",EXACTLY,1) == -1) return(FALSE);   EnvRtnUnknown(theEnv,1,&item);   if (GetType(item) != EXTERNAL_ADDRESS) return(FALSE);   return(TRUE);  }/*************************************//* NotFunction: H/L access routine   *//*   for the not function.           *//*************************************/globle intBool NotFunction(  void *theEnv)  {   EXPRESSION *theArgument;   DATA_OBJECT result;   theArgument = GetFirstArgument();   if (theArgument == NULL) { return(FALSE); }   if (EvaluateExpression(theEnv,theArgument,&result)) return(FALSE);   if ((result.value == EnvFalseSymbol(theEnv)) && (result.type == SYMBOL))     { return(TRUE); }      return(FALSE);  }/*************************************//* AndFunction: H/L access routine   *//*   for the and function.           *//*************************************/globle intBool AndFunction(  void *theEnv)  {   EXPRESSION *theArgument;   DATA_OBJECT result;   for (theArgument = GetFirstArgument();        theArgument != NULL;        theArgument = GetNextArgument(theArgument))     {      if (EvaluateExpression(theEnv,theArgument,&result)) return(FALSE);      if ((result.value == EnvFalseSymbol(theEnv)) && (result.type == SYMBOL))        { return(FALSE); }     }   return(TRUE);  }/************************************//* OrFunction: H/L access routine   *//*   for the or function.           *//************************************/globle intBool OrFunction(  void *theEnv)  {   EXPRESSION *theArgument;   DATA_OBJECT result;   for (theArgument = GetFirstArgument();        theArgument != NULL;        theArgument = GetNextArgument(theArgument))     {      if (EvaluateExpression(theEnv,theArgument,&result)) return(FALSE);      if ((result.value != EnvFalseSymbol(theEnv)) || (result.type != SYMBOL))        { return(TRUE); }     }   return(FALSE);  }/*****************************************//* LessThanOrEqualFunction: H/L access   *//*   routine for the <= function.        *//*****************************************/globle intBool LessThanOrEqualFunction(  void *theEnv)  {   EXPRESSION *theArgument;   DATA_OBJECT rv1, rv2;   int pos = 1;   /*=========================*/   /* Get the first argument. */   /*=========================*/   theArgument = GetFirstArgument();   if (theArgument == NULL) { return(TRUE); }   if (! GetNumericArgument(theEnv,theArgument,"<=",&rv1,FALSE,pos)) return(FALSE);   pos++;   /*====================================================*/   /* Compare each of the subsequent arguments to its    */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色图欧洲色图| 色诱视频网站一区| 国产iv一区二区三区| 风间由美一区二区三区在线观看 | 久久精品国产一区二区三 | 日韩免费成人网| 国产精品私人影院| 亚洲国产你懂的| 国产成人精品三级| 欧美日本国产视频| 久久久不卡影院| 天天av天天翘天天综合网| 精品一区二区免费视频| 色妹子一区二区| 2021中文字幕一区亚洲| 亚洲福利视频导航| 91亚洲男人天堂| 久久精品视频一区二区三区| 一区二区三区国产| 国产999精品久久久久久| 日韩欧美不卡在线观看视频| 一区二区三区日韩精品视频| 国产馆精品极品| 精品少妇一区二区| 美女网站在线免费欧美精品| 在线一区二区观看| 亚洲欧美国产三级| 成人深夜在线观看| 国产精品毛片a∨一区二区三区| 裸体在线国模精品偷拍| 日韩一区二区免费在线电影| 婷婷开心久久网| 欧美性一区二区| 亚洲一区二区精品3399| 欧美午夜理伦三级在线观看| 一级精品视频在线观看宜春院 | 国产乱一区二区| 免费在线观看成人| 日韩无一区二区| 久久99在线观看| 久久久久久久综合色一本| 激情图片小说一区| 中文字幕成人av| 色欧美片视频在线观看| 亚洲成年人影院| 日韩欧美亚洲另类制服综合在线| 国产真实乱偷精品视频免| 久久久久久夜精品精品免费| 国产一区二区在线观看免费| 国产亚洲婷婷免费| www..com久久爱| 五月天国产精品| 欧美国产日韩在线观看| 国产欧美精品一区| 欧美性猛交xxxx黑人交| 另类人妖一区二区av| 国产亚洲成av人在线观看导航| 91丨porny丨户外露出| 婷婷丁香激情综合| 中文成人av在线| 欧美一级二级在线观看| 99麻豆久久久国产精品免费 | 看国产成人h片视频| 国产精品激情偷乱一区二区∴| 欧美精品三级日韩久久| 国产精品1区二区.| 一区二区三区不卡视频| 国产无遮挡一区二区三区毛片日本| 在线免费不卡视频| 国产精品69毛片高清亚洲| 亚洲成人av福利| 亚洲女人****多毛耸耸8| 精品国产伦一区二区三区免费 | 日韩精品一区二区三区在线| av一区二区三区| 国产精品乡下勾搭老头1| 婷婷综合另类小说色区| 亚洲另类在线一区| 中文字幕精品综合| 久久人人爽爽爽人久久久| 欧美日韩国产综合视频在线观看| 99久久久免费精品国产一区二区| 狠狠色丁香婷综合久久| 喷白浆一区二区| 亚洲一区二区三区四区在线免费观看 | 国产精品乱码妇女bbbb| 久久亚区不卡日本| 精品国产露脸精彩对白| 日韩精品一区二区三区蜜臀| 欧美一卡二卡在线观看| 欧美日韩国产综合视频在线观看| 欧美日本一区二区三区四区| 欧美综合久久久| 日韩一区二区三区观看| 国产一区二区三区蝌蚪| 中日韩免费视频中文字幕| 国产精品网站一区| 日韩中文字幕区一区有砖一区 | 欧美亚洲国产一区二区三区| 91免费国产在线观看| 97se亚洲国产综合自在线观| 不卡一区二区三区四区| 99久久精品免费看国产| 一本大道av伊人久久综合| 日本久久精品电影| 欧美日韩成人综合天天影院| 欧美日韩一区在线| 精品精品国产高清a毛片牛牛 | 91麻豆免费在线观看| 精品视频在线视频| 日韩一二三区不卡| 亚洲品质自拍视频| 日韩在线观看一区二区| 99re热视频精品| 精品久久久影院| 樱桃国产成人精品视频| 国内精品第一页| 欧美精品一级二级| 亚洲综合免费观看高清在线观看| 奇米综合一区二区三区精品视频 | 久久99这里只有精品| 日本伦理一区二区| 国产女人18水真多18精品一级做| 亚洲一卡二卡三卡四卡| 懂色av一区二区三区蜜臀| 精品国产免费一区二区三区四区 | 国产一区二区精品久久99| 欧美日韩免费一区二区三区视频| 国产精品沙发午睡系列990531| 免费成人在线视频观看| 91行情网站电视在线观看高清版| 国产三区在线成人av| 国产一区二区三区电影在线观看 | 日韩在线观看一区二区| 97精品视频在线观看自产线路二| 一区二区三区四区五区视频在线观看| 99国产精品视频免费观看| 亚洲欧洲制服丝袜| 欧美日韩色一区| 久久99日本精品| 欧美一级艳片视频免费观看| 久久精品99国产精品| 欧美成人精品1314www| 久久er精品视频| 精品国产一区二区三区忘忧草| 激情欧美日韩一区二区| 久久精品夜色噜噜亚洲a∨| 国产风韵犹存在线视精品| 国产精品欧美经典| 色先锋久久av资源部| 亚洲一区二区三区小说| 日韩一区二区不卡| 成人精品电影在线观看| 亚洲综合在线观看视频| 欧美一级在线观看| 成人永久aaa| 亚洲成人动漫一区| 国产精品丝袜91| 色老汉av一区二区三区| 蜜桃av噜噜一区二区三区小说| 久久久久久久综合| 欧美亚洲综合在线| 国产一区二区伦理片| 亚洲一区二区在线观看视频| 久久精品在这里| 91在线云播放| 国产高清不卡二三区| 日韩电影在线一区| 亚洲精品久久嫩草网站秘色| 精品奇米国产一区二区三区| 色综合中文字幕| 国产乱码一区二区三区| 日韩在线a电影| 国产精品短视频| 日韩美女视频在线| 在线亚洲一区二区| 91蜜桃视频在线| 成人免费黄色在线| 开心九九激情九九欧美日韩精美视频电影| 国产精品黄色在线观看| 国产亚洲成av人在线观看导航| 777午夜精品免费视频| 欧美精选在线播放| 欧美日本在线观看| 欧美视频在线一区| 欧美日韩综合在线| 欧美人伦禁忌dvd放荡欲情| 欧美中文字幕一区二区三区| 91在线视频在线| 91在线视频网址| 欧美亚洲尤物久久| 欧美中文字幕一二三区视频| 欧美性欧美巨大黑白大战| 在线视频你懂得一区二区三区| 91福利区一区二区三区| 欧美在线观看视频一区二区三区| 91久久精品日日躁夜夜躁欧美| 欧美性三三影院| 精品国产三级a在线观看| 国产精品伦理在线|