コード例 #1
0
ファイル: classcom.c プロジェクト: atrniv/CLIPS
globle void *SetClassDefaultsModeCommand(
  void *theEnv,
	EXEC_STATUS)
  {
   DATA_OBJECT argPtr;
   char *argument;
   unsigned short oldMode;
   
   oldMode = DefclassData(theEnv,execStatus)->ClassDefaultsMode;

   /*=====================================================*/
   /* Check for the correct number and type of arguments. */
   /*=====================================================*/

   if (EnvArgCountCheck(theEnv,execStatus,"set-class-defaults-mode",EXACTLY,1) == -1)
     { return((SYMBOL_HN *) EnvAddSymbol(theEnv,execStatus,GetClassDefaultsModeName(EnvGetClassDefaultsMode(theEnv,execStatus)))); }

   if (EnvArgTypeCheck(theEnv,execStatus,"set-class-defaults-mode",1,SYMBOL,&argPtr) == FALSE)
     { return((SYMBOL_HN *) EnvAddSymbol(theEnv,execStatus,GetClassDefaultsModeName(EnvGetClassDefaultsMode(theEnv,execStatus)))); }

   argument = DOToString(argPtr);

   /*=============================================*/
   /* Set the strategy to the specified strategy. */
   /*=============================================*/

   if (strcmp(argument,"conservation") == 0)
     { EnvSetClassDefaultsMode(theEnv,execStatus,CONSERVATION_MODE); }
   else if (strcmp(argument,"convenience") == 0)
     { EnvSetClassDefaultsMode(theEnv,execStatus,CONVENIENCE_MODE); }
   else
     {
      ExpectedTypeError1(theEnv,execStatus,"set-class-defaults-mode",1,
      "symbol with value conservation or convenience");
      return((SYMBOL_HN *) EnvAddSymbol(theEnv,execStatus,GetClassDefaultsModeName(EnvGetClassDefaultsMode(theEnv,execStatus))));
     }

   /*===================================*/
   /* Return the old value of the mode. */
   /*===================================*/

   return((SYMBOL_HN *) EnvAddSymbol(theEnv,execStatus,GetClassDefaultsModeName(oldMode)));
  }
コード例 #2
0
ファイル: classcom.c プロジェクト: Khenji55/Computacion_UCLM
globle unsigned short SetClassDefaultsMode(
  unsigned short value)
  {
   return EnvSetClassDefaultsMode(GetCurrentEnvironment(),value);
  }