================================================================================
WAVE マクロシステム（WaveEngine & WaveRecorder） 仕様・操作ドキュメント

  Author: Tatsuyadev

================================================================================

【概要】
本システムは、UWSC風の簡易的な自動化マクロ言語を解釈・実行する「WaveEngine」と、
実際のユーザー操作（マウスクリック・キーボード入力）をキャプチャして自動的に
マクロスクリプト（.wave 形式）を生成する「WaveRecorder」から構成される、
Delphi製の軽量な自動化システムです。

--------------------------------------------------------------------------------
1. システムの特徴
--------------------------------------------------------------------------------
* 簡単な構文: 変数代入、四則演算、文字列連結、基本的な制御構文に対応。
* 自動記録機能: グローバルフックを利用し、ユーザーの操作をそのままスクリプト化。
* 独立した評価エンジン: 文字列や数値の混在した数式・条件式を正しくパース可能。

--------------------------------------------------------------------------------
2. 対応構文・コマンドリファレンス
--------------------------------------------------------------------------------
スクリプト内での大文字・小文字は区別されません（SameTextによる判定）。
また、コメントは「//」から行末までとして扱われます。

■ 変数代入・演算
  [var] 変数名 = 式
  （例）
  var x = 10         // 'var' は省略して 「x = 10」だけでも可
  x = 1 + 2 * 3      // 四則演算、丸括弧（）に対応
  msg = "Hello, " + name // 文字列と数値、変数同士の連結が可能

■ マウス操作
  CLICK(x, y)        // 座標(x, y)を左クリック
  RCLICK(x, y)       // 座標(x, y)を右クリック
  DBLCLICK(x, y)     // 座標(x, y)をダブルクリック
  MMV(x, y)          // クリックせず、マウスカーソルを移動のみ

■ キーボード・待機・デバッグ
  INPUT "文字列"     // 指定した文字列をキーボード入力（Unicode送信）
  SLEEP(ms)          // 指定ミリ秒待機（WAIT(ms) も同じ動作）
  PRINT 式           // 式を評価し、デバッグ出力（または割り当てられたイベント）へ送る

■ 制御構文
  【IF 文】
  IF 条件式 THEN
    // 条件が真（0以外、空文字以外）の時の処理
  ELSE
    // 条件が偽の時の処理（ELSEは省略可能）
  ENDIF

  【FOR ループ】
  FOR 変数 = 開始式 TO 終了式 [STEP 増分式]
    // 繰り返し処理（STEP省略時は 1）
  NEXT

  【WHILE ループ】
  WHILE 条件式
    // 条件が真の間繰り返す
  WEND

--------------------------------------------------------------------------------
3. 制限事項・仕様上の注意点
--------------------------------------------------------------------------------
1. 管理者権限（UIPIの制約）
   グローバルフックおよび `SendInput` を使用するため、管理者権限で実行されている
   他のアプリケーションに対してマクロを効かせたい（または操作を記録したい）場合は、
   このシステムを組み込むアプリ自身も「管理者として実行」する必要があります。

2. 文字列のエスケープ未対応
   WaveEngine側がダブルクォーテーション（"）のエスケープに対応していません。
   そのため、WaveRecorderは入力された `"` を自動的にシングルクォーテーション（'）
   に置換して安全を確保しています。

3. ドラッグ＆ドロップ非対応
   マウスの移動軌跡は記録せず、クリック（Down）の座標のみを記録するため、
   画面上のアイテムをドラッグするような操作の記録・再現には対応していません。

4. ダブルクリックの記録仕様
   レコーダー側ではダブルクリックを単体の命令（DBLCLICK）としては検出せず、
   「短い間隔で実行された2回のCLICK」としてスクリプト化します（再生時の結果は同等です）。
================================================================================