YU-RIS サポート掲示板

0412 Ver0.200
投稿者:たくみ 2006/03/28(火) 21:22

Ver0.200 をリリースしました。

■マクロ機能を拡張。置換マクロと疑似関数マクロを統合し、さらに柔軟な記述を出来るようにした。
■システム変数 $_M〜$_M8 を実装。マクロ定義の際にパラメータ置換文字列として記述できるようにした。
■MACRO 命令に DEF〜DEF8 キーワードを実装。パラメータを省略した時のデフォルト文字列を設定できるようにした。

マクロ機能が再び拡張され、より柔軟な記述ができるようになりました。
例えば、

MACRO[NAME="IF" STR="IF[$_M] GO[#=$_M2] IFEND[]" ]

と定義しておいて、

\IF(@A>5, LABEL_1)

と記述すれば、

IF[@A>5] GO[#=LABEL_1] IFEND[]

と置換してくれるようになりました。
詳しい説明はマニュアルの その他命令 → MACRO 命令をご覧ください。
または sample_002 に実際の使用サンプルがありますのでそちらも参考にしてください。


■SYSTEMMODE 命令に DEBUGMODE キーワードを実装。デバッグモードを設定できるようにした。
■スクリプトデバッグ機能を実装。コンパイルエラーや実行時エラーの際にエディタでファイルを開き、該当行まで飛べるようにした。

実際に仕事でもかなり重宝したのですが、コンパイルエラー時や実行時エラーが発生した際に、
そのスクリプトファイルを関連付けされているエディターで自動的に開いて、エラーの発生した行まで
自動的に移動してくれる機能がつきました。


■MENU, MENUSET, MENUEND, MENUSETEND 命令を実装。メニューバーレイヤを設定できるようにした。
■システム変数 @_MENUCODE を実装。メニューバーのどの項目が選択されたかを取得できるようにした。
■WINDOW 命令に MENUID キーワードを実装。取り付けるメニューバーのメニューIDを設定できるようにした。

メニューバーが利用できるようになりました。
MENU 命令でメニュー項目を構築し、WINDOW 命令で関連付けたいウィンドウを指定して実際に反映させる、
というやり方になります。
詳細はマニュアルか、sample_002 のスクリプトをご覧ください。


■システム変数 @_PINT, @_PFLT, $_PSTR を GOSUB のネスト毎に値を保持するようにした。
■システム変数 @_RINT, @_RINT, $_RSTR の実装。RETURN 時のパラメータを別途専用に保持するようにした。
■RETURN 命令の PINT, PFLT, PSTR キーワードを RINT, RFLT, RSTR キーワードへ名称変更。

別の投稿で記述した文章そのままですが引用します。
GOSUB と RETURN でパラメータ格納先が別になりました。
GOSUB の時に設定したパラメータは @_PINT 系に、
RETURN で設定したパラメータは @_RINT 系に格納されるようになりました。
この @_PINT や @_RINT に格納されている値は、
GOSUB のネストごとに値が別途保持されるようになりました。
LOOP の多重ループで @_LC が ループネスト毎に違う値を保持しているのと
同じ感じになります。
とは言え通常の使用においては特に意識する必要はありません。
というよりむしろ、これにより意識しなくて済むようになりました。
いままでは、GOSUB で飛んだ先でさらに GOSUB ジャンプしたりすると、
@_PINT 系の値が上書きされたりして、現在何の値が格納されているか、
すぐに別の変数に格納した方がいいか、など、ビクビクしながら使わなくては
なりませんでした。ですが、この仕様改善により
ひとまずGOSUBで飛んだ先のそのルーチン内では、RETURN が来るまでは
@_PINT 系の値が更新されることはなくなり、安心して使えるようになりました。


- 関連一覧ツリー (■ をクリックするとツリー全体を一括表示します)