＜変数＞
　変数に型はありません
　大文字と小文字の区別はありません
　ローカル変数、グローバル変数の区別があります
　　ローカル変数には宣言は要りません（Option指定で変更可：DIM 変数名）
　　グローバル変数には宣言が必要：　PUBLIC 変数名
　　多次元配列には宣言が必要：　DIM 変数名[数]
　　（配列での初期値代入：　DIM X[2]=1,2,3　　配列数の省略可 DIM X[]=1,2,3 ）
　　※ 注：PUBLIC変数の初期化はスクリプト実行前に行われます

＜文字処理＞
　文字列は必ず　"ダブルコーテイション" で括ってください
　文字列の比較演算時は大文字、小文字の区別はしません（Option指定で変更可）　
　文字列の結合演算子は + です
　文字列に改行を含める時は <#CR>　　"ダブルコーテイション" を含める時は<#DBL>

＜演算式の優先順位＞
　　( )　　　　　　　　　　　　　　　　 優先順位高い
　　!　　　　　　 （論理否定）
　　*,　/,　MOD
　　+,　-
　　>,　<,　=,　>=,　<=,　<>　　
　　AND
　　OR,　XOR　　　　　　　　　　　　　　優先順位低い

＜コメント＞
　//　から行末までです

＜行結合＞
　_　（アンダーバー）　　//　行の最後に付ける事により次の行と結合させます

＜マルチステートメント＞
　;　（セミコロン）　　　//　N88Basic的な１行ＩＦ文での使い方はダメ

＜定数定義＞
　CONST　定数名　=　定数
　※ CONSTの初期化はスクリプト実行前に行われます

＜組込み定数＞
　TRUE　　　 //　1
　FALSE 　　 //　0
　NULL　　　 //　ヌルポインタ
　EMPTY　　　//　値の無い状態を示す
　NOTHING 　 //　オブジェクトの無い状態を示す

＜特殊文字＞
　<#CR>　　 //　改行コードを表す
　<#DBL>　　//　"ダブルコーテイションを表す
　<#TAB>　　//　タブを表す

＜１６進指定＞
　$　　　　　//　$FF =255

＜起動時パラメーター＞
　//　スクリプトにパラメーターを付けて起動した場合、その値は配列変数 PARAM_STR[ ] に入る
　PARAM_STR[ ]　　　//　配列はゼロから

＜OPTION指定＞
　//　スクリプトの先頭で宣言、各種設定の変更　（,カンマにて項目の複数指定可）
　OPTION　項目
　　　　　EXPLICIT　　　　　　　　 // 変数宣言の強制（全ての変数でDIM 、もしくはPUBLIC宣言が必要）
　　　　　SAMESTR　　　　　　　　　// 文字比較、置換、サーチにて大文字、小文字を区別する
　　　　　OPTPUBLIC 　　　　　　　 // PUBLIC変数の重複定義を禁止する
　　　　　OPTFINALLY　　　　　　　 // Try-Finally間で強制終了が発生した時にも必ず Finally部を実行する
　　　　　SPECIALCHAR　　　　　　　// 実行時に特殊文字（<#CR><#DBL><#TAB>）の変換をしない
　　　　　SHORTCIRCUIT　　　　　　 // 論理演算（if,ifb,while,repeat）にて短絡評価をする（但しカッコ内は無効）
　　　　　NOSTOPHOTKEY　　　　　　 // 停止ホットキーは無効にする
　　　　　TOPSTOPFORM　　　　　　　// STOPボタンウィンドウを最前面固定する
　　　　　FIXBALLOON　　　　　　　 // 吹き出しを仮想デスクトップの全画面に出す
　　　　　DEFAULTFONT= フォント名　// フォント,サイズを変更する（BALLOON, MSGBOX等）　例) "ＭＳ ゴシック,16"
　　　　　POSITION= Ｘ, Y　　　　　// 位置を変更する
　　　　　LOGPATH= ログパス名　　　// ログファイルのパス、ファイル名を変更する
　　　　　LOGLINES= ログ行数　　　 // ログ最大行数を変更する
　　　　　LOGFILE= ログ出力モード　// ログファイルの出力= 1:出力しない、2:日付を付けない、3:秒も付ける、4:以前のログは消去
　　　　　DLGTITLE= タイトル　　　 // INPUT, MSGBOX, SLCTBOX でのタイトルを変更する


＜DLL 使用定義＞
　//　DLL（API等）の関数を使用する事ができるようになります　（64bitのDLLは呼び出せません）
　DEF_DLL 関数名(型, 型, ...): 戻り型: DLL名
　型： int、long、bool、uint、hwnd、string、Wstring、float、double、word、dword、byte、char、pchar、Wchar、pWchar、boolean、longlong、SafeArray
　参照引数(値変更あり)の場合は　Var 宣言を付ける　　　関数名( var double,　var int )　　　　　　
　構造体：型を { } にて展開して書く　　　　関数名( double,　{int, int, int} )　
　配列の場合は型に [] を付ける　　　　　 関数名( double[],　int[] )
　※int=long= bool(4byte)、dword=uint=hwnd、 char=boolean(1byte)
　　 ヌルポインタを渡す時は NULL定数を使用してください


＜スレッド生成＞
　//　スレッド生成して実行する事ができます
　THREAD　関数名()　　　　//　関数は別スレッドにて実行される


＜MODULE化＞
　//　MODULE化定義をします
　MODULE　モジュール名
　　　　　CONST 変数　　　　　　　　//　モジュール名.変数　にて外部からアクセス可
　　　　　PUBLIC 変数　　　　　　　 //　モジュール名.変数　にて外部からアクセス可
　　　　　DIM 変数　　　　　　　　　//　外部からアクセス不可
　　　　　PROCEDURE モジュール名　　//　コンストラクタ
　　　　　PROCEDURE 関数名()
　　　　　FUNCTION 関数名()
　ENDMODULE
　もしくは CLASS - ENDCLASS
　インスタンス生成はできません
　自モジュール内の変数、関数には 自モジュールを示す THIS. を付けてのアクセス可
　モジュール内からモジュール外関数を使う場合に GLOBAL.関数名 にて明示可
　モジュール名と同じ関数はコンストラクタとしてスクリプト開始時に処理される


＜WITH文＞
　//　モジュール、COMオブジェクトの表記(ドット構文)にてモジュール名、オブジェクトを省略できます
　WITH　省略部
　　　　　.変数　　　　　　//　省略部.変数
　　　　　.関数名()　　　　//　省略部.関数名()
　ENDWITH
　変数、関数名の先頭には .ドットを付けてください

＜複数行文字列の定義＞
　//　複数行にわたる文字列を定数として定義します
　TEXTBLOCK　定義名
　　　　文字列..........
　　　　文字列..........
　ENDTEXTBLOCK


＜連想配列＞
　//　連想配列の宣言
　HASHTBL　変数
　HASHTBL　変数 = HASH_CASECARE　　// 大文字小文字を区別する（デフォルトは区別しない）
　HASHTBL　変数 = HASH_SORT　　　　// 順列で読出す時にキーはソートされている
　//　値の設定・読出しは一次元配列と同じ　（読出し時、キーが無ければEMPTYを返す）
　変数[キー] = データ 
　//　キーが存在するか
　変数[キー, HASH_EXISTS]　　　　　// キーが存在すればTrueを返す
　//　削除
　変数[キー, HASH_REMOVE]　　　　　// 削除できればTrueを返す
　//　順列読出し
　変数[順列番号, HASH_KEY]　　　　 // キーを返す
　変数[順列番号, HASH_VAL]　　　　 // 値を返す
　//　中身のクリア
　変数 = HASH_REMOVEALL
　※ 削除 HASH_REMOVE は必要無くとも変数で受ける必要あり


＜例外処理＞
　//　TRY - FINALLY　ルーチン中断時にも必ず実行されます
　TRY
　　　処理（EXIT）
　FINALLY
　　　処理
　ENDTRY
　//　TRY - EXCEPT　実行時エラーが起きた時に実行されます
　TRY
　　　処理（エラー）
　EXCEPT
　　　処理
　ENDTRY
　※ エラーメッセージは特殊変数 TRY_ERRMSG に格納
　　 エラー行は特殊変数 TRY_ERRLINE に格納


