⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 engine.h

📁 clips源代码
💻 H
字号:
   /*******************************************************/   /*      "C" Language Integrated Production System      */   /*                                                     */   /*             CLIPS Version 6.30  10/19/06            */   /*                                                     */   /*                 ENGINE HEADER FILE                  */   /*******************************************************//*************************************************************//* Purpose: Provides functionality primarily associated with *//*   the run and focus commands.                             *//*                                                           *//* Principal Programmer(s):                                  *//*      Gary D. Riley                                        *//*                                                           *//* Contributing Programmer(s):                               *//*                                                           *//* Revision History:                                         *//*      6.23: Corrected compilation errors for files         *//*            generated by constructs-to-c. DR0861           *//*                                                           *//*      6.24: Removed INCREMENTAL_RESET and                  *//*            LOGICAL_DEPENDENCIES compilation flag.         *//*                                                           *//*            Renamed BOOLEAN macro type to intBool.         *//*                                                           *//*            Added access functions to the HaltRules flag.  *//*                                                           *//*            Added EnvGetNextFocus, EnvGetFocusChanged, and *//*            EnvSetFocusChanged functions.                  *//*                                                           *//*      6.30: Added additional developer statistics to help  *//*            analyze join network performance.              *//*                                                           *//*************************************************************/#ifndef _H_engine#define _H_engine#ifndef _H_lgcldpnd#include "lgcldpnd.h"#endif#ifndef _H_ruledef#include "ruledef.h"#endif#ifndef _H_network#include "network.h"#endif#ifndef _H_moduldef#include "moduldef.h"#endif#ifndef _H_retract#include "retract.h"#endifstruct focus  {   struct defmodule *theModule;   struct defruleModule *theDefruleModule;   struct focus *next;  };  #define ENGINE_DATA 18struct engineData  {    struct defrule *ExecutingRule;   intBool HaltRules;   struct joinNode *TheLogicalJoin;   struct dependency *UnsupportedDataEntities;   int alreadyEntered;   struct callFunctionItem *ListOfRunFunctions;   struct focus *CurrentFocus;   int FocusChanged;#if DEBUGGING_FUNCTIONS   unsigned WatchStatistics;   unsigned WatchFocus;#endif   intBool IncrementalResetInProgress;   intBool IncrementalResetFlag;   intBool JoinOperationInProgress;   struct partialMatch *GlobalLHSBinds;   struct partialMatch *GlobalRHSBinds;   struct joinNode *GlobalJoin;   struct partialMatch *GarbagePartialMatches;   struct alphaMatch *GarbageAlphaMatches;   int AlreadyRunning;#if DEVELOPER   long leftToRightComparisons;   long rightToLeftComparisons;   long leftToRightSucceeds;   long rightToLeftSucceeds;   long leftToRightLoops;   long rightToLeftLoops;   long findNextConflictingComparisons;   long betaHashHTSkips;   long betaHashListSkips;   long unneededMarkerCompare;#endif  };#define EngineData(theEnv) ((struct engineData *) GetEnvironmentData(theEnv,ENGINE_DATA))#ifdef LOCALE#undef LOCALE#endif#ifdef _ENGINE_SOURCE_#define LOCALE#else#define LOCALE extern#endif/**************************************************************//* The GetFocus function is remapped under certain conditions *//* because it conflicts with a Windows 3.1 function.          *//**************************************************************//*#if ! ((GENERIC || IBM) && WINDOW_INTERFACE)#define WRGetFocus GetFocus#endif*/#define MAX_PATTERNS_CHECKED 64#if ENVIRONMENT_API_ONLY#define ClearFocusStack(theEnv) EnvClearFocusStack(theEnv)#define DefruleHasBreakpoint(theEnv,a) EnvDefruleHasBreakpoint(theEnv,a)#define Focus(theEnv,a) EnvFocus(theEnv,a)#define GetFocus(theEnv) EnvGetFocus(theEnv)#define GetFocusChanged(theEnv) EnvGetFocusChanged(theEnv)#define GetFocusStack(theEnv,a) EnvGetFocusStack(theEnv,a)#define GetNextFocus(theEnv,a) EnvGetNextFocus(theEnv,a)#define Halt(theEnv) EnvHalt(theEnv)#define ListFocusStack(theEnv,a) EnvListFocusStack(theEnv,a)#define PopFocus(theEnv) EnvPopFocus(theEnv)#define RemoveBreak(theEnv,a) EnvRemoveBreak(theEnv,a)#define RemoveRunFunction(theEnv,a) EnvRemoveRunFunction(theEnv,a)#define Run(theEnv,a) EnvRun(theEnv,a)#define SetBreak(theEnv,a) EnvSetBreak(theEnv,a)#define SetFocusChanged(theEnv,a) EnvSetFocusChanged(theEnv,a)#define ShowBreaks(theEnv,a,b) EnvShowBreaks(theEnv,a,b)#else#define ClearFocusStack() EnvClearFocusStack(GetCurrentEnvironment())#define DefruleHasBreakpoint(a) EnvDefruleHasBreakpoint(GetCurrentEnvironment(),a)#define Focus(a) EnvFocus(GetCurrentEnvironment(),a)#define GetFocus() EnvGetFocus(GetCurrentEnvironment())#define GetFocusChanged() EnvGetFocusChanged(GetCurrentEnvironment())#define GetFocusStack(a) EnvGetFocusStack(GetCurrentEnvironment(),a)#define GetNextFocus(a) EnvGetNextFocus(GetCurrentEnvironment(),a)#define Halt() EnvHalt(GetCurrentEnvironment())#define ListFocusStack(a) EnvListFocusStack(GetCurrentEnvironment(),a)#define PopFocus() EnvPopFocus(GetCurrentEnvironment())#define RemoveBreak(a) EnvRemoveBreak(GetCurrentEnvironment(),a)#define RemoveRunFunction(a) EnvRemoveRunFunction(GetCurrentEnvironment(),a)#define Run(a) EnvRun(GetCurrentEnvironment(),a)#define SetBreak(a) EnvSetBreak(GetCurrentEnvironment(),a)#define SetFocusChanged(a) EnvSetFocusChanged(GetCurrentEnvironment(),a)#define ShowBreaks(a,b) EnvShowBreaks(GetCurrentEnvironment(),a,b)#endif   LOCALE intBool                 EnvAddRunFunction(void *,char *,                                                    void (*)(void *),int);   LOCALE intBool                 AddRunFunction(char *,void (*)(void),int);   LOCALE long long               EnvRun(void *,long long);   LOCALE intBool                 EnvRemoveRunFunction(void *,char *);   LOCALE void                    InitializeEngine(void *);   LOCALE void                    EnvSetBreak(void *,void *);   LOCALE void                    EnvHalt(void *);   LOCALE intBool                 EnvRemoveBreak(void *,void *);   LOCALE void                    RemoveAllBreakpoints(void *);   LOCALE void                    EnvShowBreaks(void *,char *,void *);   LOCALE intBool                 EnvDefruleHasBreakpoint(void *,void *);   LOCALE void                    RunCommand(void *);   LOCALE void                    SetBreakCommand(void *);   LOCALE void                    RemoveBreakCommand(void *);   LOCALE void                    ShowBreaksCommand(void *);   LOCALE void                    HaltCommand(void *);   LOCALE int                     FocusCommand(void *);   LOCALE void                    ClearFocusStackCommand(void *);   LOCALE void                    EnvClearFocusStack(void *);   LOCALE void                   *EnvGetNextFocus(void *,void *);   LOCALE void                    EnvFocus(void *,void *);   LOCALE int                     EnvGetFocusChanged(void *);   LOCALE void                    EnvSetFocusChanged(void *,int);   LOCALE void                    ListFocusStackCommand(void *);   LOCALE void                    EnvListFocusStack(void *,char *);   LOCALE void                    GetFocusStackFunction(void *,DATA_OBJECT_PTR);   LOCALE void                    EnvGetFocusStack(void *,DATA_OBJECT_PTR);   LOCALE void                   *PopFocusFunction(void *);   LOCALE void                   *GetFocusFunction(void *);   LOCALE void                   *EnvPopFocus(void *);   LOCALE void                   *EnvGetFocus(void *);   LOCALE intBool                 EnvGetHaltRules(void *);   LOCALE void                    EnvSetHaltRules(void *,intBool);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -