SpringScriptEngine  1.0.0
A script engine
SpringScriptEngine.h ファイル

[ソースコード]

クラス

struct  HSPRINGSCRIPT
 
struct  HSPRINGSCRIPTVAR
 
struct  HCOMMANDARG
 
struct  HWND
 
struct  tagPostionInfo
 

マクロ定義

#define DLLFUNC   extern "C" __declspec(dllimport)
 

型定義

typedef int BOOL
 
typedef unsigned int UINT
 
typedef float FLOAT
 
typedef int INT
 
typedef struct tagPostionInfo PostionInfo
 
typedef int(* ErrorCallbk) (int, int, const char *, void *)
 エラー発生時に呼び出されるコールバック関数 [詳解]
 
typedef int(* CommandCallbk) (void *, HCOMMANDARG)
 命令実行時に呼び出されるコールバック関数 [詳解]
 

列挙型

enum  VarType {
  VARTYPE_INTEGER, VARTYPE_STRING, VARTYPE_FLOAT, VARTYPE_HANDLE,
  VARTYPE_VARIABLE, VARTYPE_UNKNOWN, VARTYPE_LAST, VARTYPE_FIRST = VARTYPE_INTEGER
}
 変数の型 [詳解]
 

関数

DLLFUNC HSPRINGSCRIPT SpringScript_CreateInstance ()
 SpringScriptEngineのインスタンスを作成 [詳解]
 
DLLFUNC BOOL SpringScript_DestroyInstance (HSPRINGSCRIPT hSpringScript)
 SpringScriptEngineのインスタンスを破棄 [詳解]
 
DLLFUNC BOOL SpringScript_SetErrorCallbk (HSPRINGSCRIPT hSpringScript, HWND hWnd, ErrorCallbk pFunc, void *pUserData)
 エラー発生の呼び出すコールバック関数を設定 [詳解]
 
DLLFUNC BOOL SpringScript_Load (HSPRINGSCRIPT hSpringScript, const char *pszFileName)
 スクリプトファイルを読み込む [詳解]
 
DLLFUNC BOOL SpringScript_LoadFromMem (HSPRINGSCRIPT hSpringScript, const char *buf)
 スクリプトファイルをメモリから読み込む [詳解]
 
DLLFUNC BOOL SpringScript_Run (HSPRINGSCRIPT hSpringScript)
 スクリプトを実行 [詳解]
 
DLLFUNC BOOL SpringScript_Break (HSPRINGSCRIPT hSpringScript)
 スクリプトの実行を中止
スクリプト実行中にSpringScript_Run関数を呼び出した場合は、最後に呼び出したSpringScript_Run関数の実行を中止します。 [詳解]
 
DLLFUNC BOOL SpringScript_Exit (HSPRINGSCRIPT hSpringScript)
 スクリプトの実行をすべて中止
スクリプト実行中に呼び出したSpringScript_Run関数を含め、すべての実行を中止します。 [詳解]
 
DLLFUNC BOOL SpringScript_RegisterCommand (HSPRINGSCRIPT hSpringScript, const char *pszName, const char *pszPrm, CommandCallbk pFunc, void *pUserData)
 命令を登録 [詳解]
 
DLLFUNC BOOL SpringScript_UnregisterCommand (HSPRINGSCRIPT hSpringScript, const char *pszName)
 命令を削除 [詳解]
 
DLLFUNC BOOL SpringScript_GoTo (HSPRINGSCRIPT hSpringScript, const char *pszLabel)
 ラベルへジャンプ [詳解]
 
DLLFUNC BOOL SpringScript_GoTo_Event (HSPRINGSCRIPT hSpringScript, const char *pszLabel)
 ラベルへジャンプ2
SpringScript_Run()を呼び出す前にラベルにジャンプしておきたい場合はこちらを使用します。 [詳解]
 
DLLFUNC BOOL SpringScript_GetPostion (HSPRINGSCRIPT hSpringScript, PostionInfo *pi)
 解析中のスクリプトの位置を取得 [詳解]
 
DLLFUNC BOOL SpringScript_GetPostionLH (HSPRINGSCRIPT hSpringScript, PostionInfo *pi)
 解析中のスクリプトの位置を取得2
SpringScript_GetPostion関数と違い、先頭からのバッファ位置を示すPostionInfo.uPosに行の頭の位置を格納します。 [詳解]
 
DLLFUNC BOOL SpringScript_SetPostion (HSPRINGSCRIPT hSpringScript, const PostionInfo *pi)
 解析中のスクリプトの位置を移動
サブルーチンジャンプの復帰などに使用します。 [詳解]
 
DLLFUNC BOOL SpringScript_SetPostionForce (HSPRINGSCRIPT hSpringScript, const PostionInfo *pi)
 解析中のスクリプトの位置を移動
SpringScript_SetPostion関数と違い、飛んだ先の行を無視して次の行から開始します。
(PostionInfo構造体の値がそのまま使われる) [詳解]
 
DLLFUNC BOOL SpringScript_GetLineNum (HSPRINGSCRIPT hSpringScript, size_t *pVal)
 行位置を取得 [詳解]
 
DLLFUNC BOOL SpringScript_Eval (HSPRINGSCRIPT hSpringScript, const char *pszExpression, int *out)
 数式を計算 [詳解]
 
DLLFUNC BOOL SpringScript_Evalf (HSPRINGSCRIPT hSpringScript, const char *pszExpression, float *out)
 数式を計算(float)
SpringScript_Eval関数と違い、結果をfloatで出力します。 [詳解]
 
DLLFUNC UINT SpringScript_GetCmdArgCount (HCOMMANDARG hArg)
 命令の引数の数を取得 [詳解]
 
DLLFUNC BOOL SpringScript_GetCmdName (HCOMMANDARG hArg, char *lpString, int nMaxCount)
 呼び出された命令の名前を取得 [詳解]
 
DLLFUNC INT SpringScript_GetCmdNameLen (HCOMMANDARG hArg)
 呼び出された命令の名前の長さを取得 SpringScript_GetCmdArgPtr関数で取得した引数の操作にも使用できます。 [詳解]
 
DLLFUNC VarType SpringScript_GetCmdArgType (HCOMMANDARG hArg, int index)
 命令の引数の型を取得 [詳解]
 
DLLFUNC HSPRINGSCRIPTVAR SpringScript_GetCmdArgPtr (HCOMMANDARG hArg, int index)
 命令の引数にアクセスるためのハンドルを取得
この関数を使用して、SpringScript_GetVarVal系とSpringScript_SetVarVal関数で引数を操作できるようになります。 [詳解]
 
DLLFUNC INT SpringScript_GetVarValInt (HSPRINGSCRIPTVAR var)
 Integer型の変数の値を取得
SpringScript_GetCmdArgPtr関数で取得した引数の操作にも使用できます。 [詳解]
 
DLLFUNC BOOL SpringScript_GetVarValStr (HSPRINGSCRIPTVAR var, char *lpString, int nMaxCount)
 String型の変数の内容を取得
SpringScript_GetCmdArgPtr関数で取得した引数の操作にも使用できます。 [詳解]
 
DLLFUNC INT SpringScript_GetVarValStrLen (HSPRINGSCRIPTVAR var)
 String型の変数の内容の長さを取得
SpringScript_GetCmdArgPtr関数で取得した引数の操作にも使用できます。 [詳解]
 
DLLFUNC FLOAT SpringScript_GetVarValFloat (HSPRINGSCRIPTVAR var)
 Float型の変数の値を取得
SpringScript_GetCmdArgPtr関数で取得した引数の操作にも使用できます。 [詳解]
 
DLLFUNC INT SpringScript_GetVarValHnd (HSPRINGSCRIPTVAR var)
 Handle型の変数の値を取得
SpringScript_GetCmdArgPtr関数で取得した引数の操作にも使用できます。 [詳解]
 
DLLFUNC HSPRINGSCRIPTVAR SpringScript_GetVarValRef (HSPRINGSCRIPTVAR var)
 Variable型(参照)の変数の値を取得
SpringScript_GetCmdArgPtr関数で取得した引数の操作にも使用できます。 [詳解]
 
DLLFUNC BOOL SpringScript_SetVarVal (HSPRINGSCRIPTVAR var, const void *val, VarType type)
 変数の値を設定
SpringScript_GetCmdArgPtr関数で取得した引数の操作にも使用できます。 [詳解]
 

マクロ定義詳解

◆ DLLFUNC

#define DLLFUNC   extern "C" __declspec(dllimport)

型定義詳解

◆ BOOL

typedef int BOOL

◆ CommandCallbk

typedef int(* CommandCallbk) (void *, HCOMMANDARG)

命令実行時に呼び出されるコールバック関数

引数
第一引数ユーザー定義値
第二引数引数を保持するHCOMMANDARGハンドル

◆ ErrorCallbk

typedef int(* ErrorCallbk) (int, int, const char *, void *)

エラー発生時に呼び出されるコールバック関数

引数
第一引数エラーID
第二引数エラー発生行
第三引数エラーが発生したファイル
第四引数ユーザー定義値

◆ FLOAT

typedef float FLOAT

◆ INT

typedef int INT

◆ PostionInfo

typedef struct tagPostionInfo PostionInfo

◆ UINT

typedef unsigned int UINT

列挙型詳解

◆ VarType

enum VarType

変数の型

列挙値
VARTYPE_INTEGER 

整数

VARTYPE_STRING 

文字列

VARTYPE_FLOAT 

実数

VARTYPE_HANDLE 

ハンドル

VARTYPE_VARIABLE 

変数(参照)

VARTYPE_UNKNOWN 

不明

VARTYPE_LAST 
VARTYPE_FIRST 

関数詳解

◆ SpringScript_Break()

DLLFUNC BOOL SpringScript_Break ( HSPRINGSCRIPT  hSpringScript)

スクリプトの実行を中止
スクリプト実行中にSpringScript_Run関数を呼び出した場合は、最後に呼び出したSpringScript_Run関数の実行を中止します。

引数
[in]hSpringScriptSpringScriptEngineのハンドル
戻り値
失敗したときFALSE、成功したときはFALSE以外。

◆ SpringScript_CreateInstance()

DLLFUNC HSPRINGSCRIPT SpringScript_CreateInstance ( )

SpringScriptEngineのインスタンスを作成

戻り値
成功したときはHSPRINGSCRIPT型のハンドル。失敗したときはNULL。

◆ SpringScript_DestroyInstance()

DLLFUNC BOOL SpringScript_DestroyInstance ( HSPRINGSCRIPT  hSpringScript)

SpringScriptEngineのインスタンスを破棄

引数
[in]hSpringScriptSpringScriptEngineのハンドル
戻り値
失敗したときFALSE、成功したときはFALSE以外。

◆ SpringScript_Eval()

DLLFUNC BOOL SpringScript_Eval ( HSPRINGSCRIPT  hSpringScript,
const char *  pszExpression,
int *  out 
)

数式を計算

引数
[in]hSpringScriptSpringScriptEngineのハンドル
[in]pszExpression計算式
[out]out結果を代入する変数のポインタ(NULL不可)
戻り値
失敗したときFALSE、成功したときはFALSE以外。

◆ SpringScript_Evalf()

DLLFUNC BOOL SpringScript_Evalf ( HSPRINGSCRIPT  hSpringScript,
const char *  pszExpression,
float *  out 
)

数式を計算(float)
SpringScript_Eval関数と違い、結果をfloatで出力します。

引数
[in]hSpringScriptSpringScriptEngineのハンドル
[in]pszExpression計算式
[out]out結果を代入する変数のポインタ(NULL不可)
戻り値
失敗したときFALSE、成功したときはFALSE以外。

◆ SpringScript_Exit()

DLLFUNC BOOL SpringScript_Exit ( HSPRINGSCRIPT  hSpringScript)

