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

📄 clips_bc.cpp

📁 clips专家系统内核打包类,很有参考性.
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	if((FileName == NULL) ||
	   (FileName->length()==0))	{
		retval = -2;
		}
	else	{
		FileName->copy(m_buf);
		retval = (dl_LoadFacts)(m_buf);
		}

	switch(retval)	{
		case 0:	{
			return READ_FAIL;
			}
		case 1:	{
			return READ_OK;
			}
		case -2:	{
			return BAD_LOAD_NAME;
			}
		}
	return READ_FAIL;
}

/****************************************************************************
		Function	: CCLIPSWrap::CLIPSNextFact(void)
		Author		: Mark Tomlinson
		Desc.		: Accessor for CLIPS GetNextFact(); places returned fact
					  into factPtr
		Returns 	: TRUE if it succeeded, and FALSE on failure - or if
					  no more facts exist.
****************************************************************************/
BOOL CCLIPSWrap::CLIPSNextFact(void)
{
	INITCHK(FALSE)
	factPtr=(dl_GetNextFact)(factPtr);
	if(factPtr)	{
		return TRUE;
		}
	return FALSE;
}

/****************************************************************************
		Function	: CCLIPSWrap::CLIPSFactString(String* Data)
		Author		: Mark Tomlinson
		Desc.		: Accessor for CLIPS GetFactPPForm(); places factPtr Data
					  into string parameter.
		Returns 	: TRUE if it succeeded, and FALSE on failure
****************************************************************************/
BOOL CCLIPSWrap::CLIPSFactString(String* Data)
{
	INITCHK(FALSE)
	if(Data == NULL)	{
		return FALSE;
		}
	CLEARMBUF
	if(factPtr)	{  //place fact into string buffer
		(dl_GetFactPPForm)(m_buf,MAX_FACT_LEN,factPtr);
		Data->assign(m_buf);
		return TRUE;
		}
	return FALSE;
}

/****************************************************************************
		Function	: CCLIPSWrap::CLIPSSetFactDup(int Value)
		Author		: Mark Tomlinson
		Desc.		: Accessor for CLIPS SetFactDuplication();
		Returns 	: return value of SetFactDuplication, appears to be old
					  FactDuplication value. -1 if an error.
****************************************************************************/
int	CCLIPSWrap::CLIPSSetFactDup(int Value)
{
	INITCHK(-1)
	return (dl_SetFactDuplication)(Value);
}

/****************************************************************************
		Function	: CCLIPSWrap::CLIPSGetFactDup(void)
		Author		: Mark Tomlinson
		Desc.		: Accessor for CLIPS SetFactDuplication();
		Returns 	: return value of GetFactDuplication. -1 on error
****************************************************************************/
int	CCLIPSWrap::CLIPSGetFactDup(void)
{
	INITCHK(-1)
	return (dl_GetFactDuplication)();
}

/****************************************************************************
		Function	: CCLIPSWrap::CLIPSDribble(String* FileName, BOOL Switch)
		Author		: Mark Tomlinson
		Desc.		: Accessor for CLIPS DribbleOn() and DribbleOff(); if Switch
					  is TRUE it executes DribbleOn if Switch is FALSE it
					  executes DribbleOff.
		Returns 	: TRUE on success, FALSE on error
****************************************************************************/
BOOL	CCLIPSWrap::CLIPSDribble(String* FileName, BOOL Switch)
{
	INITCHK(FALSE)
	if((Switch)	&&
		((FileName == NULL) ||
		(FileName->length()==0)))	{
		return FALSE;
		}
	if(Switch)	{
		CLEARMBUF
		FileName->copy(m_buf);
		return (dl_DribbleOn)(m_buf);
		}
	else	{
		return (dl_DribbleOff)();
		}
}

/****************************************************************************
		Function	: CCLIPSWrap::CLIPSAssert(String* String)
		Author		: Mark Tomlinson
		Desc.		: first form for CLIPSAssert();
					  Accessor for CLIPS AssertString function. pointer to the
					  asserted fact is stored in factPtr.
		Returns 	: TRUE on success, FALSE on error
****************************************************************************/
BOOL	CCLIPSWrap::CLIPSAssert(String* String)
{
	INITCHK(FALSE)
	if((String == NULL) ||
	   (String->length()==0))	{
		return FALSE;
		}
	CLEARMBUF
	String->copy(m_buf);
	factPtr = (dl_AssertString)(m_buf);
	if(factPtr == NULL)	{
		return FALSE;
		}
	return TRUE;
}

