SpringScriptEngine  1.0.0
A script engine
CScriptEngine クラス

#include <CScriptEngine.h>

公開メンバ関数

 CScriptEngine ()
 
 ~CScriptEngine ()
 
bool Load (const char *sFilename)
 スクリプトを読み込み [詳解]
 
bool LoadFromMem (const char *buf)
 メモリからスクリプトを読み込む [詳解]
 
bool Run ()
 スクリプトを実行 [詳解]
 
bool RegisterCommand (const std::string &name, const std::string &prm, seCOMMAND pFunc, void *arg)
 命令を登録 [詳解]
 
bool UnregisterCommand (const std::string &name)
 命令を削除 [詳解]
 
bool GoTo (const std::string &sLabel, bool bEvent=false)
 ラベルジャンプ [詳解]
 
void Exit ()
 スクリプトの実行を中止 [詳解]
 
void Break ()
 全てのスクリプトの実行を中止 [詳解]
 
void SetPostion (const PostionInfo &o)
 処理するファイル内位置を変更 [詳解]
 
void SetPostionForce (const PostionInfo &o)
 処理するファイル内位置を変更(後処理なし) [詳解]
 
const PostionInfo GetPostion ()
 現在のファイル内位置を取得 [詳解]
 
const PostionInfo GetPostionLH ()
 
const std::string * GetScriptFName ()
 読み込んだスクリプトファイルのパスを取得 [詳解]
 
size_t GetLine ()
 処理中の行 [詳解]
 
int Eval_i (const std::string &sExpression)
 文字列の数式を評価(int) [詳解]
 
float Eval_f (const std::string &sExpression)
 文字列の数式を評価(float) [詳解]
 

公開変数類

CErrorMan m_em
 

非公開メンバ関数

bool CheckAllLabels ()
 全てのラベルをチェック [詳解]
 
bool AnalyzeCommand (const std::string &sLine, CommandArg &cmdInfo)
 行を解析 [詳解]
 
bool AnalyzeArgument (const std::string &rawData, CVariableMan &v)
 引数を解析 [詳解]
 
bool CallCommand (CommandArg &cmdInfo)
 命令を呼び出す [詳解]
 
unsigned char CheckMultiByte (unsigned char in, char Char)
 

非公開変数類

std::string m_Buf
 
size_t m_uBufSize
 
PostionInfo m_PosInfo
 現在位置 [詳解]
 
size_t m_uSPos
 行の先頭への位置 [詳解]
 
std::string m_sFilename
 
bool m_bSetPostion
 ファイル内位置が変更されたか [詳解]
 
bool m_bWantExit
 
bool m_bWantBreak
 
int m_nRunCount
 
std::vector< CVariableManm_varList
 変数バッファ [詳解]
 
std::vector< CommandInfom_cmdlist
 命令リスト [詳解]
 
std::map< std::string, PostionInfom_label
 ラベルリスト [詳解]
 

構築子と解体子

◆ CScriptEngine()

CScriptEngine::CScriptEngine ( )

◆ ~CScriptEngine()

CScriptEngine::~CScriptEngine ( )

関数詳解

◆ AnalyzeArgument()

bool CScriptEngine::AnalyzeArgument ( const std::string &  rawData,
CVariableMan v 
)
private

引数を解析

引数
[in]rawData引数の生データー
[out]v処理された引数データー
戻り値
空引数だった場合はfalse、それ以外はtrue

◆ AnalyzeCommand()

bool CScriptEngine::AnalyzeCommand ( const std::string &  sLine,
CommandArg cmdInfo 
)
private

行を解析

引数
[in]sLine1行の文字列
[out]cmdInfo命令データー
戻り値
常にtrue

◆ Break()

void CScriptEngine::Break ( )
inline

全てのスクリプトの実行を中止

◆ CallCommand()

bool CScriptEngine::CallCommand ( CommandArg cmdInfo)
private

命令を呼び出す

引数
[in]cmdInfo呼び出す命令のデーター
戻り値
成功時true、失敗時false。

◆ CheckAllLabels()

bool CScriptEngine::CheckAllLabels ( )
private

全てのラベルをチェック

戻り値
常にtrue
todo:
std::mapに変更したい

◆ CheckMultiByte()

