Written in Japanese(UTF-8)
2014.8.30
INASOFT


/トップ/いじくるつくーる/ダウンロード/WebHelp/ヘルプトップ/


R-Scriptの文法



 ここには R-Script のスクリプトファイル(rsc)のファイル構造、文法、「いじくるつくーる」の特殊ルール、C言語との違い等について書かれています。


1. ファイル構造


 テキスト形式で書かれます。
 文字コードは、Shift-JIS、Unicode、Unicode big endian、UTF-8 のいずれかで記述します。Unicode、Unicode big endian、UTF-8の場合は、ファイルの先頭にBOMが必要です。
 ファイル名の拡張子はrscです。
 ただし、Rnsf7.rscという名前は使えません。この名前は、メインウィンドウの「設定」-「オプション」から呼び出される、いじくるつくーる自身の設定のために予約されています。
 内部構造は次のようになっています。


 定義部

 %%

 命令部



1.1 定義部


 定義部には、次のような要素があります。
 いずれの要素も省略可能です。

ITEM = スクリプトファイルの名称。
INFORMATION = スクリプトファイルの説明。
ICON = いじくるつくーるのスクリプト一覧(機能項目一覧)に表示される際のアイコンの指定。
HELP = [ヘルプ(H)]ボタンが押された際に呼び出されるファイル。
CONTEXTID = HELPが.hlpファイルだった場合のContextID。
AUTHOR = 作者名を指定します。
URL = 作者の所有するサイトのURLを指定します。
CATEGORY = このスクリプトを分類したいカテゴリ項目の名前を指定します。
TRY = いじくるつくーる起動時の :try の実行を、ON:行う、OFF:行わない、ABORT:行わずに非登録扱い、IF(〜):1行実行により決める。
MUSTDEFVAR = ONで、配列でない変数を代入前に利用すると、警告メッセージを出すようにします。
INCLUDE = 追加で読み込むファイルを指定します(複数指定可)。


ITEM

 スクリプトファイルの名称です。省略されると、スクリプトファイルのファイル名が名称として扱われます。

INFORMATION

 スクリプトファイルの説明文です。省略されると、スクリプトファイルのファイル名が説明文として扱われます。

ICON

 スクリプトのアイコンです。アイコンファイル(ico)を指定するか、「ファイル名, 番号」の形式で記述します。
 番号は、非負数ではアイコンファイルに格納された順番が番号になり、負数では実行ファイルのリソースをコンパイルした際の定数に -1 をかけた値が番号になります(ただし、-1は指定しないで下さい。リソースの定数1のアイコンを表示させたい場合は、それに該当するアイコンの順番を非負数で指定して下さい)。
 省略されるか、アイコンが見つからない場合は、R-Scriptのもつ標準のスクリプトファイル用のアイコンが表示されます。

HELP

 [ヘルプ(H)]ボタンが押された際に呼び出されるファイルか、コマンドラインを指定します。適切に関連付けられたファイル(テキストファイル)なども指定できます。
 ここが none または空(省略)の場合、ダイアログの[ヘルプ(H)]ボタンはグレイアウトします。
 ここが dynamic だった場合、dhelps$()dhelp$() 等の関数で、動的にヘルプを生成できます。[ヘルプ(H)]ボタンを押すと、動的に生成されたヘルプが表示されます。ただし、スクリプトを実行してみないとヘルプの内容が確定しないため、メインウィンドウのコンテキストメニューの「ヘルプ」はグレイアウトします。

CONTEXTID

 HELPで指定されたファイルがヘルプファイル(.hlp)だった場合の ContextID です。ヘルプファイル(.hlp)でなかった場合は省略します。

AUTHOR

 作者名を指定します。ここで指定された作者名はメインメニューに表示されますので、ソートに用いることができます。
 省略されると、この項目は空白になります。

URL

 作者のサイトのURLを指定します。メインメニューで項目を右クリックしたときのメニューから開くことができます。
 省略されると、コンテキストメニューの「URLを開く」が使えなくなります。

CATEGORY

 このスクリプトが所属するカテゴリを指定します。
 カテゴリ分類は、メインウィンドウのメニューの「表示」-「機能項目をカテゴリ分類する」が有効になっている場合に行われます。
 既存のカテゴリに含ませたい場合は、そのカテゴリ名を、一字一句間違いなく指定します。
 既存のカテゴリ名とは違う名前を付けた場合、新しいカテゴリが作られることになります。
 なお、カテゴリの並ぶ順番は、「すべてのカテゴリ」を除くと、カレントフォルダからスクリプトの一覧が読み込まれたときの順番になります。
 省略されると「分類なし」に分類されます。

