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

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

?? factrhs.c

?? clips源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
        { theDeftemplate = CreateImpliedDeftemplate(theEnv,(SYMBOL_HN *) templateName,TRUE); }     }#else    {     NoSuchTemplateError(theEnv,ValueToString(templateName));     *error = TRUE;     return(NULL);    }#endif   /*=========================================*/   /* If an explicit deftemplate exists, then */   /* parse the fact as a deftemplate fact.   */   /*=========================================*/   if ((theDeftemplate != NULL) && (theDeftemplate->implied == FALSE))     {      firstOne = GenConstant(theEnv,DEFTEMPLATE_PTR,theDeftemplate);      firstOne->nextArg = ParseAssertTemplate(theEnv,readSource,tempToken,                                              error,endType,                                              constantsOnly,theDeftemplate);      if (*error)        {         ReturnExpression(theEnv,firstOne);         firstOne = NULL;        }      return(firstOne);     }   /*========================================*/   /* Parse the fact as an ordered RHS fact. */   /*========================================*/   firstOne = GenConstant(theEnv,DEFTEMPLATE_PTR,theDeftemplate);#if (! RUN_TIME) && (! BLOAD_ONLY)   SavePPBuffer(theEnv," ");#endif   while ((nextOne = GetAssertArgument(theEnv,readSource,tempToken,                                        error,endType,constantsOnly,&printError)) != NULL)     {      if (argHead == NULL) argHead = nextOne;      else lastOne->nextArg = nextOne;      lastOne = nextOne;#if (! RUN_TIME) && (! BLOAD_ONLY)      SavePPBuffer(theEnv," ");#endif     }   /*===========================================================*/   /* If an error occurred, set the error flag and return NULL. */   /*===========================================================*/   if (*error)     {      if (printError) SyntaxErrorMessage(theEnv,"RHS patterns");      ReturnExpression(theEnv,firstOne);      ReturnExpression(theEnv,argHead);      return(NULL);     }   /*=====================================*/   /* Fix the pretty print representation */   /* of the RHS ordered fact.            */   /*=====================================*/#if (! RUN_TIME) && (! BLOAD_ONLY)   PPBackup(theEnv);   PPBackup(theEnv);   SavePPBuffer(theEnv,tempToken->printForm);#endif   /*==========================================================*/   /* Ordered fact assertions are processed by stuffing all of */   /* the fact's proposition (except the relation name) into a */   /* single multifield slot.                                  */   /*==========================================================*/   firstOne->nextArg = GenConstant(theEnv,FACT_STORE_MULTIFIELD,AddBitMap(theEnv,(void *) "\0",1));   firstOne->nextArg->argList = argHead;   /*==============================*/   /* Return the RHS ordered fact. */   /*==============================*/   return(firstOne);  }/********************************************************************//* GetAssertArgument: Parses a single RHS slot value and returns an *//*   expression representing the value. When parsing a deftemplate  *//*   slot, the slot name has already been parsed when this function *//*   is called. NULL is returned if a slot or fact delimiter is     *//*   encountered. In the event of a parse error, the error flag     *//*   passed as an argument is set.                                  *//********************************************************************/globle struct expr *GetAssertArgument(  void *theEnv,  char *logicalName,  struct token *theToken,  int *error,  int endType,  int constantsOnly,  int *printError)  {#if ! RUN_TIME   struct expr *nextField;#else   struct expr *nextField = NULL;#endif   /*=================================================*/   /* Read in the first token of the slot's value. If */   /* the end delimiter is encountered, then return.  */   /*=================================================*/   *printError = TRUE;   GetToken(theEnv,logicalName,theToken);   if (theToken->type == endType) return(NULL);   /*=============================================================*/   /* If an equal sign of left parenthesis was parsed, then parse */   /* a function which is to be evaluated to determine the slot's */   /* value. The equal sign corresponds to the return value       */   /* constraint which can be used in LHS fact patterns. The      */   /* equal sign is no longer necessary on either the LHS or RHS  */   /* of a rule to indicate that a function is being evaluated to */   /* determine its value either for assignment or pattern        */   /* matching.                                                   */   /*=============================================================*/   if ((theToken->type == SYMBOL) ?       (strcmp(ValueToString(theToken->value),"=") == 0) :       (theToken->type == LPAREN))     {      if (constantsOnly)        {         *error = TRUE;         return(NULL);        }#if ! RUN_TIME      if (theToken->type == LPAREN) nextField = Function1Parse(theEnv,logicalName);      else nextField = Function0Parse(theEnv,logicalName);      if (nextField == NULL)#endif        {         *printError = FALSE;         *error = TRUE;        }#if ! RUN_TIME      else        {         theToken->type= RPAREN;         theToken->value = (void *) EnvAddSymbol(theEnv,")");         theToken->printForm = ")";        }#endif      return(nextField);     }   /*==================================================*/   /* Constants are always allowed as RHS slot values. */   /*==================================================*/   if ((theToken->type == SYMBOL) || (theToken->type == STRING) ||#if OBJECT_SYSTEM           (theToken->type == INSTANCE_NAME) ||#endif           (theToken->type == FLOAT) || (theToken->type == INTEGER))     { return(GenConstant(theEnv,theToken->type,theToken->value)); }   /*========================================*/   /* Variables are also allowed as RHS slot */   /* values under some circumstances.       */   /*========================================*/   if ((theToken->type == SF_VARIABLE) ||#if DEFGLOBAL_CONSTRUCT            (theToken->type == GBL_VARIABLE) ||            (theToken->type == MF_GBL_VARIABLE) ||#endif            (theToken->type == MF_VARIABLE))     {      if (constantsOnly)        {         *error = TRUE;         return(NULL);        }      return(GenConstant(theEnv,theToken->type,theToken->value));     }   /*==========================================================*/   /* If none of the other cases have been satisfied, then the */   /* token parsed is not appropriate for a RHS slot value.    */   /*==========================================================*/   *error = TRUE;   return(NULL);  }/****************************************************//* StringToFact: Converts the string representation *//*   of a fact to a fact data structure.            *//****************************************************/globle struct fact *StringToFact(  void *theEnv,  char *str)  {   struct token theToken;   struct fact *factPtr;   unsigned numberOfFields = 0, whichField;   struct expr *assertArgs, *tempPtr;   int error = FALSE;   DATA_OBJECT theResult;   /*=========================================*/   /* Open a string router and parse the fact */   /* using the router as an input source.    */   /*=========================================*/      SetEvaluationError(theEnv,FALSE);   OpenStringSource(theEnv,"assert_str",str,0);   assertArgs = GetRHSPattern(theEnv,"assert_str",&theToken,                              &error,FALSE,TRUE,                              TRUE,RPAREN);   CloseStringSource(theEnv,"assert_str");   /*===========================================*/   /* Check for errors or the use of variables. */   /*===========================================*/      if ((assertArgs == NULL) && (! error))     {      SyntaxErrorMessage(theEnv,"RHS patterns");      ReturnExpression(theEnv,assertArgs);      return(NULL);     }   if (error)     {      ReturnExpression(theEnv,assertArgs);      return(NULL);     }   if (ExpressionContainsVariables(assertArgs,FALSE))     {      LocalVariableErrorMessage(theEnv,"the assert-string function");      SetEvaluationError(theEnv,TRUE);      ReturnExpression(theEnv,assertArgs);      return(NULL);     }   /*=======================================================*/   /* Count the number of fields needed for the fact and    */   /* create a fact data structure of the appropriate size. */   /*=======================================================*/   for (tempPtr = assertArgs->nextArg; tempPtr != NULL; tempPtr = tempPtr->nextArg)     { numberOfFields++; }   factPtr = (struct fact *) CreateFactBySize(theEnv,numberOfFields);   factPtr->whichDeftemplate = (struct deftemplate *) assertArgs->value;   /*=============================================*/   /* Copy the fields to the fact data structure. */   /*=============================================*/   ExpressionInstall(theEnv,assertArgs); /* DR0836 */   whichField = 0;   for (tempPtr = assertArgs->nextArg; tempPtr != NULL; tempPtr = tempPtr->nextArg)     {      EvaluateExpression(theEnv,tempPtr,&theResult);      factPtr->theProposition.theFields[whichField].type = theResult.type;      factPtr->theProposition.theFields[whichField].value = theResult.value;      whichField++;     }   ExpressionDeinstall(theEnv,assertArgs); /* DR0836 */   ReturnExpression(theEnv,assertArgs);   /*==================*/   /* Return the fact. */   /*==================*/   return(factPtr);  }#if RUN_TIME || BLOAD_ONLY || BLOAD || BLOAD_AND_BSAVE/*********************************************************//* NoSuchTemplateError: Prints out an error message      *//* in a BLOAD_ONLY, RUN_TIME or bload active environment *//* when an implied deftemplate cannot be created for     *//* an assert                                             *//*********************************************************/static void NoSuchTemplateError(  void *theEnv,  char *templateName)  {   PrintErrorID(theEnv,"FACTRHS",1,FALSE);   EnvPrintRouter(theEnv,WERROR,"Template ");   EnvPrintRouter(theEnv,WERROR,templateName);   EnvPrintRouter(theEnv,WERROR," does not exist for assert.\n");  }#endif /* RUN_TIME || BLOAD_ONLY || BLOAD || BLOAD_AND_BSAVE */#endif /* DEFTEMPLATE_CONSTRUCT */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区二区久久不卡| 亚洲va国产天堂va久久en| 久久亚洲捆绑美女| 成人国产精品免费观看动漫| 国产精品美女视频| 亚洲第一主播视频| 欧美视频完全免费看| 欧美一区二区日韩| 久久久久久**毛片大全| 一区二区三区四区五区视频在线观看| 一区二区视频免费在线观看| 午夜欧美2019年伦理| 国产成人av一区| 欧美亚洲动漫精品| 欧美极品xxx| 国产一区福利在线| 97久久精品人人澡人人爽| 9191成人精品久久| 久久色视频免费观看| 亚洲高清免费观看高清完整版在线观看| 亚洲国产精品久久人人爱 | 国产69精品久久777的优势| 成人午夜短视频| 日韩写真欧美这视频| 亚洲欧美日韩国产综合| 国产成人高清视频| 中日韩av电影| jlzzjlzz亚洲女人18| 中文字幕人成不卡一区| 久久国产尿小便嘘嘘| 欧美精品免费视频| 亚洲风情在线资源站| 色香蕉成人二区免费| 亚洲欧美另类久久久精品2019| 成人福利视频在线| 一区在线中文字幕| 91丨porny丨中文| 亚洲男同性恋视频| 在线看国产日韩| 亚洲6080在线| 久久亚洲二区三区| www.一区二区| 亚洲国产一区二区视频| 欧美三电影在线| 久久99精品国产91久久来源| 日韩免费视频一区二区| 欧美专区亚洲专区| 精品一区二区三区视频| 综合婷婷亚洲小说| 99久久精品免费看| 中文无字幕一区二区三区| 成人av影视在线观看| 亚洲成人激情av| 久久精品视频一区二区| 91高清视频在线| 国产精品一区免费视频| 亚洲美女视频在线| 欧美成人午夜电影| 日本大香伊一区二区三区| 七七婷婷婷婷精品国产| 国产精品全国免费观看高清| 在线播放91灌醉迷j高跟美女 | 在线观看亚洲精品视频| 久久电影国产免费久久电影| 亚洲精品乱码久久久久久| 欧美大片国产精品| 欧美性猛交一区二区三区精品| 国产乱人伦偷精品视频免下载| 亚洲午夜电影在线观看| 国产精品亲子乱子伦xxxx裸| 日韩一区二区不卡| 欧美精选在线播放| 欧美性受xxxx| 欧美理论片在线| 欧美福利电影网| 欧美系列亚洲系列| 91麻豆国产在线观看| 成人毛片视频在线观看| 国产宾馆实践打屁股91| 国产成人精品亚洲日本在线桃色| 另类的小说在线视频另类成人小视频在线 | 久久久av毛片精品| 久久久精品国产免费观看同学| 欧美tickling网站挠脚心| 欧日韩精品视频| 国产黄色91视频| 国内精品伊人久久久久av影院| 国产精品国产成人国产三级| 欧美激情中文不卡| 亚洲视频网在线直播| 久久婷婷综合激情| 亚洲素人一区二区| 夜夜揉揉日日人人青青一国产精品| 亚洲激情在线播放| 日韩av在线发布| 激情综合色综合久久| 日韩电影在线一区| 国产精品99久久久久久久vr| 成人天堂资源www在线| 欧美色综合影院| 国产日韩欧美综合在线| 亚洲视频中文字幕| 精品在线免费观看| 在线欧美一区二区| 久久九九影视网| 日本欧美在线看| 91蜜桃免费观看视频| 欧美精品99久久久**| 国产精品久久久久久妇女6080| 一区二区三区在线免费| 国产一区二区免费在线| 在线亚洲免费视频| 亚洲国产激情av| 精品一区二区久久久| 色网站国产精品| 中文字幕在线不卡视频| 蜜臀av一区二区| 在线观看91精品国产麻豆| **性色生活片久久毛片| 国产成人综合自拍| 久久综合色之久久综合| 久久se这里有精品| 精品国产一区二区三区忘忧草| 亚洲成av人在线观看| 欧美伊人精品成人久久综合97| 亚洲欧美一区二区三区国产精品| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 一区二区三区四区在线播放| 成人性生交大片免费看中文| 欧美成人bangbros| 国产精品中文字幕日韩精品| 日韩欧美另类在线| 国产在线乱码一区二区三区| 精品少妇一区二区三区日产乱码 | 欧美绝品在线观看成人午夜影视| 亚洲激情一二三区| 欧美另类videos死尸| 美女脱光内衣内裤视频久久影院| 日韩欧美在线网站| 久久不见久久见免费视频7| 精品成人一区二区三区四区| 久久91精品久久久久久秒播 | 亚洲国产综合视频在线观看| 欧美午夜电影在线播放| 久久成人久久爱| 亚洲男人天堂av| 日韩欧美激情一区| jlzzjlzz国产精品久久| 免费视频一区二区| 亚洲婷婷综合久久一本伊一区| 欧美亚洲日本一区| 国产91丝袜在线18| 日韩国产精品久久| 国产人伦精品一区二区| 欧美色图天堂网| www.欧美日韩| 精品一区二区在线视频| 亚洲电影你懂得| 国产精品久久三| 精品国产伦一区二区三区观看体验| 99久久国产综合精品麻豆| 久久精品国产99| 亚洲成人免费视频| 亚洲精品一二三| 亚洲色图丝袜美腿| 中文字幕精品一区二区三区精品| 在线电影一区二区三区| 日本大香伊一区二区三区| 色综合天天在线| 91麻豆免费看| 欧美日韩视频不卡| 色999日韩国产欧美一区二区| 成人免费观看男女羞羞视频| 激情欧美一区二区| 国产 欧美在线| 不卡av免费在线观看| www.av精品| 制服丝袜亚洲播放| 91精品国产全国免费观看| 欧美精品色一区二区三区| 91精品国产一区二区| 国产人久久人人人人爽| 亚洲精品国产无天堂网2021 | 久久国产精品区| 国产精品亚洲一区二区三区妖精 | 亚洲精品亚洲人成人网在线播放| 亚洲天堂成人在线观看| 亚洲国产日韩综合久久精品| 亚洲五月六月丁香激情| 久久精品国产网站| 菠萝蜜视频在线观看一区| 91精品国产综合久久蜜臀| 中文字幕不卡在线播放| 五月天丁香久久| 91色porny蝌蚪| 久久久欧美精品sm网站| 亚洲成av人影院| 色偷偷久久一区二区三区| 久久久影院官网| 琪琪久久久久日韩精品|