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

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

?? classpsr.c

?? clips源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
   /*******************************************************/   /*      "C" Language Integrated Production System      */   /*                                                     */   /*               CLIPS Version 6.24  07/01/05          */   /*                                                     */   /*                  CLASS PARSER MODULE                */   /*******************************************************//**************************************************************//* Purpose: Parsing Routines for Defclass Construct           *//*                                                            *//* Principal Programmer(s):                                   *//*      Brian L. Donnell                                      *//*                                                            *//* Contributing Programmer(s):                                *//*                                                            *//* Revision History:                                          *//*      6.24: Added allowed-classes slot facet.               *//*                                                            *//*            Converted INSTANCE_PATTERN_MATCHING to          *//*            DEFRULE_CONSTRUCT.                              *//*                                                            *//*            Renamed BOOLEAN macro type to intBool.          *//*                                                            *//**************************************************************//* =========================================   *****************************************               EXTERNAL DEFINITIONS   =========================================   ***************************************** */#include "setup.h"#if OBJECT_SYSTEM && (! BLOAD_ONLY) && (! RUN_TIME)#if BLOAD || BLOAD_AND_BSAVE#include "bload.h"#endif#include "classcom.h"#include "classfun.h"#include "clsltpsr.h"#include "cstrcpsr.h"#include "envrnmnt.h"#include "inherpsr.h"#include "memalloc.h"#include "modulpsr.h"#include "modulutl.h"#include "msgpsr.h"#include "router.h"#include "scanner.h"#define _CLASSPSR_SOURCE_#include "classpsr.h"/* =========================================   *****************************************                   CONSTANTS   =========================================   ***************************************** */#define ROLE_RLN             "role"#define ABSTRACT_RLN         "abstract"#define CONCRETE_RLN         "concrete"#define HANDLER_DECL         "message-handler"#define SLOT_RLN             "slot"#define SGL_SLOT_RLN         "single-slot"#define MLT_SLOT_RLN         "multislot"#define DIRECT               0#define INHERIT              1/* =========================================   *****************************************      INTERNALLY VISIBLE FUNCTION HEADERS   =========================================   ***************************************** */static intBool ValidClassName(void *,char *,DEFCLASS **);static intBool ParseSimpleQualifier(void *,char *,char *,char *,char *,intBool *,intBool *);static intBool ReadUntilClosingParen(void *,char *,struct token *);static void AddClass(void *,DEFCLASS *);static void BuildSubclassLinks(void *,DEFCLASS *);static void FormInstanceTemplate(void *,DEFCLASS *);static void FormSlotNameMap(void *,DEFCLASS *);static TEMP_SLOT_LINK *MergeSlots(void *,TEMP_SLOT_LINK *,DEFCLASS *,short *,int);static void PackSlots(void *,DEFCLASS *,TEMP_SLOT_LINK *);#if DEFMODULE_CONSTRUCTstatic void CreateClassScopeMap(void *,DEFCLASS *);#endifstatic void CreatePublicSlotMessageHandlers(void *,DEFCLASS *);/* =========================================   *****************************************          EXTERNALLY VISIBLE FUNCTIONS   =========================================   ***************************************** *//***************************************************************************************  NAME         : ParseDefclass  DESCRIPTION  : (defclass ...) is a construct (as                 opposed to a function), thus no variables                 may be used.  This means classes may only                 be STATICALLY defined (like rules).  INPUTS       : The logical name of the router                    for the parser input  RETURNS      : FALSE if successful parse, TRUE otherwise  SIDE EFFECTS : Inserts valid class definition into                 Class Table.  NOTES        : H/L Syntax :                 (defclass <name> [<comment>]                    (is-a <superclass-name>+)                    <class-descriptor>*)                 <class-descriptor> :== (slot <name> <slot-descriptor>*) |                                        (role abstract|concrete) |                                        (pattern-match reactive|non-reactive)                                        These are for documentation only:                                        (message-handler <name> [<type>])                 <slot-descriptor>  :== (default <default-expression>) |                                        (default-dynamic <default-expression>) |                                        (storage shared|local) |                                        (access read-only|read-write|initialize-only) |                                        (propagation no-inherit|inherit) |                                        (source composite|exclusive)                                        (pattern-match reactive|non-reactive)                                        (visibility public|private)                                        (override-message <message-name>)                                        (type ...) |                                        (cardinality ...) |                                        (allowed-symbols ...) |                                        (allowed-strings ...) |                                        (allowed-numbers ...) |                                        (allowed-integers ...) |                                        (allowed-floats ...) |                                        (allowed-values ...) |                                        (allowed-instance-names ...) |                                        (allowed-classes ...) |                                        (range ...)               <default-expression> ::= ?NONE | ?VARIABLE | <expression>*  ***************************************************************************************/globle int ParseDefclass(  void *theEnv,  char *readSource)  {   SYMBOL_HN *cname;   DEFCLASS *cls;   PACKED_CLASS_LINKS *sclasses,*preclist;   TEMP_SLOT_LINK *slots = NULL;   int roleSpecified = FALSE,       abstract = FALSE,       parseError;#if DEFRULE_CONSTRUCT   int patternMatchSpecified = FALSE,       reactive = TRUE;#endif   SetPPBufferStatus(theEnv,ON);   FlushPPBuffer(theEnv);   SetIndentDepth(theEnv,3);   SavePPBuffer(theEnv,"(defclass ");#if BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE   if ((Bloaded(theEnv)) && (! ConstructData(theEnv)->CheckSyntaxMode))     {      CannotLoadWithBloadMessage(theEnv,"defclass");      return(TRUE);     }#endif   cname = GetConstructNameAndComment(theEnv,readSource,&DefclassData(theEnv)->ObjectParseToken,"defclass",                                      EnvFindDefclass,NULL,"#",TRUE,                                      TRUE,TRUE);   if (cname == NULL)     return(TRUE);   if (ValidClassName(theEnv,ValueToString(cname),&cls) == FALSE)     return(TRUE);   sclasses = ParseSuperclasses(theEnv,readSource,cname);   if (sclasses == NULL)     return(TRUE);   preclist = FindPrecedenceList(theEnv,cls,sclasses);   if (preclist == NULL)     {      DeletePackedClassLinks(theEnv,sclasses,TRUE);      return(TRUE);     }   parseError = FALSE;   GetToken(theEnv,readSource,&DefclassData(theEnv)->ObjectParseToken);   while (GetType(DefclassData(theEnv)->ObjectParseToken) != RPAREN)     {      if (GetType(DefclassData(theEnv)->ObjectParseToken) != LPAREN)        {         SyntaxErrorMessage(theEnv,"defclass");         parseError = TRUE;         break;        }      PPBackup(theEnv);      PPCRAndIndent(theEnv);      SavePPBuffer(theEnv,"(");      GetToken(theEnv,readSource,&DefclassData(theEnv)->ObjectParseToken);      if (GetType(DefclassData(theEnv)->ObjectParseToken) != SYMBOL)        {         SyntaxErrorMessage(theEnv,"defclass");         parseError = TRUE;         break;        }      if (strcmp(DOToString(DefclassData(theEnv)->ObjectParseToken),ROLE_RLN) == 0)        {         if (ParseSimpleQualifier(theEnv,readSource,ROLE_RLN,CONCRETE_RLN,ABSTRACT_RLN,                                  &roleSpecified,&abstract) == FALSE)           {            parseError = TRUE;            break;           }        }#if DEFRULE_CONSTRUCT      else if (strcmp(DOToString(DefclassData(theEnv)->ObjectParseToken),MATCH_RLN) == 0)        {         if (ParseSimpleQualifier(theEnv,readSource,MATCH_RLN,NONREACTIVE_RLN,REACTIVE_RLN,                                  &patternMatchSpecified,&reactive) == FALSE)           {            parseError = TRUE;            break;           }        }#endif      else if (strcmp(DOToString(DefclassData(theEnv)->ObjectParseToken),SLOT_RLN) == 0)        {         slots = ParseSlot(theEnv,readSource,slots,preclist,FALSE,FALSE);         if (slots == NULL)           {            parseError = TRUE;            break;           }        }      else if (strcmp(DOToString(DefclassData(theEnv)->ObjectParseToken),SGL_SLOT_RLN) == 0)        {         slots = ParseSlot(theEnv,readSource,slots,preclist,FALSE,TRUE);         if (slots == NULL)           {            parseError = TRUE;            break;           }        }      else if (strcmp(DOToString(DefclassData(theEnv)->ObjectParseToken),MLT_SLOT_RLN) == 0)        {         slots = ParseSlot(theEnv,readSource,slots,preclist,TRUE,TRUE);         if (slots == NULL)           {            parseError = TRUE;            break;           }        }      else if (strcmp(DOToString(DefclassData(theEnv)->ObjectParseToken),HANDLER_DECL) == 0)        {         if (ReadUntilClosingParen(theEnv,readSource,&DefclassData(theEnv)->ObjectParseToken) == FALSE)           {            parseError = TRUE;            break;           }        }      else        {         SyntaxErrorMessage(theEnv,"defclass");         parseError = TRUE;         break;        }      GetToken(theEnv,readSource,&DefclassData(theEnv)->ObjectParseToken);     }   if ((GetType(DefclassData(theEnv)->ObjectParseToken) != RPAREN) || (parseError == TRUE))     {      DeletePackedClassLinks(theEnv,sclasses,TRUE);      DeletePackedClassLinks(theEnv,preclist,TRUE);      DeleteSlots(theEnv,slots);      return(TRUE);     }   SavePPBuffer(theEnv,"\n");   /* =========================================================================      The abstract/reactive qualities of a class are inherited if not specified      ========================================================================= */   if (roleSpecified == FALSE)     {      if (preclist->classArray[1]->system &&                             /* Change to cause         */           (DefclassData(theEnv)->ClassDefaultsMode == CONVENIENCE_MODE)) /* default role of         */        { abstract = FALSE; }                                            /* classes to be concrete. */      else        { abstract = preclist->classArray[1]->abstract; }     }#if DEFRULE_CONSTRUCT   if (patternMatchSpecified == FALSE)     {      if ((preclist->classArray[1]->system) &&                           /* Change to cause       */          (! abstract) &&                                                /* default pattern-match */           (DefclassData(theEnv)->ClassDefaultsMode == CONVENIENCE_MODE)) /* of classes to be      */        { reactive = TRUE; }                                             /* reactive.             */      else        { reactive = preclist->classArray[1]->reactive; }     }   /* ================================================================      An abstract class cannot have direct instances, thus it makes no      sense for it to be reactive since it will have no objects to

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
7777精品伊人久久久大香线蕉超级流畅 | 首页国产欧美久久| 国产一区二区女| 欧美在线短视频| 国产亲近乱来精品视频| 五月激情综合网| 99re热这里只有精品免费视频| 欧美一区二区三区精品| 国产精品久久久久久久久久免费看 | 精品综合久久久久久8888| 91在线免费看| 亚洲午夜激情网站| jiyouzz国产精品久久| 欧美成人欧美edvon| 一区二区成人在线观看| 国产精品一区在线| 91精品国产乱码久久蜜臀| 一区二区三区四区不卡在线| 国产 日韩 欧美大片| 精品理论电影在线| 麻豆精品国产91久久久久久| 欧美系列亚洲系列| 亚洲欧美区自拍先锋| 99精品国产视频| 国产精品欧美一级免费| 国产高清不卡一区二区| 精品久久99ma| 久久国产综合精品| 日韩一区和二区| 青娱乐精品在线视频| 欧美日韩一区二区在线观看| 国产精品成人免费在线| 成人久久视频在线观看| 中文字幕中文字幕一区| 99久久精品国产一区| 亚洲日本青草视频在线怡红院| 99视频精品免费视频| 亚洲人成影院在线观看| 91丨porny丨最新| 亚洲精品自拍动漫在线| 在线观看视频91| 午夜视黄欧洲亚洲| 欧美一区二区三区四区视频| 开心九九激情九九欧美日韩精美视频电影| 91精品国产综合久久久久久漫画| 免费成人在线观看视频| 久久久欧美精品sm网站| 丁香六月久久综合狠狠色| 国产精品乱码一区二三区小蝌蚪| 99精品视频在线播放观看| 一区二区三区鲁丝不卡| 欧美美女喷水视频| 激情文学综合丁香| 国产精品蜜臀av| 欧美亚洲国产一区在线观看网站| 日韩高清在线观看| 久久久久久久久久久久久女国产乱| 成人网页在线观看| 亚洲精品久久久蜜桃| 日韩亚洲电影在线| 不卡视频免费播放| 视频在线观看91| 国产精品色噜噜| 欧美日本乱大交xxxxx| 国产高清视频一区| 亚洲国产精品一区二区久久恐怖片 | 日本精品一区二区三区高清 | 麻豆国产一区二区| 国产精品对白交换视频| 91精品国产手机| 国产精品99久久久久久久女警| 自拍偷拍亚洲综合| 精品精品欲导航| 在线看不卡av| 成人午夜又粗又硬又大| 午夜影院久久久| 亚洲国产成人午夜在线一区| 欧美精品亚洲二区| 色综合欧美在线| 国产91精品露脸国语对白| 亚洲成av人片一区二区梦乃 | 精品国产一区二区三区久久影院 | 久久精品这里都是精品| 欧美综合天天夜夜久久| 国产白丝网站精品污在线入口| 亚洲国产成人va在线观看天堂| 中日韩av电影| 久久欧美一区二区| 欧美日韩激情一区| 91污在线观看| 成人午夜激情在线| 国产在线视频不卡二| 午夜精品久久久久久久久久 | 国产女人18毛片水真多成人如厕| 欧美一区二区三区在线看| 日本韩国精品在线| 99这里都是精品| 成人精品一区二区三区中文字幕| 九一久久久久久| 日本在线不卡视频一二三区| 亚洲精品日产精品乱码不卡| 国产精品剧情在线亚洲| 2021中文字幕一区亚洲| 精品福利一区二区三区免费视频| 欧美高清dvd| 欧美日韩一区久久| 欧美揉bbbbb揉bbbbb| 在线亚洲免费视频| 色女孩综合影院| 91免费版pro下载短视频| av网站一区二区三区| 成人免费毛片aaaaa**| 成人午夜激情影院| 丰满岳乱妇一区二区三区| 国产麻豆日韩欧美久久| 国产传媒欧美日韩成人| 国产大陆精品国产| 成人h动漫精品一区二| 成人福利在线看| 91在线观看地址| 色视频成人在线观看免| 欧美日韩国产精选| 91精品国产麻豆| 国产亚洲综合色| 中文字幕一区二区三区在线播放| 亚洲品质自拍视频| 亚洲成人av在线电影| 奇米888四色在线精品| 美女久久久精品| 国产精品一二三四| www.久久精品| 欧美性猛片xxxx免费看久爱| 欧美久久久久久久久| 欧美一级免费大片| 久久久国产午夜精品| 国产精品国产三级国产普通话蜜臀 | 亚洲国产精品久久人人爱| 亚洲国产成人av| 精品一二三四区| www.日韩大片| 欧美日韩在线精品一区二区三区激情| 欧美精品在线观看播放| 久久久一区二区| 亚洲自拍偷拍网站| 国产又粗又猛又爽又黄91精品| 成人美女在线视频| 欧美精品电影在线播放| 久久女同互慰一区二区三区| 亚洲视频1区2区| 久久电影网站中文字幕| av不卡免费在线观看| 欧美二区三区的天堂| 欧美激情资源网| 日韩国产精品久久| 99久久er热在这里只有精品15 | 免费观看在线色综合| 成人免费视频caoporn| 91精品中文字幕一区二区三区| 国产日产欧美精品一区二区三区| 一区二区三区四区亚洲| 韩国v欧美v亚洲v日本v| 欧美三级韩国三级日本三斤| 国产欧美一区二区精品忘忧草 | 亚洲精品国久久99热| 国内欧美视频一区二区 | 国产日韩欧美亚洲| 午夜精品影院在线观看| 成人aa视频在线观看| 91精品国产麻豆| 一区二区三区四区国产精品| 国产精品一二三区在线| 91精品国模一区二区三区| 亚洲色图清纯唯美| 成人性生交大片免费看中文| 欧美一区二区视频在线观看2022| 亚洲精品免费视频| 国产jizzjizz一区二区| 日韩丝袜美女视频| 丝袜美腿高跟呻吟高潮一区| 97aⅴ精品视频一二三区| 久久精品欧美一区二区三区麻豆| 午夜精品福利久久久| 在线精品视频免费播放| 亚洲欧洲99久久| 成人免费视频caoporn| 久久一区二区视频| 美国毛片一区二区三区| 欧美日韩一区二区三区四区| 成人欧美一区二区三区视频网页| 国产精品夜夜嗨| 久久嫩草精品久久久精品| 久久精品久久99精品久久| 欧美高清hd18日本| 天天色图综合网| 欧美精品在线视频| 日本va欧美va精品| 日韩视频免费观看高清完整版在线观看| 亚洲一区二区精品视频| 在线观看国产精品网站| 一区二区三区色|