スクリプトの実行をすべて中止
スクリプト実行中に呼び出したSpringScript_Run関数を含め、すべての実行を中止します。

引数
[in]hSpringScriptSpringScriptEngineのハンドル
戻り値
失敗したときFALSE、成功したときはFALSE以外。

◆ SpringScript_GetCmdArgCount()

DLLFUNC UINT SpringScript_GetCmdArgCount ( HCOMMANDARG  hArg)

命令の引数の数を取得

引数
[in]hArgHCOMMANDARGハンドル
戻り値
引数の数

◆ SpringScript_GetCmdArgPtr()

DLLFUNC HSPRINGSCRIPTVAR SpringScript_GetCmdArgPtr ( HCOMMANDARG  hArg,
int  index 
)

命令の引数にアクセスるためのハンドルを取得
この関数を使用して、SpringScript_GetVarVal系とSpringScript_SetVarVal関数で引数を操作できるようになります。

引数
[in]hArgHCOMMANDARGハンドル
[in]index引数の位置
戻り値
HSPRINGSCRIPTVARハンドル(失敗時:NULL)

◆ SpringScript_GetCmdArgType()

DLLFUNC VarType SpringScript_GetCmdArgType ( HCOMMANDARG  hArg,
int  index 
)

命令の引数の型を取得

引数
[in]hArgHCOMMANDARGハンドル
[in]index引数の位置
戻り値
VarType列挙体で示される引数の型(失敗時:VARTYPE_UNKNOWN)

◆ SpringScript_GetCmdName()

DLLFUNC BOOL SpringScript_GetCmdName ( HCOMMANDARG  hArg,
char *  lpString,
int  nMaxCount 
)

呼び出された命令の名前を取得

引数
[in]hArgHCOMMANDARGハンドル
[out]lpString文字列を書き込むバッファのポインタ(NULL不可)
[in]nMaxCountバッファのサイズ
戻り値
失敗したときFALSE、成功したときはFALSE以外。

◆ SpringScript_GetCmdNameLen()

DLLFUNC INT SpringScript_GetCmdNameLen ( HCOMMANDARG  hArg)

呼び出された命令の名前の長さを取得 SpringScript_GetCmdArgPtr関数で取得した引数の操作にも使用できます。

引数
[in]varHSPRINGSCRIPTVARハンドル(NULL不可)
戻り値
文字列の長さ

◆ SpringScript_GetLineNum()

DLLFUNC BOOL SpringScript_GetLineNum ( HSPRINGSCRIPT  hSpringScript,
size_t *  pVal 
)

行位置を取得

引数
[in]hSpringScriptSpringScriptEngineのハンドル
[out]val値を代入する変数のポインタ(NULL不可)
戻り値
失敗したときFALSE、成功したときはFALSE以外。

◆ SpringScript_GetPostion()

DLLFUNC BOOL SpringScript_GetPostion ( HSPRINGSCRIPT  hSpringScript,
PostionInfo pi 
)

解析中のスクリプトの位置を取得

引数
[in]hSpringScriptSpringScriptEngineのハンドル
[out]piPostionInfo構造体のポインタ(NULL不可)
戻り値
失敗したときFALSE、成功したときはFALSE以外。

◆ SpringScript_GetPostionLH()

DLLFUNC BOOL SpringScript_GetPostionLH ( HSPRINGSCRIPT  hSpringScript,
PostionInfo pi 
)

解析中のスクリプトの位置を取得2
SpringScript_GetPostion関数と違い、先頭からのバッファ位置を示すPostionInfo.uPosに行の頭の位置を格納します。

引数
[in]hSpringScriptSpringScriptEngineのハンドル
[out]piPostionInfo構造体のポインタ(NULL不可)
戻り値
失敗したときFALSE、成功したときはFALSE以外。

◆ SpringScript_GetVarValFloat()

DLLFUNC FLOAT SpringScript_GetVarValFloat ( HSPRINGSCRIPTVAR  var)

Float型の変数の値を取得
SpringScript_GetCmdArgPtr関数で取得した引数の操作にも使用できます。