＜関数の定義＞
　※ 関数はメインルーチンの後に書いてください。
　　（メインルーチンは関数前までであり、関数後にメインルーチンを書いても実行されません）
　※ 関数名に次の文字は使えません　, + * = < > ( ) ! ?

　//　Procedure　-　Fend　　　　手続き型（戻り値なし）
　PROCEDURE 関数名( 引数,　Var 引数,　引数[],　Var引数[][],　引数=定数, .... )
　　　　処理
　FEND
　Var 宣言を付けると引数を変更可能とする　（参照引数）
　配列変数には次元数分 []を付ける　（２次元配列の場合 引数[][] ）
　= 定数 にてデフォルトパラメータを指定できる（デフォルトパラメータ以降に通常引数を書く事はNG）


　//　Function　-　Fend　　　　関数（戻り値あり）
　FUNCTION 関数名( 引数,　Var 引数,　引数[],　Var 引数[][],　引数=定数, .... )
　　　　処理
　　　　RESULT = 戻り値 　　　//　Result に戻り値を入れる
　FEND
　Var 宣言を付けると引数を変更可能とする（参照引数）
　配列変数には次元数分 []を付ける　（２次元配列の場合 引数[][] ）
　= 定数 にてデフォルトパラメータを指定できる（デフォルトパラメータ以降に通常引数を書く事はNG）


＜制御文＞　　[　]　内は省略可能

　//　１行の IF 文
　IF　式　THEN　真　[ELSE　偽]


　//　IF　のブロック文　IF(もしくはIFB)　ENDIF
　IF　式　[THEN]　（もしくはIFB）
　　　真
　[ELSEIF　式　[THEN]]
　　　:
　[ELSE]
　　　偽
　ENDIF


　//　For To　Next 文　　初期値から終了値までループ
　FOR　変数　=　初期値　TO　終了値　[STEP　刻み値]　
　　　処理
　NEXT　　　　　　　//　NEXTの後に変数を書いてはダメ


　//　For In　Next 文　　配列の要素数分ループ
　FOR　変数　IN　配列変数　
　　　処理
　NEXT
　※ 配列変数には配列の他に COMのコレクション、または次の関数が指定可能: GetDir, GetItem, GetAllWin
　※ 配列変数に文字列が指定された場合には１文字づつ要素分解


　//　While　Wend 文
　WHILE　式　　　　　　　　//　式が　True　の間実行
　　　処理
　WEND


　//　Repeat　Until 文
　REPEAT
　　　処理
　UNTIL　式　　　　　　　　//　式が　False　の間実行


　//　Select　Selend 文
　SELECT　式
　　CASE 式　　　　　　　//　数値でも文字でも変数でもＯＫ
　　　　処理
　　[CASE　式, 式]　　　 //　,カンマによる複数表記可
　　　　処理
　　[DEFAULT]　　　　　　//　デフォルト
　　　　処理
　SELEND


　//　Call 文　スクリプト（UWSファイル）を取り込む
　CALL　UWSファイル名　　　　　　　　　　　　 //　拡張子（uws）は省略可
　CALL　UWSファイル名.uws(xxx,　xxx,　...)　　//　引数を付けた場合に値は PARAM_STR[] 変数に入る
　※ UWSファイル名の割り当てに変数を使用する事はできません


　//　FOR,　WHILE,　REPEAT　のループを中断
　BREAK　[定数]　　　
　多重ループ中にて定数が指定された場合に、その定数分ループをBREAKする （デフォルト 定数=1）


　//　FOR,　WHILE,　REPEAT　のループの先頭へ
　CONTINUE　[定数]　　　
　多重ループ中にて定数が指定された場合に、その定数分ループをCONTINUEする （デフォルト 定数=1）


　//　関数を抜ける
　EXIT
　//　直ちにプログラムを終了　　
　EXITEXIT　[終了コード]


　//　Print文　ロギング
　PRINT　表示文
　表示用のウインドウが１つ勝手に開きます
　又、同じ内容をUWSC.LOGに保存　（最大行数は uwsc.ini の LogLines= にて指定可、もしくはOptionにて）