TRY

 いじくるつくーるは起動時に、全てのスクリプトの :try ラベルを実行し、メインウィンドウの機能項目一覧(リストビュー)に表示するかどうかを判断します。この作業には時間がかかることがあります。
 明らかに表示する・しないがわかっている場合、起動時間の短縮のために、TRY = OFF で :try の実行を行わずに表示し、TRY = ABORT で :try の実行を行わずに表示しないようにできます。
 省略されるとONが指定されたとみなされます。ONは、:try を実行します。:try については、3. 「いじくるつくーる」の特殊ルール をご覧下さい。
 いじくるつくーる起動速度向上のため、IF(〜)が新設されました。これは :TRY は呼び出さないが、複雑な条件の下で、一覧への表示・非表示を決めたい場合に指定します。これにより、いじくるつくーるの起動を速めるできます。(〜)の中に、R-Scriptの式を一行だけ書けます。例えば、TRY=IF (isNT && winver >= 500) のように書くと、Windows NT系で、Windows 2000以上のバージョンを持つOSのみで、一覧に表示されるようになります。

MUSTDEFVAR

 R-Scriptでは、通常の変数は、代入しなくても参照できますが、このままだと変数名をスペルミスしたかどうかを確認できません。
 そこで、ここでONを指定することで、配列でない変数は、1度以上代入しないと利用時に警告メッセージを出すようにします。
 省略されるとOFFが指定されたとみなされます。OFFは、警告を出しません。

INCLUDE

 スクリプトファイル全体を読み込んだ後、ここで指定されたファイルを追加で読み込みます。
 INCLUDEは複数指定することができ、指定された順番で追加で読み込まれていきます。
 

定義部は、行頭より %% というふうに %を2つ連続して記述すると終了です。%%の次の行から、命令部が始まります。


1.2 命令部


 スクリプトの命令が記述される部分で、いわばスクリプトファイルの本体です。
 文法については、次の項を参照して下さい。


2. 文法 (命令部)


2.1 R-Scriptの構成要素


 R-Scriptの実行単位は行です。1行は2000バイトまでです。
 空行でない、またはコメント文のみでない行を「」と呼びます。
 文は、「命令」か「」か「命令と式」か「ラベル」か「ラベルと文」で成り立ちます。
 命令・式・ラベルを構成する、インタプリタが解釈する最小の単位が「トークン」です。

2.1.1 トークン


 トークンは、R-Scriptのインタプリタが解釈する最小の単位です。トークンには次の種類があります。
 トークンは次の文字の1つ以上からなる文字列で区切られます。

2.1.2 式および式の型


 数値定数、変数、関数、文字列定数、およびこれらと演算子の組み合わせを式といいます。式と演算子の組み合わせも式です。
 式は返却値を持ちます。
 返却値は、数値定数の値、変数の値、関数の返却値、文字列定数の値、およびこれらと演算子の演算結果です。
 返却値は型(数値か文字列)を持ちます。返却値の型は、そのまま式の型になります。
 数値型の式を数値式、文字列型の式を文字列式と呼びます。


2.1.3 コメント


 行の文字列中(ダブルコーテーションまたはシングルコーテーションで囲まれた部分)でない部分で // (スラッシュ2つ)、 ; (セミコロン)、# (いげた) とその右側の部分はコメントとして扱われ、インタプリタは無視します。


2.2 翻訳順序


