● 構造体

USERSTATEMENT 構造体

typedef struct {
    char            *name;
    int             len;
    USFUNC          func;
    void            *param;
} USERSTATEMENT,*PUSERSTATEMENT;

ユーザステートメントを定義するための構造体です。

メンバ内容
nameユーザステートメント名(@ 以降の文字列)を格納したバッファの先頭アドレスをセットします。
文字列の末尾にはヌルが必要です。また、半角空白やタブ文字は、文字列内に入れないでください。
lenname で指定したステートメント名の文字列長をバイト単位でセットします。この文字列長には末尾ヌル分を含みません
funcユーザステートメントを処理するコールバック関数USFUNC のアドレスをセットします。
paramfunc を呼び出す時に渡す追加情報をセットします。

name に指定するステートメント名には規則があります。ステートメントリファレンスを参照してください。


ユーザステートメント名の正当性チェック

BASICPARAM 構造体のメンバ b_us_check が 1 の時に、名付け規則に反する文字列を登録しようとした場合や、重複する名前が存在する場合、関数StrCalc BASIC 実行時に STATUS_USERSTATEMENT_INITERR を返します。
更に、BASICPARAM 構造体のメンバ b_naked_us が 1 の場合は、予約語のチェックも入ります。予約語と一致する文字列が使われている場合も STATUS_USERSTATEMENT_INITERR が返されます。