引数
[in]varHSPRINGSCRIPTVARハンドル(NULL不可)
戻り値
取得した値

◆ SpringScript_GetVarValHnd()

DLLFUNC INT SpringScript_GetVarValHnd ( HSPRINGSCRIPTVAR  var)

Handle型の変数の値を取得
SpringScript_GetCmdArgPtr関数で取得した引数の操作にも使用できます。

引数
[in]varHSPRINGSCRIPTVARハンドル(NULL不可)
戻り値
取得した値

◆ SpringScript_GetVarValInt()

DLLFUNC INT SpringScript_GetVarValInt ( HSPRINGSCRIPTVAR  var)

Integer型の変数の値を取得
SpringScript_GetCmdArgPtr関数で取得した引数の操作にも使用できます。

引数
[in]varHSPRINGSCRIPTVARハンドル(NULL不可)
戻り値
取得した値

◆ SpringScript_GetVarValRef()

DLLFUNC HSPRINGSCRIPTVAR SpringScript_GetVarValRef ( HSPRINGSCRIPTVAR  var)

Variable型(参照)の変数の値を取得
SpringScript_GetCmdArgPtr関数で取得した引数の操作にも使用できます。

引数
[in]varHSPRINGSCRIPTVARハンドル(NULL不可)
戻り値
HSPRINGSCRIPTVARハンドル(失敗時:NULL)

◆ SpringScript_GetVarValStr()

DLLFUNC BOOL SpringScript_GetVarValStr ( HSPRINGSCRIPTVAR  var,
char *  lpString,
int  nMaxCount 
)

String型の変数の内容を取得
SpringScript_GetCmdArgPtr関数で取得した引数の操作にも使用できます。

引数
[in]varHSPRINGSCRIPTVARハンドル(NULL不可)
[out]lpString文字列を書き込むバッファのポインタ(NULL不可)
[in]nMaxCountバッファのサイズ
戻り値
失敗したときFALSE、成功したときはFALSE以外。

◆ SpringScript_GetVarValStrLen()

DLLFUNC INT SpringScript_GetVarValStrLen ( HSPRINGSCRIPTVAR  var)

String型の変数の内容の長さを取得
SpringScript_GetCmdArgPtr関数で取得した引数の操作にも使用できます。

引数
[in]varHSPRINGSCRIPTVARハンドル(NULL不可)
戻り値
文字列の長さ

◆ SpringScript_GoTo()

DLLFUNC BOOL SpringScript_GoTo ( HSPRINGSCRIPT  hSpringScript,
const char *  pszLabel 
)

ラベルへジャンプ

引数
[in]hSpringScriptSpringScriptEngineのハンドル
[in]pszNameラベルの名前(NULL不可)
戻り値
失敗したときFALSE、成功したときはFALSE以外。

◆ SpringScript_GoTo_Event()

DLLFUNC BOOL SpringScript_GoTo_Event ( HSPRINGSCRIPT  hSpringScript,
const char *  pszLabel 
)

ラベルへジャンプ2
SpringScript_Run()を呼び出す前にラベルにジャンプしておきたい場合はこちらを使用します。

引数
[in]hSpringScriptSpringScriptEngineのハンドル
[in]pszNameラベルの名前(NULL不可)
戻り値
失敗したときFALSE、成功したときはFALSE以外。

◆ SpringScript_Load()

DLLFUNC BOOL SpringScript_Load ( HSPRINGSCRIPT  hSpringScript,
const char *  pszFileName 
)

スクリプトファイルを読み込む

引数
[in]hSpringScriptSpringScriptEngineのハンドル
[in]pszFileNameスクリプトファイルへのパス
戻り値
失敗したときFALSE、成功したときはFALSE以外。

◆ SpringScript_LoadFromMem()

DLLFUNC BOOL SpringScript_LoadFromMem ( HSPRINGSCRIPT  hSpringScript,
const char *  buf 
)

スクリプトファイルをメモリから読み込む

引数
[in]hSpringScriptSpringScriptEngineのハンドル
[in]buf文字列バッファ
戻り値
失敗したときFALSE、成功したときはFALSE以外。