2.2.1 あらかじめ定義された変数 (初期代入変数)


 R-Scriptの実行開始に先立ち、次の変数が定義されます。
 これらの変数の内容は変更できますが、スクリプトが終了(ダイアログを終了)すると、元の値に戻されます。
  isNT = 現在実行中のOSがWindows NT系なら1、 そうでなければ0。これは、関数isNT()の返却値と同じ。
  winver = 現在実行中のOSのバージョン。整数部×100+小数部。これは、関数GetWindowsVersion()の返却値と同じ。
  iever = Internet Explorer のバージョンの整数部。Internet Explorerがインストールされていなければ0。これは、関数GetIEVersion()の返却値と同じ。
  true = yes = 1
  ERROR = ERRORVALUE = MAXINTEGER = 0xffffffff
  dummy = REG_NONE = false = no = null = nil = zero = LOWVALUE = MININTEGER = nothing = 0
  REG_SZ = 1
  REG_EXPAND_SZ = 2
  REG_BINARY = 3
  REG_DWORD_LITTLE_ENDIAN = REG_DWORD = 4
  REG_DWORD_BIG_ENDIAN = 5
  REG_LINK = 6
  REG_MULTI_SZ = 7
  REG_RESOURCE_LIST = 8
  REG_FULL_RESOURCE_DESCRIPTOR = 9
  REG_RESOURCE_REQUIREMENTS_LIST = 10
  REG_QWORD = REG_QWORD_LITTLE_ENDIAN = 11
  CTRL_NORMAL = 0
  CTRL_NOTIFY = 1
  CTRL_REFRESH = 2
  CTRL_REBOOT = 3
  CTRL_NOEFFECT = 128
  DELETE_DEFAULT = 4
  SZ_EXPAND = 8
  EDIT_FILENAME = 16
  EDIT_FOLDER = 32
  EDIT_BUTTON = 48
  EDIT_SZ = 16
  EDIT_BINARY = 32
  EDIT_PASSWORD = 64
  CHECK_DWORD = 0
  CHECK_SZ01 = 16
  CHECK_SZYN = 32
  CHECK_SZTF = 64
  LV_DELETE_NOVALUE = 4
  LV_SMALL = 16
  LV_MULTISELECT = 32
  LV_SORTHEADER = 64
  LV_MIDDLE = 256
  LV_DWORD = 512
  CB_DWORD = 512
  CTRL_NEEDADMIN = 1024
  MAYBE_EXPAND = 2048

2.2.2 スクリプトの解釈と実行


 R-Scriptの実行が開始すると、スクリプトファイルの %% の次の行から、上から下に向かって解釈・実行を始めます。
 途中に GOTO や IF や WHILE文があると、解釈の順序が変わります。
 基本的に、1行=1文 として解釈を行いますが、特別な場合に限り、複数行=1文となることもあります。詳しくは、文結合ルールを参照して下さい。


2.2.3 スクリプトの終了


 スクリプトの解釈が、スクリプトファイルの行末に達するか、EXIT命令が実行されると、スクリプトは正常終了します。
 ABORT命令が実行されると、スクリプトは異常終了します。これを abort を返すといいます。
 スクリプトがabortを返すと、次の「いじくるつくーる」の制御を停止させることができます。

  ・機能項目の開始時にスクリプトがabortを返すと、機能項目の開始が行われなくなります。
  ・「3 「いじくるつくーる」の特殊ルール」で定義された呼び出しでスクリプトがabortを消すと、その呼び出しが取り消されます。:tryラベルでabortが返されると、そのスクリプトはいじくるつくーるの機能項目一覧に表示されなくなります。



2.3 関数の呼び出し


 R-Scriptで定義された関数を呼び出すには、関数名と引数を指定します。
 関数名と引数については、R-Scriptの関数一覧を参照して下さい。
 関数名の後ろに$がつくと、返却値が文字列型であるとみなされます。そうでないときは、返却値が数値であるとみなされます。

 関数の引数は "(" と ")" (括弧)でくくって、関数に渡します。
 引数を1つも持たない関数は、関数名の直後に()(括弧の始まりと終わりを続けて書く)と書きます。
 引数を2つ以上持つ関数は、各引数をカンマ( , )で区切ります。


3. 「いじくるつくーる」の特殊ルール


 いじくるつくーるでは、R-Script に対して特殊なラベルを定義しています。これらのラベルが存在しない場合は、ラベルの開始直後に正常終了したものとして処理されます。

  :OK

 編集ダイアログで[OK]または[適用]ボタンが押されたときに、このラベルより解釈・実行が行われます。
 abortが返されると、[OK]ボタンを押されたことが中止されます。つまり、レジストリへの保存とダイアログの終了は行われません。

  :CANCEL

 編集ダイアログで[キャンセル]ボタンが押されたときに、このラベルより解釈・実行が行われます。
 abortが返されると、[キャンセル]ボタンを押されたことが中止されます。つまり、ダイアログの終了は行われません。

  :APPRY

 編集ダイアログで[適用]ボタンが押されレジストリへの書き込みが終わった後に、または、編集ダイアログで[OK]ボタンが押され、エラーまたはabortが返されたとき、このラベルより解釈・実行が行われます。
 つまり、:OK 後の後処理を行うためのラベルです。
 abortが返されても、単にスクリプトの解釈が終了します(EXITと同じです)。

  :RETRY

 編集ダイアログで[戻す]ボタンが押されたときに、このラベルより解釈・実行が行われます。
 abortが返されると、[戻す]ボタンを押されたことが中止されます。つまり、ダイアログの状態は元には戻されません。

  :AFTERRETRY

 編集ダイアログで[戻す]ボタンが押され、編集ダイアログの状態を書き戻した後に、このラベルより解釈・実行が行われます。
 abortが返されても、単にスクリプトの解釈が終了します(EXITと同じです)。

  :HELP

 編集ダイアログで[ヘルプ]ボタンが押されたときに、このラベルより解釈・実行が行われます。
 abortが返されると、ヘルプの呼び出しは中止されます。

  :IDSAVE

 編集ダイアログで[保存]ボタンが押されたときに、このラベルより解釈・実行が行われます。
 abortが返されると、ファイルからのダイアログの状態保存は中止されます。

  :IDLOAD

 編集ダイアログで[読込]ボタンが押されたときに、このラベルより解釈・実行が行われます。
 abortが返されると、ファイルからのダイアログの状態読出は中止されます。

  :TRY

 いじくるつくーるが実行を開始するときに呼び出されます。
 abortが返されると、スクリプトファイルはいじくるつくーるの機能項目一覧に表示されなくなります。
 (注意:一覧に表示されないだけで、「ファイルを指定して開く」メニューからは実行可能です)
 定義部に TRY=OFF が指定してあると、このラベルは呼び出されずに、項目名が機能項目の一覧に表示されます。TRY=ABORT が指定してあると、このラベルは呼び出されずに、項目名が機能項目の一覧に表示されません(Rnsf7.rsc「ヘルプ」-「更新確認の設定」(R7update.rsc)で利用しています)。TRY=IF(〜)が指定してあると、(〜)の部分に指定された式が評価され、:TRYは呼び出されません。

  :UNINST

 いじくるつくーるがアンインストールを行うときに呼び出されます。
 abortが返されても、単にスクリプトの解釈が終了します(EXITと同じです)。


4. ヒント


4.1 C言語との違い


 C言語との主な違いについてまとめます。

4.2 R-Script固有のヒント


 R-Scriptはインタプリタ方式の実行であり、また、レジストリの特性から、Windowsのバージョンごとの分岐が多くなると思われることから、1つの環境での試験ではエラーをつかみにくいことがあるので注意して下さい。

 数値型を文字列型に変換する場合は、 "" + 数値 と書くことができます。
 逆に文字列型を数値型に変換するときは、0 + 文字列 と書くことができます。

 whileは、繰り返し条件判定しか行いませんから、whileをfor文の要領で使いたいときは、値のインクリメントを忘れないようにして下さい。インクリメントが必要なのにインクリメントを忘れると、スクリプト内部で永久ループしてしまいます。永久ループにはまってしまった場合は、Shift+Escでスクリプト実行を中断するか、Ctrl+Alt+Delで「いじくるつくーる」を強制終了しなければなりません。

 実際のスクリプト作成をする場合、文法を参考にしつつ、サンプルプログラムも参考にするとよいと思います。サンプルプログラムとして、いじくるつくーるに標準付属しているスクリプト(rscファイル)を参考にして下さい。


5. おまけ


 いじくるつくーると同じフォルダに Rnsf7.bmp という名前のビットマップファイルがあると、いじくるつくーるの開始時〜起動完了にそれを読み込んで、ウィンドウ中央に表示します。



 目次
 文結合ルール
 R-Scriptについて
 R-Scriptの関数一覧
 DLLの呼び出しルール


※このページは、ソフトウェアに付属のヘルプファイルをWeb用に再構築したものです。大部分に自動変換を施しているため、一部は正しく変換しきれずに表示の乱れている箇所があるかもしれませんが、ご容赦下さい。また、本ドキュメントはアーカイブドキュメントであり、内容は「いじくるつくーる」最終公開時点、あるいは、それより古い時点のものとなっております。一部、内容が古くなっている箇所があるかと思いますが、あらかじめご了承下さい。
※このページへは、自由にリンクしていただいてかまいません。

■このページに関するご意見をお待ちしております → フィードバックページ

/トップ/いじくるつくーる/ダウンロード/WebHelp/ヘルプトップ/