您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ EngineData函数代码示例

51自学网 2021-06-01 20:38:16
  C++
这篇教程C++ EngineData函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中EngineData函数的典型用法代码示例。如果您正苦于以下问题:C++ EngineData函数的具体用法?C++ EngineData怎么用?C++ EngineData使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了EngineData函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: return

globle void *EnvGetFocus(  void *theEnv)  {   if (EngineData(theEnv)->CurrentFocus == NULL) return(NULL);   return((void *) EngineData(theEnv)->CurrentFocus->theModule);  }
开发者ID:femto,项目名称:rbclips,代码行数:7,


示例2: EvaluateSecondaryNetworkTest

globle intBool EvaluateSecondaryNetworkTest(  void *theEnv,  struct partialMatch *leftMatch,  struct joinNode *joinPtr)  {   int joinExpr;   struct partialMatch *oldLHSBinds;   struct partialMatch *oldRHSBinds;   struct joinNode *oldJoin;   if (joinPtr->secondaryNetworkTest == NULL)     { return(TRUE); }        #if DEVELOPER   EngineData(theEnv)->rightToLeftComparisons++;#endif   oldLHSBinds = EngineData(theEnv)->GlobalLHSBinds;   oldRHSBinds = EngineData(theEnv)->GlobalRHSBinds;   oldJoin = EngineData(theEnv)->GlobalJoin;   EngineData(theEnv)->GlobalLHSBinds = leftMatch;   EngineData(theEnv)->GlobalRHSBinds = NULL;   EngineData(theEnv)->GlobalJoin = joinPtr;   joinExpr = EvaluateJoinExpression(theEnv,joinPtr->secondaryNetworkTest,joinPtr);   EvaluationData(theEnv)->EvaluationError = FALSE;   EngineData(theEnv)->GlobalLHSBinds = oldLHSBinds;   EngineData(theEnv)->GlobalRHSBinds = oldRHSBinds;   EngineData(theEnv)->GlobalJoin = oldJoin;   return(joinExpr);  }
开发者ID:chrislong,项目名称:clipsrules,代码行数:32,


示例3: AddLogicalDependencies

globle CLIPS_BOOLEAN AddLogicalDependencies(  void *theEnv,  struct patternEntity *theEntity,  int existingEntity)  {   struct partialMatch *theBinds;   struct dependency *newDependency;   /*==============================================*/   /* If the rule has no logical patterns, then no */   /* dependencies have to be established.         */   /*==============================================*/   if (EngineData(theEnv)->TheLogicalJoin == NULL)     {      if (existingEntity) RemoveEntityDependencies(theEnv,theEntity);      return(TRUE);     }   else if (existingEntity && (theEntity->dependents == NULL))     { return(TRUE); }   /*============================================================*/   /* Find the partial match in the logical join associated with */   /* activation partial match. If the partial match cannot be   */   /* found, then the partial match must have been deleted by a  */   /* previous RHS action and the dependency link should not be  */   /* added.                                                     */   /*============================================================*/   theBinds = FindLogicalBind(EngineData(theEnv)->TheLogicalJoin,EngineData(theEnv)->GlobalLHSBinds);   if (theBinds == NULL) return(FALSE);   /*==============================================================*/   /* Add a dependency link between the partial match and the data */   /* entity. The dependency links are stored in the partial match */   /* behind the data entities stored in the partial match and the */   /* activation link, if any.                                     */   /*==============================================================*/   newDependency = get_struct(theEnv,dependency);   newDependency->dPtr = (void *) theEntity;   newDependency->next = (struct dependency *)                         theBinds->binds[theBinds->bcount + theBinds->activationf].gm.theValue;   theBinds->binds[theBinds->bcount + theBinds->activationf].gm.theValue = (void *) newDependency;   /*================================================================*/   /* Add a dependency link between the entity and the partialMatch. */   /*================================================================*/   newDependency = get_struct(theEnv,dependency);   newDependency->dPtr = (void *) theBinds;   newDependency->next = (struct dependency *) theEntity->dependents;   theEntity->dependents = (void *) newDependency;   /*==================================================================*/   /* Return TRUE to indicate that the data entity should be asserted. */   /*==================================================================*/   return(TRUE);  }
开发者ID:bitcababy,项目名称:ObjectiveCLIPS,代码行数:60,


示例4: EnvClearFocusStack

globle void EnvClearFocusStack(  void *theEnv)  {   while (EngineData(theEnv)->CurrentFocus != NULL) EnvPopFocus(theEnv);   EngineData(theEnv)->FocusChanged = TRUE;  }
开发者ID:femto,项目名称:rbclips,代码行数:7,


示例5: EnvSetIncrementalReset

globle intBool EnvSetIncrementalReset(  void *theEnv,  int value)  {   int ov;   struct defmodule *theModule;   SaveCurrentModule(theEnv);   for (theModule = (struct defmodule *) EnvGetNextDefmodule(theEnv,NULL);        theModule != NULL;        theModule = (struct defmodule *) EnvGetNextDefmodule(theEnv,theModule))     {      EnvSetCurrentModule(theEnv,(void *) theModule);      if (EnvGetNextDefrule(theEnv,NULL) != NULL)        {         RestoreCurrentModule(theEnv);         return(-1);        }     }        RestoreCurrentModule(theEnv);   ov = EngineData(theEnv)->IncrementalResetFlag;   EngineData(theEnv)->IncrementalResetFlag = value;   return(ov);  }
开发者ID:Anusaaraka,项目名称:anusaaraka,代码行数:27,


示例6: RetractCheckDriveRetractions

globle void RetractCheckDriveRetractions(  /* GDR 111599 #834 Begin */  void *theEnv,  struct alphaMatch *theAlphaNode,  int position)  {   struct rdriveinfo *tempDR, *theDR, *lastDR = NULL;   theDR = EngineData(theEnv)->DriveRetractionList;   while (theDR != NULL)     {      if ((position < (int) theDR->link->bcount) &&          (theDR->link->binds[position].gm.theMatch == theAlphaNode))        {         tempDR = theDR->next;         rtn_struct(theEnv,rdriveinfo,theDR);         if (lastDR == NULL)           { EngineData(theEnv)->DriveRetractionList = tempDR; }         else           { lastDR->next = tempDR; }         theDR = tempDR;        }      else        {         lastDR = theDR;         theDR = theDR->next;        }     }  }                                        /* GDR 111599 #834 End */
开发者ID:jonathangizmo,项目名称:pyclips,代码行数:28,


示例7: FactJNCompVars1

globle int FactJNCompVars1(    void *theEnv,    void *theValue,    DATA_OBJECT *theResult){    int p1, e1, p2, e2;    struct fact *fact1, *fact2;    struct factCompVarsJN1Call *hack;    /*=========================================*/    /* Retrieve the arguments to the function. */    /*=========================================*/    hack = (struct factCompVarsJN1Call *) ValueToBitMap(theValue);    /*=================================================*/    /* Extract the fact pointers for the two patterns. */    /*=================================================*/    p1 = (int) hack->pattern1;    p2 = (int) hack->pattern2;    fact1 = (struct fact *) EngineData(theEnv)->GlobalRHSBinds->binds[p1].gm.theMatch->matchingItem;    if (hack->p2rhs)    {        fact2 = (struct fact *) EngineData(theEnv)->GlobalRHSBinds->binds[p2].gm.theMatch->matchingItem;    }    else    {        fact2 = (struct fact *) EngineData(theEnv)->GlobalLHSBinds->binds[p2].gm.theMatch->matchingItem;    }    /*=====================*/    /* Compare the values. */    /*=====================*/    e1 = (int) hack->slot1;    e2 = (int) hack->slot2;    if (fact1->theProposition.theFields[e1].type !=            fact2->theProposition.theFields[e2].type)    {        return((int) hack->fail);    }    if (fact1->theProposition.theFields[e1].value !=            fact2->theProposition.theFields[e2].value)    {        return((int) hack->fail);    }    return((int) hack->pass);}
开发者ID:DrItanium,项目名称:durandal,代码行数:54,


示例8: DeletePartialMatches

static void DeletePartialMatches(  void *theEnv,  struct partialMatch *listOfPMs,  int betaDelete)  {   struct partialMatch *nextPM;   while (listOfPMs != NULL)     {      /*============================================*/      /* Remember the next partial match to delete. */      /*============================================*/      nextPM = listOfPMs->next;      /*================================================*/      /* Remove the links between the partial match and */      /* any data entities that it is attached to as a  */      /* result of a logical CE.                        */      /*================================================*/#if LOGICAL_DEPENDENCIES      if (listOfPMs->dependentsf) RemoveLogicalSupport(theEnv,listOfPMs);#endif      /*==========================================================*/      /* If the partial match is being deleted from a beta memory */      /* and the partial match isn't associated with a satisfied  */      /* not CE, then it can be immediately returned to the pool  */      /* of free memory. Otherwise, it's could be in use (either  */      /* to retrieve variables from the LHS or by the activation  */      /* of the rule). Since a not CE creates a "pseudo" data     */      /* entity, the beta partial match which stores this pseudo  */      /* data entity can not be deleted immediately (for the same */      /* reason an alpha memory partial match can't be deleted    */      /* immediately).                                            */      /*==========================================================*/      if (betaDelete &&          ((listOfPMs->notOriginf == FALSE) || (listOfPMs->counterf)))        { ReturnPartialMatch(theEnv,listOfPMs); }      else        {         listOfPMs->next = EngineData(theEnv)->GarbagePartialMatches;         EngineData(theEnv)->GarbagePartialMatches = listOfPMs;        }      /*====================================*/      /* Move on to the next partial match. */      /*====================================*/      listOfPMs = nextPM;     }  }
开发者ID:jonathangizmo,项目名称:pyclips,代码行数:54,


示例9: EnvAddRunFunction

globle intBool EnvAddRunFunction(  void *theEnv,  char *name,  void (*functionPtr)(void *),  int priority)  {   EngineData(theEnv)->ListOfRunFunctions = AddFunctionToCallList(theEnv,name,priority,                                              functionPtr,                                              EngineData(theEnv)->ListOfRunFunctions,TRUE);   return(1);  }
开发者ID:femto,项目名称:rbclips,代码行数:11,


示例10: EnvSetIncrementalReset

globle BOOLEAN EnvSetIncrementalReset(  void *theEnv,  int value)  {   int ov;   ov = EngineData(theEnv)->IncrementalResetFlag;   if (EnvGetNextDefrule(theEnv,NULL) != NULL) return(-1);   EngineData(theEnv)->IncrementalResetFlag = value;   return(ov);  }
开发者ID:aliverobotics,项目名称:Pumas-SmallSize,代码行数:11,


示例11: InitializeEngine

globle void InitializeEngine(  void *theEnv)  {      AllocateEnvironmentData(theEnv,ENGINE_DATA,sizeof(struct engineData),DeallocateEngineData);   EngineData(theEnv)->IncrementalResetFlag = TRUE;   #if DEBUGGING_FUNCTIONS   AddWatchItem(theEnv,"statistics",0,&EngineData(theEnv)->WatchStatistics,20,NULL,NULL);   AddWatchItem(theEnv,"focus",0,&EngineData(theEnv)->WatchFocus,0,NULL,NULL);#endif  }
开发者ID:femto,项目名称:rbclips,代码行数:12,


示例12: EnvGetFocusStack

globle void EnvGetFocusStack(  void *theEnv,  DATA_OBJECT_PTR returnValue)  {   struct focus *theFocus;   struct multifield *theList;   unsigned long count = 0;   /*===========================================*/   /* If there is no current focus, then return */   /* a multifield value of length zero.        */   /*===========================================*/   if (EngineData(theEnv)->CurrentFocus == NULL)     {      SetpType(returnValue,MULTIFIELD);      SetpDOBegin(returnValue,1);      SetpDOEnd(returnValue,0);      SetpValue(returnValue,(void *) EnvCreateMultifield(theEnv,0L));      return;     }   /*=====================================================*/   /* Determine the number of modules on the focus stack. */   /*=====================================================*/   for (theFocus = EngineData(theEnv)->CurrentFocus; theFocus != NULL; theFocus = theFocus->next)     { count++; }   /*=============================================*/   /* Create a multifield of the appropriate size */   /* in which to store the module names.         */   /*=============================================*/   SetpType(returnValue,MULTIFIELD);   SetpDOBegin(returnValue,1);   SetpDOEnd(returnValue,(long) count);   theList = (struct multifield *) EnvCreateMultifield(theEnv,count);   SetpValue(returnValue,(void *) theList);   /*=================================================*/   /* Store the module names in the multifield value. */   /*=================================================*/   for (theFocus = EngineData(theEnv)->CurrentFocus, count = 1;        theFocus != NULL;        theFocus = theFocus->next, count++)     {      SetMFType(theList,count,SYMBOL);      SetMFValue(theList,count,theFocus->theModule->name);     }  }
开发者ID:femto,项目名称:rbclips,代码行数:52,


示例13: EnvRemoveRunFunction

globle intBool EnvRemoveRunFunction(  void *theEnv,  char *name)  {   int found;   EngineData(theEnv)->ListOfRunFunctions =       RemoveFunctionFromCallList(theEnv,name,EngineData(theEnv)->ListOfRunFunctions,&found);   if (found) return(TRUE);   return(FALSE);  }
开发者ID:femto,项目名称:rbclips,代码行数:13,


示例14: AddRunFunction

globle intBool AddRunFunction(  char *name,  void (*functionPtr)(void),  int priority)  {   void *theEnv;      theEnv = GetCurrentEnvironment();   EngineData(theEnv)->ListOfRunFunctions =        AddFunctionToCallList(theEnv,name,priority,(void (*)(void *)) functionPtr,                             EngineData(theEnv)->ListOfRunFunctions,TRUE);   return(1);  }
开发者ID:femto,项目名称:rbclips,代码行数:14,


示例15: ClearDefrulesReady

static bool ClearDefrulesReady(  void *theEnv)  {   if (EngineData(theEnv)->ExecutingRule != NULL) return(false);   if (EngineData(theEnv)->JoinOperationInProgress) return(false);   EnvClearFocusStack(theEnv);   if (EnvGetCurrentModule(theEnv) == NULL) return(false);   DefruleData(theEnv)->CurrentEntityTimeTag = 1L;   return(true);  }
开发者ID:guitarpoet,项目名称:php-clips,代码行数:14,


示例16: GetPatternObjectAndMarks

/****************************************************  NAME         : GetPatternObjectAndMarks  DESCRIPTION  : Finds the instance and multfiield                 markers corresponding to a specified                 pattern in the join network  INPUTS       : 1) The index of the desired pattern                 2) A buffer to hold the instance                    address                 3) A buffer to hold the list of                    multifield markers  RETURNS      : Nothing useful  SIDE EFFECTS : Buffers set  NOTES        : None ****************************************************/static void GetPatternObjectAndMarks(  void *theEnv,  int pattern,  INSTANCE_TYPE **theInstance,  struct multifieldMarker **theMarkers)  {   if (EngineData(theEnv)->GlobalRHSBinds == NULL)     {      *theInstance = (INSTANCE_TYPE *)        get_nth_pm_match(EngineData(theEnv)->GlobalLHSBinds,pattern)->matchingItem;      *theMarkers =        get_nth_pm_match(EngineData(theEnv)->GlobalLHSBinds,pattern)->markers;     }   else if ((((int) EngineData(theEnv)->GlobalJoin->depth) - 1) == pattern)     {      *theInstance = (INSTANCE_TYPE *) get_nth_pm_match(EngineData(theEnv)->GlobalRHSBinds,0)->matchingItem;      *theMarkers = get_nth_pm_match(EngineData(theEnv)->GlobalRHSBinds,0)->markers;     }   else     {      *theInstance = (INSTANCE_TYPE *)        get_nth_pm_match(EngineData(theEnv)->GlobalLHSBinds,pattern)->matchingItem;      *theMarkers =        get_nth_pm_match(EngineData(theEnv)->GlobalLHSBinds,pattern)->markers;     }  }
开发者ID:bitcababy,项目名称:ObjectiveCLIPS,代码行数:40,


示例17: ReturnPartialMatch

globle void ReturnPartialMatch(  void *theEnv,  struct partialMatch *waste)  {   /*==============================================*/   /* If the partial match is in use, then put it  */   /* on a garbage list to be processed later when */   /* the partial match is not in use.             */   /*==============================================*/   if (waste->busy)     {      waste->next = EngineData(theEnv)->GarbagePartialMatches;      EngineData(theEnv)->GarbagePartialMatches = waste;      return;     }   /*======================================================*/   /* If we're dealing with an alpha memory partial match, */   /* then return the multifield markers associated with   */   /* the partial match (if any) along with the alphaMatch */   /* data structure.                                      */   /*======================================================*/   if (waste->betaMemory == FALSE)     {      if (waste->binds[0].gm.theMatch->markers != NULL)        { ReturnMarkers(theEnv,waste->binds[0].gm.theMatch->markers); }      rm(theEnv,waste->binds[0].gm.theMatch,(int) sizeof(struct alphaMatch));     }   /*=================================================*/   /* Remove any links between the partial match and  */   /* a data entity that were created with the use of */   /* the logical CE.                                 */   /*=================================================*/#if LOGICAL_DEPENDENCIES   if (waste->dependentsf) RemovePMDependencies(theEnv,waste);#endif   /*======================================================*/   /* Return the partial match to the pool of free memory. */   /*======================================================*/   rtn_var_struct(theEnv,partialMatch,(int) sizeof(struct genericMatch *) *                  (waste->bcount + waste->activationf + waste->dependentsf - 1),                  waste);  }
开发者ID:jonathangizmo,项目名称:pyclips,代码行数:49,


示例18: DeallocateEngineData

static void DeallocateEngineData(  void *theEnv)  {   struct focus *tmpPtr, *nextPtr;      DeallocateCallList(theEnv,EngineData(theEnv)->ListOfRunFunctions);   tmpPtr = EngineData(theEnv)->CurrentFocus;   while (tmpPtr != NULL)     {      nextPtr = tmpPtr->next;      rtn_struct(theEnv,focus,tmpPtr);      tmpPtr = nextPtr;     }  }
开发者ID:femto,项目名称:rbclips,代码行数:15,


示例19: FactsIncrementalReset

globle void FactsIncrementalReset(  void *theEnv)  {   struct fact *factPtr;   for (factPtr = (struct fact *) EnvGetNextFact(theEnv,NULL);        factPtr != NULL;        factPtr = (struct fact *) EnvGetNextFact(theEnv,factPtr))     {      EngineData(theEnv)->JoinOperationInProgress = TRUE;      FactPatternMatch(theEnv,factPtr,                       factPtr->whichDeftemplate->patternNetwork,                       0,NULL,NULL);      EngineData(theEnv)->JoinOperationInProgress = FALSE;     }  }
开发者ID:unamfi,项目名称:Xcode-CLIPS,代码行数:16,


示例20: EnvIsDefruleDeletable

globle CLIPS_BOOLEAN EnvIsDefruleDeletable(  void *theEnv,  void *vTheDefrule)  {#if BLOAD_ONLY || RUN_TIME#if MAC_MCW || IBM_MCW || MAC_XCD#pragma unused(theEnv,vTheDefrule)#endif   return(FALSE);#else   struct defrule *theDefrule;#if BLOAD || BLOAD_AND_BSAVE   if (Bloaded(theEnv)) return(FALSE);#endif   for (theDefrule = (struct defrule *) vTheDefrule;        theDefrule != NULL;        theDefrule = theDefrule->disjunct)     { if (theDefrule->executing) return(FALSE); }   if (EngineData(theEnv)->JoinOperationInProgress) return(FALSE);   return(TRUE);#endif  }
开发者ID:bitcababy,项目名称:ObjectiveCLIPS,代码行数:26,


示例21: NetworkAssert

globle void NetworkAssert(  void *theEnv,  struct partialMatch *binds,  struct joinNode *join)  {   /*=========================================================*/   /* If an incremental reset is being performed and the join */   /* is not part of the network to be reset, then return.    */   /*=========================================================*/#if (! BLOAD_ONLY) && (! RUN_TIME)   if (EngineData(theEnv)->IncrementalResetInProgress && (join->initialize == FALSE)) return;#endif   /*==================================================*/   /* Use a special routine if this is the first join. */   /*==================================================*/   if (join->firstJoin)     {      EmptyDrive(theEnv,join,binds);      return;     }   /*================================*/   /* Enter the join from the right. */   /*================================*/   NetworkAssertRight(theEnv,binds,join);   return;  }
开发者ID:chrislong,项目名称:clipsrules,代码行数:32,


示例22: FactJNCompVars1

bool FactJNCompVars1(  Environment *theEnv,  void *theValue,  UDFValue *theResult)  {#if MAC_XCD#pragma unused(theResult)#endif   unsigned short p1, e1, p2, e2;   Fact *fact1, *fact2;   struct factCompVarsJN1Call *hack;   /*=========================================*/   /* Retrieve the arguments to the function. */   /*=========================================*/   hack = (struct factCompVarsJN1Call *) ((CLIPSBitMap *) theValue)->contents;   /*=================================================*/   /* Extract the fact pointers for the two patterns. */   /*=================================================*/   p1 = hack->pattern1;   p2 = hack->pattern2;   fact1 = (Fact *) EngineData(theEnv)->GlobalRHSBinds->binds[p1].gm.theMatch->matchingItem;   if (hack->p2rhs)     { fact2 = (Fact *) EngineData(theEnv)->GlobalRHSBinds->binds[p2].gm.theMatch->matchingItem; }   else     { fact2 = (Fact *) EngineData(theEnv)->GlobalLHSBinds->binds[p2].gm.theMatch->matchingItem; }   /*=====================*/   /* Compare the values. */   /*=====================*/   e1 = hack->slot1;   e2 = hack->slot2;   if (fact1->theProposition.contents[e1].value !=       fact2->theProposition.contents[e2].value)     { return hack->fail; }   return hack->pass;  }
开发者ID:DrItanium,项目名称:maya,代码行数:45,


示例23: ForceLogicalRetractions

globle void ForceLogicalRetractions(  void *theEnv)  {   struct dependency *tempPtr;   struct patternEntity *theEntity;   /*===================================================*/   /* Don't reenter this function once it's called. Any */   /* new additions to the list of items to be deleted  */   /* as a result of losing their logical support will  */   /* be handled properly.                              */   /*===================================================*/   if (EngineData(theEnv)->alreadyEntered) return;   EngineData(theEnv)->alreadyEntered = TRUE;   /*=======================================================*/   /* Continue to delete the first item on the list as long */   /* as one exists. This is done because new items may be  */   /* placed at the beginning of the list as other data     */   /* entities are deleted.                                 */   /*=======================================================*/   while (EngineData(theEnv)->UnsupportedDataEntities != NULL)     {      /*==========================================*/      /* Determine the data entity to be deleted. */      /*==========================================*/      theEntity = (struct patternEntity *) EngineData(theEnv)->UnsupportedDataEntities->dPtr;      /*================================================*/      /* Remove the dependency structure from the list. */      /*================================================*/      tempPtr = EngineData(theEnv)->UnsupportedDataEntities;      EngineData(theEnv)->UnsupportedDataEntities = EngineData(theEnv)->UnsupportedDataEntities->next;      rtn_struct(theEnv,dependency,tempPtr);      /*=========================*/      /* Delete the data entity. */      /*=========================*/      (*theEntity->theInfo->base.decrementBusyCount)(theEnv,theEntity);      (*theEntity->theInfo->base.deleteFunction)(theEnv,theEntity);     }   /*============================================*/   /* Deletion of items on the list is complete. */   /*============================================*/   EngineData(theEnv)->alreadyEntered = FALSE;  }
开发者ID:bitcababy,项目名称:ObjectiveCLIPS,代码行数:53,


示例24: ClearDefrulesReady

static int ClearDefrulesReady(  void *theEnv)  {   if (EngineData(theEnv)->ExecutingRule != NULL) return(FALSE);      EnvClearFocusStack(theEnv);   if (EnvGetCurrentModule(theEnv) == NULL) return(FALSE);   DefruleData(theEnv)->CurrentEntityTimeTag = 0L;   return(TRUE);  }
开发者ID:pandaxcl,项目名称:CLIPS-unicode,代码行数:12,


示例25: SkipFactPatternNode

static int SkipFactPatternNode(  void *theEnv,  struct factPatternNode *thePattern)  {#if (! RUN_TIME) && (! BLOAD_ONLY)   if (EngineData(theEnv)->IncrementalResetInProgress &&       (thePattern->header.initialize == FALSE))     { return(TRUE); }#endif   return(FALSE);  }
开发者ID:DrItanium,项目名称:AdventureEngine,代码行数:13,


示例26: EnvListFocusStack

globle void EnvListFocusStack(  void *theEnv,  char *logicalName)  {   struct focus *theFocus;   for (theFocus = EngineData(theEnv)->CurrentFocus;        theFocus != NULL;        theFocus = theFocus->next)     {      EnvPrintRouter(theEnv,logicalName,EnvGetDefmoduleName(theEnv,theFocus->theModule));      EnvPrintRouter(theEnv,logicalName,"/n");     }  }
开发者ID:femto,项目名称:rbclips,代码行数:14,


示例27: FactJNGetVar2

globle CLIPS_BOOLEAN FactJNGetVar2(  void *theEnv,  void *theValue,  DATA_OBJECT_PTR returnValue)  {   struct fact *factPtr;   struct factGetVarJN2Call *hack;   struct field *fieldPtr;   /*==========================================*/   /* Retrieve the arguments for the function. */   /*==========================================*/   hack = (struct factGetVarJN2Call *) ValueToBitMap(theValue);   /*=====================================================*/   /* Get the pointer to the fact from the partial match. */   /*=====================================================*/   if (EngineData(theEnv)->GlobalRHSBinds == NULL)     { factPtr = (struct fact *) get_nth_pm_match(EngineData(theEnv)->GlobalLHSBinds,hack->whichPattern)->matchingItem; }   else if ((EngineData(theEnv)->GlobalJoin->depth - 1) == hack->whichPattern)     { factPtr = (struct fact *) get_nth_pm_match(EngineData(theEnv)->GlobalRHSBinds,0)->matchingItem; }   else     { factPtr = (struct fact *) get_nth_pm_match(EngineData(theEnv)->GlobalLHSBinds,hack->whichPattern)->matchingItem; }   /*============================================*/   /* Extract the value from the specified slot. */   /*============================================*/   fieldPtr = &factPtr->theProposition.theFields[hack->whichSlot];   returnValue->type = fieldPtr->type;   returnValue->value = fieldPtr->value;   return(TRUE);  }
开发者ID:bitcababy,项目名称:ObjectiveCLIPS,代码行数:37,


示例28: EnvFocus

globle void EnvFocus(  void *theEnv,  void *vTheModule)  {   struct defmodule *theModule = (struct defmodule *) vTheModule;   struct focus *tempFocus;   /*==================================================*/   /* Make the specified module be the current module. */   /* If the specified module is the current focus,    */   /* then no further action is needed.                */   /*==================================================*/   EnvSetCurrentModule(theEnv,(void *) theModule);   if (EngineData(theEnv)->CurrentFocus != NULL)     { if (EngineData(theEnv)->CurrentFocus->theModule == theModule) return; }   /*=====================================*/   /* If the focus is being watched, then */   /* print an information message.       */   /*=====================================*/#if DEBUGGING_FUNCTIONS   if (EngineData(theEnv)->WatchFocus)     {      EnvPrintRouter(theEnv,WTRACE,"==> Focus ");      EnvPrintRouter(theEnv,WTRACE,ValueToString(theModule->name));      if (EngineData(theEnv)->CurrentFocus != NULL)        {         EnvPrintRouter(theEnv,WTRACE," from ");         EnvPrintRouter(theEnv,WTRACE,ValueToString(EngineData(theEnv)->CurrentFocus->theModule->name));        }      EnvPrintRouter(theEnv,WTRACE,"/n");     }#endif   /*=======================================*/   /* Add the new focus to the focus stack. */   /*=======================================*/   tempFocus = get_struct(theEnv,focus);   tempFocus->theModule = theModule;   tempFocus->theDefruleModule = GetDefruleModuleItem(theEnv,theModule);   tempFocus->next = EngineData(theEnv)->CurrentFocus;   EngineData(theEnv)->CurrentFocus = tempFocus;   EngineData(theEnv)->FocusChanged = TRUE;  }
开发者ID:femto,项目名称:rbclips,代码行数:47,


示例29: EnvSetIncrementalReset

globle intBool EnvSetIncrementalReset(  void *theEnv,  int value)  {   int ov;   struct defmodule *theModule;   /*============================================*/   /* The incremental reset behavior can only be */   /* changed if there are no existing rules.    */   /*============================================*/      SaveCurrentModule(theEnv);   for (theModule = (struct defmodule *) EnvGetNextDefmodule(theEnv,NULL);        theModule != NULL;        theModule = (struct defmodule *) EnvGetNextDefmodule(theEnv,theModule))     {      EnvSetCurrentModule(theEnv,(void *) theModule);      if (EnvGetNextDefrule(theEnv,NULL) != NULL)        {         RestoreCurrentModule(theEnv);         return(-1);        }     }        RestoreCurrentModule(theEnv);   /*====================================*/   /* Change the incremental reset flag. */   /*====================================*/      ov = EngineData(theEnv)->IncrementalResetFlag;   EngineData(theEnv)->IncrementalResetFlag = value;   return(ov);  }
开发者ID:Khenji55,项目名称:Computacion_UCLM,代码行数:36,


示例30: SkipFactPatternNode

static int SkipFactPatternNode(  void *theEnv,  struct factPatternNode *thePattern)  {#if (MAC_MCW || IBM_MCW) && (RUN_TIME || BLOAD_ONLY || (! INCREMENTAL_RESET))#pragma unused(theEnv,thePattern)#endif#if INCREMENTAL_RESET && (! RUN_TIME) && (! BLOAD_ONLY)   if (EngineData(theEnv)->IncrementalResetInProgress &&       (thePattern->header.initialize == FALSE))     { return(TRUE); }#endif   return(FALSE);  }
开发者ID:bitcababy,项目名称:ObjectiveCLIPS,代码行数:16,



注:本文中的EngineData函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ EnsureActive函数代码示例
C++ EngSetLastError函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。