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

📄 factprt.c

📁 NASA 开发使用的一个专家系统
💻 C
字号:
   /*******************************************************/   /*      "C" Language Integrated Production System      */   /*                                                     */   /*             CLIPS Version 6.05  04/09/97            */   /*                                                     */   /*           FACT RETE PRINT FUNCTIONS MODULE          */   /*******************************************************/           /*************************************************************//* Purpose: Print routines for the fact rete primitives.     *//*                                                           *//* Principal Programmer(s):                                  *//*      Gary D. Riley                                        *//*                                                           *//* Contributing Programmer(s):                               *//*                                                           *//* Revision History:                                         *//*                                                           *//*************************************************************/#define _FACTPRT_SOURCE_#include <stdio.h>#define _CLIPS_STDIO_#include "setup.h"#if DEFTEMPLATE_CONSTRUCT && DEFRULE_CONSTRUCT#include "symbol.h"#include "router.h"#include "factgen.h"#include "factprt.h"  /***************************************//* PrintFactJNCompVars1: Print routine *//*   for the FactJNCompVars1 function. *//***************************************/#if IBM_TBC && (! DEVELOPER)#pragma argsused#endifgloble VOID PrintFactJNCompVars1(logicalName,theValue)  char *logicalName;  VOID *theValue;  {#if DEVELOPER   struct factCompVarsJN1Call *hack;   hack = (struct factCompVarsJN1Call *) ValueToBitMap(theValue);   PrintCLIPS(logicalName,"(fact-jn-cmp-vars1 ");   if (hack->pass) PrintCLIPS(logicalName,"p ");   else PrintCLIPS(logicalName,"n ");   PrintLongInteger(logicalName,(long) hack->slot1);   PrintCLIPS(logicalName," ");   PrintLongInteger(logicalName,(long) hack->pattern2);   PrintCLIPS(logicalName," ");   PrintLongInteger(logicalName,(long) hack->slot2);   PrintCLIPS(logicalName,")");#else#if MAC_MPW || MAC_MCW#pragma unused(logicalName)#pragma unused(theValue)#endif#endif  }    /***************************************//* PrintFactJNCompVars2: Print routine *//*   for the FactJNCompVars2 function. *//***************************************/#if IBM_TBC && (! DEVELOPER)#pragma argsused#endifgloble VOID PrintFactJNCompVars2(logicalName,theValue)  char *logicalName;  VOID *theValue;  {#if DEVELOPER   struct factCompVarsJN2Call *hack;   hack = (struct factCompVarsJN2Call *) ValueToBitMap(theValue);   PrintCLIPS(logicalName,"(fact-jn-cmp-vars2 ");   if (hack->pass) PrintCLIPS(logicalName,"p ");   else PrintCLIPS(logicalName,"n ");      PrintCLIPS(logicalName,"s");   PrintLongInteger(logicalName,(long) hack->slot1);   PrintCLIPS(logicalName," ");      if (hack->fromBeginning1) PrintCLIPS(logicalName,"b ");   else PrintCLIPS(logicalName,"e ");      PrintCLIPS(logicalName,"f");   PrintLongInteger(logicalName,(long) hack->offset1);   PrintCLIPS(logicalName," ");      PrintCLIPS(logicalName,"p");   PrintLongInteger(logicalName,(long) hack->pattern2);   PrintCLIPS(logicalName," ");      PrintCLIPS(logicalName,"s");   PrintLongInteger(logicalName,(long) hack->slot2);   PrintCLIPS(logicalName," ");      if (hack->fromBeginning2) PrintCLIPS(logicalName,"b ");   else PrintCLIPS(logicalName,"e ");      PrintCLIPS(logicalName,"f");   PrintLongInteger(logicalName,(long) hack->offset2);   PrintCLIPS(logicalName,")");#else#if MAC_MPW || MAC_MCW#pragma unused(logicalName)#pragma unused(theValue)#endif#endif  }    /***************************************//* PrintFactPNCompVars1: Print routine *//*   for the FactPNCompVars1 function. *//***************************************/#if IBM_TBC && (! DEVELOPER)#pragma argsused#endifgloble VOID PrintFactPNCompVars1(logicalName,theValue)  char *logicalName;  VOID *theValue;  {#if DEVELOPER   struct factCompVarsPN1Call *hack;   hack = (struct factCompVarsPN1Call *) ValueToBitMap(theValue);   PrintCLIPS(logicalName,"(fact-pn-cmp-vars ");   if (hack->pass) PrintCLIPS(logicalName,"p ");   else PrintCLIPS(logicalName,"n ");   PrintLongInteger(logicalName,(long) hack->field1);   PrintCLIPS(logicalName," ");   PrintLongInteger(logicalName,(long) hack->field2);   PrintCLIPS(logicalName,")");#else#if MAC_MPW || MAC_MCW#pragma unused(logicalName)#pragma unused(theValue)#endif#endif  }/**************************************//* PrintFactSlotLength: Print routine *//*   for the FactSlotLength function. *//**************************************/#if IBM_TBC && (! DEVELOPER)#pragma argsused#endifgloble VOID PrintFactSlotLength(logicalName,theValue)  char *logicalName;  VOID *theValue;  {#if DEVELOPER      struct factCheckLengthPNCall *hack;   hack = (struct factCheckLengthPNCall *) ValueToBitMap(theValue);      PrintCLIPS(logicalName,"(slot-length ");   PrintLongInteger(logicalName,(long) hack->whichSlot);   PrintCLIPS(logicalName," ");   if (hack->exactly) PrintCLIPS(logicalName,"= ");   else PrintCLIPS(logicalName,">= ");   PrintLongInteger(logicalName,(long) hack->minLength);   PrintCLIPS(logicalName,")");#else#if MAC_MPW || MAC_MCW#pragma unused(logicalName)#pragma unused(theValue)#endif#endif  }  /*************************************//* PrintFactJNGetVar1: Print routine *//*   for the FactJNGetvar1 function. *//*************************************/#if IBM_TBC && (! DEVELOPER)#pragma argsused#endifgloble VOID PrintFactJNGetVar1(logicalName,theValue)  char *logicalName;  VOID *theValue;  {  #if DEVELOPER   struct factGetVarJN1Call *hack;   hack = (struct factGetVarJN1Call *) ValueToBitMap(theValue);   PrintCLIPS(logicalName,"(fact-jn-getvar-1 ");   if (hack->factAddress) PrintCLIPS(logicalName,"t ");   else PrintCLIPS(logicalName,"f ");   if (hack->allFields) PrintCLIPS(logicalName,"t ");   else PrintCLIPS(logicalName,"f ");      PrintLongInteger(logicalName,(long) hack->whichPattern);   PrintCLIPS(logicalName," ");   PrintLongInteger(logicalName,(long) hack->whichField);   PrintCLIPS(logicalName," ");   PrintLongInteger(logicalName,(long) hack->whichSlot);   PrintCLIPS(logicalName,")");#else#if MAC_MPW || MAC_MCW#pragma unused(logicalName)#pragma unused(theValue)#endif#endif  }  /*************************************//* PrintFactJNGetVar2: Print routine *//*   for the FactJNGetvar2 function. *//*************************************/#if IBM_TBC && (! DEVELOPER)#pragma argsused#endifgloble VOID PrintFactJNGetVar2(logicalName,theValue)  char *logicalName;  VOID *theValue;  {  #if DEVELOPER   struct factGetVarJN2Call *hack;   hack = (struct factGetVarJN2Call *) ValueToBitMap(theValue);   PrintCLIPS(logicalName,"(fact-jn-getvar-2 ");      PrintLongInteger(logicalName,(long) hack->whichPattern);   PrintCLIPS(logicalName," ");   PrintLongInteger(logicalName,(long) hack->whichSlot);   PrintCLIPS(logicalName,")");#else#if MAC_MPW || MAC_MCW#pragma unused(logicalName)#pragma unused(theValue)#endif#endif  }  /*************************************//* PrintFactJNGetVar3: Print routine *//*   for the FactJNGetVar3 function. *//*************************************/#if IBM_TBC && (! DEVELOPER)#pragma argsused#endifgloble VOID PrintFactJNGetVar3(logicalName,theValue)  char *logicalName;  VOID *theValue;  {  #if DEVELOPER   struct factGetVarJN3Call *hack;   hack = (struct factGetVarJN3Call *) ValueToBitMap(theValue);   PrintCLIPS(logicalName,"(fact-jn-getvar-3 ");   if (hack->fromBeginning) PrintCLIPS(logicalName,"t ");   else PrintCLIPS(logicalName,"f ");   if (hack->fromEnd) PrintCLIPS(logicalName,"t ");   else PrintCLIPS(logicalName,"f ");            PrintLongInteger(logicalName,(long) hack->beginOffset);   PrintCLIPS(logicalName," ");   PrintLongInteger(logicalName,(long) hack->endOffset);   PrintCLIPS(logicalName," ");   PrintLongInteger(logicalName,(long) hack->whichSlot);   PrintCLIPS(logicalName,")");#else#if MAC_MPW || MAC_MCW#pragma unused(logicalName)#pragma unused(theValue)#endif#endif  }  /*************************************//* PrintFactPNGetVar1: Print routine *//*   for the FactPNGetvar1 function. *//*************************************/#if IBM_TBC && (! DEVELOPER)#pragma argsused#endifgloble VOID PrintFactPNGetVar1(logicalName,theValue)  char *logicalName;  VOID *theValue;  {  #if DEVELOPER   struct factGetVarPN1Call *hack;   hack = (struct factGetVarPN1Call *) ValueToBitMap(theValue);   PrintCLIPS(logicalName,"(fact-pn-getvar-1 ");   if (hack->factAddress) PrintCLIPS(logicalName,"t ");   else PrintCLIPS(logicalName,"f ");   if (hack->allFields) PrintCLIPS(logicalName,"t F");   else PrintCLIPS(logicalName,"f F");      PrintLongInteger(logicalName,(long) hack->whichField);   PrintCLIPS(logicalName," S");   PrintLongInteger(logicalName,(long) hack->whichSlot);   PrintCLIPS(logicalName,")");#else#if MAC_MPW || MAC_MCW#pragma unused(logicalName)#pragma unused(theValue)#endif#endif  }/*************************************//* PrintFactPNGetVar2: Print routine *//*   for the FactPNGetvar2 function. *//*************************************/#if IBM_TBC && (! DEVELOPER)#pragma argsused#endifgloble VOID PrintFactPNGetVar2(logicalName,theValue)  char *logicalName;  VOID *theValue;  {  #if DEVELOPER   struct factGetVarPN2Call *hack;   hack = (struct factGetVarPN2Call *) ValueToBitMap(theValue);;   PrintCLIPS(logicalName,"(fact-pn-getvar-2 S");   PrintLongInteger(logicalName,(long) hack->whichSlot);   PrintCLIPS(logicalName,")");#else#if MAC_MPW || MAC_MCW#pragma unused(logicalName)#pragma unused(theValue)#endif#endif  }  /*************************************//* PrintFactPNGetVar3: Print routine *//*   for the FactPNGetvar3 function. *//*************************************/#if IBM_TBC && (! DEVELOPER)#pragma argsused#endifgloble VOID PrintFactPNGetVar3(logicalName,theValue)  char *logicalName;  VOID *theValue;  {  #if DEVELOPER   struct factGetVarPN3Call *hack;   hack = (struct factGetVarPN3Call *) ValueToBitMap(theValue);   PrintCLIPS(logicalName,"(fact-pn-getvar-3 ");      if (hack->fromBeginning) PrintCLIPS(logicalName,"t ");   else PrintCLIPS(logicalName,"f ");   if (hack->fromEnd) PrintCLIPS(logicalName,"t B");   else PrintCLIPS(logicalName,"f B");      PrintLongInteger(logicalName,(long) hack->beginOffset);   PrintCLIPS(logicalName," E");   PrintLongInteger(logicalName,(long) hack->endOffset);   PrintCLIPS(logicalName," S");   PrintLongInteger(logicalName,(long) hack->whichSlot);   PrintCLIPS(logicalName,")");#else#if MAC_MPW || MAC_MCW#pragma unused(logicalName)#pragma unused(theValue)#endif#endif  }   /***************************************//* PrintFactPNConstant1: Print routine *//*   for the FactPNConstant1 function. *//***************************************/#if IBM_TBC && (! DEVELOPER)#pragma argsused#endifgloble VOID PrintFactPNConstant1(logicalName,theValue)  char *logicalName;  VOID *theValue;  {  #if DEVELOPER   struct factConstantPN1Call *hack;   hack = (struct factConstantPN1Call *) ValueToBitMap(theValue);      PrintCLIPS(logicalName,"(fact-pn-constant1 ");      PrintLongInteger(logicalName,(long) hack->whichSlot);      if (hack->testForEquality) PrintCLIPS(logicalName," = ");   else PrintCLIPS(logicalName," != ");      PrintAtom(logicalName,GetFirstArgument()->type,GetFirstArgument()->value);   PrintCLIPS(logicalName,")");#else#if MAC_MPW || MAC_MCW#pragma unused(logicalName)#pragma unused(theValue)#endif#endif  }   /***************************************//* PrintFactPNConstant2: Print routine *//*   for the FactPNConstant2 function. *//***************************************/#if IBM_TBC && (! DEVELOPER)#pragma argsused#endifgloble VOID PrintFactPNConstant2(logicalName,theValue)  char *logicalName;  VOID *theValue;  {  #if DEVELOPER   struct factConstantPN2Call *hack;   hack = (struct factConstantPN2Call *) ValueToBitMap(theValue);      PrintCLIPS(logicalName,"(fact-pn-constant2 ");      PrintLongInteger(logicalName,(long) hack->whichSlot);      PrintCLIPS(logicalName," ");      PrintLongInteger(logicalName,(long) hack->offset);      if (hack->testForEquality) PrintCLIPS(logicalName," = ");   else PrintCLIPS(logicalName," != ");      PrintAtom(logicalName,GetFirstArgument()->type,GetFirstArgument()->value);   PrintCLIPS(logicalName,")");#else#if MAC_MPW || MAC_MCW#pragma unused(logicalName)#pragma unused(theValue)#endif#endif  }   #endif /* DEFTEMPLATE_CONSTRUCT && DEFRULE_CONSTRUCT */

⌨️ 快捷键说明

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