/****************************************************************************
		Function	: CCLIPSWrap::CLIPSAssert(void* Fact)
		Author		: Mark Tomlinson
		Desc.		: second form for CLIPSAssert(); (third form is implied)
					  Accessor for CLIPS Assert function. pointer to the
					  asserted fact is stored in factPtr. If the Fact parameter
					  is NULL then factPtr will be asserted unless it is NULL.
		Returns 	: TRUE on success, FALSE on error
****************************************************************************/
BOOL	CCLIPSWrap::CLIPSAssert(void* Fact)
{
	INITCHK(FALSE)
	if(Fact == NULL)	{
		if(factPtr != NULL)	{
			factPtr = (dl_Assert)(factPtr);
			}
		else	{
			return FALSE;
			}
		}
	else	{
		factPtr = (dl_Assert)(Fact);
		}
	if(factPtr == NULL)	{
		return FALSE;
		}
	return TRUE;
}

/****************************************************************************
		Function	: CCLIPSWrap::CLIPSIncrementFactCtr(void* Fact)
		Author		: Mark Tomlinson
		Desc.		: Accessor for CLIPS IncrementFactCount. if Fact parameter
					  is NULL then factPtr is assumed to be the fact for which
					  the count is to be incremented.
		Returns 	: TRUE on success, FALSE on error
****************************************************************************/
BOOL	CCLIPSWrap::CLIPSIncrementFactCtr(void* Fact)
{
	INITCHK(FALSE)
	if(Fact == NULL)	{
		if(factPtr != NULL)	{
			(dl_IncrementFactCount)(factPtr);
			}
		else	{
			return FALSE;
			}
		}
	else	{
		(dl_IncrementFactCount)(Fact);
		}
	return TRUE;
}

/****************************************************************************
		Function	: CCLIPSWrap::CLIPSDecrementFactCtr(void* Fact)
		Author		: Mark Tomlinson
		Desc.		: Accessor for CLIPS DecrementFactCount. if Fact parameter
					  is NULL then factPtr is assumed to be the fact for which
					  the count is to be decremented.
		Returns 	: TRUE on success, FALSE on error
****************************************************************************/
BOOL	CCLIPSWrap::CLIPSDecrementFactCtr(void* Fact)
{
	INITCHK(FALSE)
	if(Fact == NULL)	{
		if(factPtr != NULL)	{
			(dl_DecrementFactCount)(factPtr);
			}
		else	{
			return FALSE;
			}
		}
	else	{
		(dl_DecrementFactCount)(Fact);
		}
	return TRUE;
}

/****************************************************************************
		Function	: CCLIPSWrap::CLIPSGetFactListChanged(void)
		Author		: Mark Tomlinson
		Desc.		: Accessor for CLIPS GetFactListChanged.
		Returns 	: return value of GetFactListChanged()
****************************************************************************/
int	CCLIPSWrap::CLIPSGetFactListChanged(void)
{
	INITCHK(FALSE)
	return (dl_GetFactListChanged)();
}

/****************************************************************************
		Function	: CCLIPSWrap::CLIPSSetFactListChanged(int Value)
		Author		: Mark Tomlinson
		Desc.		: Accessor for CLIPS SetFactListChanged.
		Returns 	: TRUE on success, FALSE on error
****************************************************************************/
BOOL	CCLIPSWrap::CLIPSSetFactListChanged(int Value)
{
	INITCHK(FALSE)
	(dl_SetFactListChanged)(Value);
	return TRUE;
}

/****************************************************************************
		Function	: CCLIPSWrap::CLIPSGetNextInstance(int Which, void* Class)
		Author		: Mark Tomlinson
		Desc.		: Accessor for CLIPS functions:
					  GetNextInstance()
					  GetNextInstanceInScope()
					  GetNextInstanceInClass() <if Class is NULL classPtr is used>
					  determined by Which parameter. updates instancePtr.
		Returns 	: TRUE on success, FALSE on error
****************************************************************************/
BOOL	CCLIPSWrap::CLIPSGetNextInstance(int Which, void* Class)
{
	INITCHK(FALSE)
	if((Which == I_CLASS) &&
		(Class == NULL)	 &&
		(classPtr == NULL))	{
		return FALSE;
		}

	switch(Which)	{
		case I_PERIOD:
			instancePtr = (dl_GetNextInstance)(instancePtr);
			break;
		case I_SCOPE:
			instancePtr = (dl_GetNextInstanceInScope)(instancePtr);
			break;
		case I_CLASS:	{
			if(Class == NULL)	{
				instancePtr = (dl_GetNextInstanceInClass)(instancePtr, classPtr);
				}
			else	{
				instancePtr = (dl_GetNextInstanceInClass)(instancePtr, Class);
				}
			}
			break;
		}
	if(instancePtr == NULL)	{
		return FALSE;
		}
	return TRUE;
}

