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

📄 atsengine.h

📁 在你的程序中实现脚本功能,该脚本引擎名为AtScript , 是类似于VBScript 的语法, 在一些比VBScript 更好用,更方便,性能更高,而且容易扩展,无需组件环境,
💻 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"

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

	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 GetFaceData( CAtsString strData );
	BOOL	IsObjVar(CAtsString strName , CAtsString &strObjName , CAtsString &strVarName );
	void	DetachList(CAtsString strListName = _T("") );
	BOOL	RunSegment( CAtsString strSegmentName );
	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);
	void	AddObjClass( CAtsObject *pObjCalss );
	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);
	LPCTSTR GetVar(LPCTSTR strName, BOOL &bExist);
	void	AddObjIns( CAtsObject *pObjCalss );
	BOOL	Computer( CString strExpress , CString &strComputerVal );
	void	SetError(int nErrorCode , LPCTSTR strErrorWord = _T("") , int nErrorLine = -1);

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

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

#endif // !defined(AFX_ATSENG_H__997C2252_D48D_4766_A6B6_5C93750CBCB0__INCLUDED_)

⌨️ 快捷键说明

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