unsigned char CScriptEngine::CheckMultiByte ( unsigned char  in,
char  Char 
)
inlineprivate

◆ Eval_f()

float CScriptEngine::Eval_f ( const std::string &  sExpression)

文字列の数式を評価(float)

引数
[in]
戻り値
結果

◆ Eval_i()

int CScriptEngine::Eval_i ( const std::string &  sExpression)

文字列の数式を評価(int)

引数
[in]
戻り値
結果

◆ Exit()

void CScriptEngine::Exit ( )
inline

スクリプトの実行を中止

◆ GetLine()

size_t CScriptEngine::GetLine ( )
inline

処理中の行

◆ GetPostion()

const PostionInfo CScriptEngine::GetPostion ( )
inline

現在のファイル内位置を取得

◆ GetPostionLH()

const PostionInfo CScriptEngine::GetPostionLH ( )
inline

◆ GetScriptFName()

const std::string* CScriptEngine::GetScriptFName ( )
inline

読み込んだスクリプトファイルのパスを取得

◆ GoTo()

bool CScriptEngine::GoTo ( const std::string &  sLabel,
bool  bEvent = false 
)

ラベルジャンプ

引数
[in]sLabelラベル名
[in]bEventイベント発火によるジャンプかどうか
戻り値
成功時true、失敗時false。
覚え書き
waitなどの待機命令内でイベントを処理する時でラベルジャンプした後に CScriptEngine::Run()を実行する場合に、bEventをtrueにします。

◆ Load()

bool CScriptEngine::Load ( const char *  sFilename)

スクリプトを読み込み

引数
[in]sFilename読み込むファイル名
戻り値
成功時true、失敗時false。

◆ LoadFromMem()

bool CScriptEngine::LoadFromMem ( const char *  buf)

メモリからスクリプトを読み込む

引数
[in]buf文字列バッファ
戻り値
成功時true、失敗時false。

◆ RegisterCommand()

bool CScriptEngine::RegisterCommand ( const std::string &  name,
const std::string &  prm,
seCOMMAND  pFunc,
void *  arg 
)

命令を登録

引数
[in]name命令の名前
[in]prm引数リスト(i = Integer / f = Float / s = String / v = Variable / . = 可変長引数)
[in]pFunc呼び出される関数
[in]argユーザー定義値
戻り値
成功時true、失敗時false。

◆ Run()

bool CScriptEngine::Run ( )

スクリプトを実行

戻り値
常にtrue

◆ SetPostion()

void CScriptEngine::SetPostion ( const PostionInfo o)
inline

処理するファイル内位置を変更

◆ SetPostionForce()

void CScriptEngine::SetPostionForce ( const PostionInfo o)
inline

処理するファイル内位置を変更(後処理なし)

◆ UnregisterCommand()

bool CScriptEngine::UnregisterCommand ( const std::string &  name)

命令を削除

引数
[in]name削除する命令の名前
戻り値
成功時true、失敗時false。
覚え書き
全ての同じ名前の命令が削除されることに注意

メンバ詳解

◆ m_bSetPostion

bool CScriptEngine::m_bSetPostion
private

ファイル内位置が変更されたか

◆ m_Buf

std::string CScriptEngine::m_Buf
private

◆ m_bWantBreak

bool CScriptEngine::m_bWantBreak
private

◆ m_bWantExit

bool CScriptEngine::m_bWantExit
private

◆ m_cmdlist

std::vector<CommandInfo> CScriptEngine::m_cmdlist
private

命令リスト

◆ m_em

CErrorMan CScriptEngine::m_em

◆ m_label

std::map<std::string, PostionInfo> CScriptEngine::m_label
private

ラベルリスト

◆ m_nRunCount

int CScriptEngine::m_nRunCount
private

◆ m_PosInfo

PostionInfo CScriptEngine::m_PosInfo
private

現在位置

◆ m_sFilename

std::string CScriptEngine::m_sFilename
private

◆ m_uBufSize

size_t CScriptEngine::m_uBufSize
private

◆ m_uSPos

size_t CScriptEngine::m_uSPos
private

行の先頭への位置

◆ m_varList

std::vector<CVariableMan> CScriptEngine::m_varList
private

変数バッファ


このクラス詳解は次のファイルから抽出されました: