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

📄 atsengine.h

📁 AtScript 1.1 一个很好用的脚本引擎,可以很方便的在你的软件中实现脚本功能,支持用户扩展对象
💻 H
字号:
// AtsEng.h: interface for the CAtsEngine class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_ATSENG_H__997C2252_D48D_4766_A6B6_5C93750CBCB0__INCLUDED_)
#define AFX_ATSENG_H__997C2252_D48D_4766_A6B6_5C93750CBCB0__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "AtsDef.h"
#include "AtsSegmentItem.h"
#include "AtsSegIns.h"
#include "AtsObject.h"
#include "AtsFile.h"
#include "AtsSentence.h"
#include "ScriptExpExt.h"

//==================================
// AtScript 引擎
//==================================
class ATS_API CAtsEngine  
{
public:
	CAtsEngine();
	virtual ~CAtsEngine();

	BOOL	IsVar(LPCTSTR sName );
	BOOL	IsCoustomFun( CString strFunName );
	CAtsVarItem * GetVarItem(LPCTSTR sName );
	BOOL	CheckCondition( CAtsString strCondition );
	BOOL	SetDataEx( CAtsString strVarName , CAtsString strExp );
	BOOL	SetData( CAtsString strVarName , CAtsString strOther );
	BOOL	RunFun( CString strFunName , CAtsParam *pParam );
	BOOL	RunFun( CString strFunName , CString strParam );
	BOOL	DoAtsSysFun( CAtsString strFunName, CAtsParam *pParam );
	BOOL	ExistSegment( CAtsString strSegmentName );
	BOOL	LoadScript(LPCTSTR strScript);
	BOOL	LoadScriptFile(LPCTSTR strScriptFile);
	BOOL	LoadScriptFile(CAtsFile *pScriptFile);
	CAtsString GetFactData( CAtsString strData );
	CAtsString GetFactData( CAtsValue * pData );
	BOOL	IsObjVar(CAtsString strName , CAtsString &strObjName , CAtsString &strVarName );
	void	DetachList(CAtsString strListName = _T("") );
	BOOL	RunSegment( CAtsString strSegmentName , CAtsParam *pParam = NULL );
	BOOL	RunRegmentIns(CAtsSegIns *pSegIns , CAtsParam *pParam = NULL);
	void	ClearData();
	void	RunCmdLine(CAtsSegIns * pCurSegIns , CAtsString strCmdLine, BOOL &bExit);
	CAtsSegmentItem * GetSegment(CAtsString strName);
	BOOL	NewObject( CAtsString strName , CAtsString strClassName);
	CAtsObject * GetObjIns( CAtsString strName );
	BOOL		DoCustomSysFun( CAtsString strFunName, CAtsParam *pParam );
	BOOL		DoObjFun( CAtsString strFistWord , CAtsParam *pParam );
	void		SetVar(LPCTSTR strName , LPCTSTR strData);
	void		SetVar(LPCTSTR sName , int nData);
	void		SetVar(LPCTSTR sName , CAtsValue *pData);
	CAtsString	GetVar(LPCTSTR strName, BOOL &bExist);
	void		AddObjIns( LPCTSTR sName , CAtsObject *pObjCalss );
	BOOL		Computer( CString strExpress , CAtsValue *pValue );
	void		SetError(int nErrorCode , LPCTSTR strErrorWord = _T("") , int nErrorLine = -1);

	CScriptExpExt	m_ExpExt;
	CAtsSegIns	*	m_pCurSegIns;
	CObList			m_listSegment;  // 包括 Section 和 function
	CPtrList		m_listUserVar;	// 用户定义的变量,规则为 @VarName
	CObList			m_listSegIns;	// Segment 的实例堆栈

	// 出错信息
	BOOL			m_bIsError;			// 是否出错
	int				m_nLastErrorCode;	// 错误代码
	int				m_nErrorLine;		// 出错的行
	CString			m_strErrorWord;		// 出错的字

public:
	virtual  CAtsObject * CreateAtsObject(LPCTSTR strName)	{return NULL;}
};

#endif // !defined(AFX_ATSENG_H__997C2252_D48D_4766_A6B6_5C93750CBCB0__INCLUDED_)

⌨️ 快捷键说明

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