/****************************************************************************
		Function	: CCLIPSWrap::CLIPSGetInstanceClass(void* Instance)
		Author		: Mark Tomlinson
		Desc.		: Accessor for CLIPS function	GetInstanceClass():
					  updates classPtr. If Instance is NULL uses instancePtr.
		Returns 	: TRUE on success, FALSE on error
****************************************************************************/
BOOL	CCLIPSWrap::CLIPSGetInstanceClass(void* Instance)
{
	INITCHK(FALSE)
	if((Instance == NULL)	 &&
		(instancePtr == NULL))	{
		return FALSE;
		}
	if(Instance == NULL)	{
		classPtr = (dl_GetInstanceClass)(instancePtr);
		}
	else	{
		classPtr = (dl_GetInstanceClass)(Instance);
		}

	if(classPtr == NULL)	{
		return FALSE;
		}
	return TRUE;
}

/****************************************************************************
		Function	: CCLIPSWrap::CLIPSGetInstanceName(void* Instance,String* Data)
		Author		: Mark Tomlinson
		Desc.		: Accessor for CLIPS function	GetInstanceName():
					  If Instance is NULL uses instancePtr. Name is returned
					  in string class parameter Data.
		Returns 	: TRUE on success, FALSE on error
****************************************************************************/
BOOL	CCLIPSWrap::CLIPSGetInstanceName(void* Instance, String* Data)
{
	char far *temp;

	INITCHK(FALSE)
	if((Instance == NULL)	 &&
		(instancePtr == NULL))	{
		return FALSE;
		}
	if(Data == NULL)	{
		return FALSE;
		}
	if(Instance == NULL)	{
		temp = (dl_GetInstanceName)(instancePtr);
		}
	else	{
		temp = (dl_GetInstanceName)(Instance);
		}
	if(temp == NULL)	{
		return FALSE;
		}
	(*Data) = temp;
	return TRUE;
}

/****************************************************************************
		Function	: CCLIPSWrap::CLIPSGetInstanceData(void* Instance,String* Data)
		Author		: Mark Tomlinson
		Desc.		: Accessor for CLIPS function	GetInstancePPForm():
					  If Instance is NULL uses instancePtr. Data is returned
					  in string class parameter Data.
		Returns 	: TRUE on success, FALSE on error
****************************************************************************/
BOOL	CCLIPSWrap::CLIPSGetInstanceData(void* Instance, String* Data)
{
	INITCHK(FALSE)
	if((Instance == NULL)	 &&
	   (instancePtr == NULL))	{
		return FALSE;
		}
	if(Data == NULL)	{
		return FALSE;
		}
	CLEARMBUF
	if(Instance == NULL)	{
		(dl_GetInstancePPForm)(m_buf,255,instancePtr);
		}
	else	{
		(dl_GetInstancePPForm)(m_buf,255,Instance);
		}
	Data->assign(m_buf);
	return TRUE;
}

/****************************************************************************
		Function	: CCLIPSWrap::CLIPSCreateRawInstance(String* Name)
		Author		: Mark Tomlinson
		Desc.		: Accessor for CLIPS function	CreateRawInstance():
					  uses classPtr which must already be set to desired class
		Returns 	: TRUE on success, FALSE on error
****************************************************************************/
BOOL	CCLIPSWrap::CLIPSCreateRawInstance(String* Data)
{
	INITCHK(FALSE)
	if(classPtr == NULL)	{
		return FALSE;
		}
	if((Data == NULL)	||
		(Data->length()==0))	{
		return FALSE;
		}
	CLEARMBUF
	Data->copy(m_buf);
	instancePtr = (dl_CreateRawInstance)(classPtr,m_buf);
	if(instancePtr == NULL)	{
		return FALSE;
		}
	return TRUE;
}

/****************************************************************************
		Function	: CCLIPSWrap::CLIPSValidInstance(void* Instance)
		Author		: Mark Tomlinson
		Desc.		: Accessor for CLIPS function ValidInstanceAddress():
					  uses instancePtr if Instance parameter is NULL.
		Returns 	: TRUE if valid, FALSE on error
****************************************************************************/
BOOL	CCLIPSWrap::CLIPSValidInstance(void* Instance)
{
	int	retVal;

	INITCHK(FALSE)
	if((Instance == NULL)	&&
		(instancePtr == NULL))	{
		return FALSE;
		}
	if(Instance == NULL)	{
		retVal = (dl_ValidInstanceAddress)(instancePtr);
		}
	else	{
		retVal = (dl_ValidInstanceAddress)(Instance);
		}
	if(retVal)	{
		return TRUE;
		}
	return FALSE;
}

⌨️ 快捷键说明

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