◆ SpringScript_RegisterCommand()

DLLFUNC BOOL SpringScript_RegisterCommand ( HSPRINGSCRIPT  hSpringScript,
const char *  pszName,
const char *  pszPrm,
CommandCallbk  pFunc,
void *  pUserData 
)

命令を登録

引数
[in]hSpringScriptSpringScriptEngineのハンドル
[in]pszName命令の名前(NULL不可)
[in]pszPrm命令の引数(NULL不可)
引数の型を示す記号[i = Integer / f = Float / s = String / v = Variable / . = 可変長引数]
例)「Integer, String, Float, Integer, ...」の可変長引数にしたい場合は、「isfi.」と設定します。
[in]pFunc呼び出すコールバック関数(NULL不可)
[in]pUserDataコールバック関数の呼び出し時に渡されるユーザー定義の値(NULL可)
戻り値
失敗したときFALSE、成功したときはFALSE以外。

◆ SpringScript_Run()

DLLFUNC BOOL SpringScript_Run ( HSPRINGSCRIPT  hSpringScript)

スクリプトを実行

引数
[in]hSpringScriptSpringScriptEngineのハンドル
戻り値
失敗したときFALSE、成功したときはFALSE以外。

◆ SpringScript_SetErrorCallbk()

DLLFUNC BOOL SpringScript_SetErrorCallbk ( HSPRINGSCRIPT  hSpringScript,
HWND  hWnd,
ErrorCallbk  pFunc,
void *  pUserData 
)

エラー発生の呼び出すコールバック関数を設定

引数
[in]hSpringScriptSpringScriptEngineのハンドル
[in]hWnd親ウィンドウハンドル(NULL可)
[in]pFuncコールバック関数へのポインタ(NULL可)
[in]pUserDataコールバック関数の呼び出し時に渡されるユーザー定義の値(NULL可)
戻り値
失敗したときFALSE、成功したときはFALSE以外。

◆ SpringScript_SetPostion()

DLLFUNC BOOL SpringScript_SetPostion ( HSPRINGSCRIPT  hSpringScript,
const PostionInfo pi 
)

解析中のスクリプトの位置を移動
サブルーチンジャンプの復帰などに使用します。

引数
[in]hSpringScriptSpringScriptEngineのハンドル
[in]piPostionInfo構造体のポインタ(NULL不可)
戻り値
失敗したときFALSE、成功したときはFALSE以外。

◆ SpringScript_SetPostionForce()

DLLFUNC BOOL SpringScript_SetPostionForce ( HSPRINGSCRIPT  hSpringScript,
const PostionInfo pi 
)

解析中のスクリプトの位置を移動
SpringScript_SetPostion関数と違い、飛んだ先の行を無視して次の行から開始します。
(PostionInfo構造体の値がそのまま使われる)

引数
[in]hSpringScriptSpringScriptEngineのハンドル
[in]piPostionInfo構造体のポインタ(NULL不可)
戻り値
失敗したときFALSE、成功したときはFALSE以外。

◆ SpringScript_SetVarVal()

DLLFUNC BOOL SpringScript_SetVarVal ( HSPRINGSCRIPTVAR  var,
const void *  val,
VarType  type 
)

変数の値を設定
SpringScript_GetCmdArgPtr関数で取得した引数の操作にも使用できます。

引数
[in]varHSPRINGSCRIPTVARハンドル(NULL不可)
[in]val値のポインタ
[in]typeVarType::VARTYPE列挙体で示される変数の型
戻り値
HSPRINGSCRIPTVARハンドル(失敗時:NULL)

◆ SpringScript_UnregisterCommand()

DLLFUNC BOOL SpringScript_UnregisterCommand ( HSPRINGSCRIPT  hSpringScript,
const char *  pszName 
)

命令を削除

引数
[in]hSpringScriptSpringScriptEngineのハンドル
[in]pszName命令の名前(NULL不可)
戻り値
失敗したときFALSE、成功したときはFALSE以外。