|
![]() | |
|
先日、キーボードシミュレータ ver.2.00.03β用のサンプルスクリプトを書き、動作テストをやっているとき、繰り返し同じ失敗に苛まれました。 ![]() whileで繰り返しを書いていると、しょっちゅう、初期化とインクリメントを書き忘れる! いじくるつくーるのR-Scriptの頃には FOR文が存在しました。ただ、当時は、構文解析と式の評価(実行)を分離することができておらず、C言語のFOR文のように、初期化・評価・インクリメントを1行に書いておいて、必要に応じて実行するようなことができていませんでした。(初期化と共にインクリメントが実行されてしまう。ブロックの実行後にインクリメントすることができない。同時に評価・実行されてしまう) なので、極めていびつで非直感的な文法になっています。 R-Scriptの頃の FORの書き方があまり好きではなかったので、FR-ScriptではFOR文の搭載を見送っていました。ただ、今回、初期化とインクリメントを書き忘れるという人間側のバグをしょっちゅう起こしてしまったので、対策を考えたいと思います。というか、 FORを搭載しようかと思います。なお今回、構文解析と式の評価を分けるよう、生成AIが基礎固めをしてくれていましたので、今回はそれの上で FOR文の構築をしようかと思います。ただ、FR-Scriptでは ; (セミコロン) がコメントの開始と定義されてしまっているため、 FORの後ろの括弧の中でセミコロンを使うことができません。しかし、FR-ScriptにはC言語と違って、カンマ演算子(順次実行し、最後のものを結果として返す)が存在していませんので、; (セミコロン) の代わりに , (カンマ) を使って FOR文を構築しようかと思います。for (i=0 , i<10 , ++i) {みたいな感じで。 ちなみに、似たような理由(*1)で条件演算子( (cond_expr) ? true_expr : false_expr の書き方になるやつ。三項演算子ともいう)の実装も見送っていましたが、生成AIの基礎固めのおかげで書きやすくなっているため、FORと同時に実装しようかと思います。(*1) … R-Scriptでは、(cond_expr)の真偽によらず、true_exprとfalse_exprは共に評価される。(cond_expr)の真偽は、どちらの評価結果が返却値になるかを決めるために利用される。R-Script構築当時は、構文解析と評価を分離できていなかったので、このような仕様になっていた。現在作成中のFR-Scriptでは、C言語と同様に、(cond_expr)の真偽によって、true_exprとfalse_exprのうち選ばれなかった方は、評価自体が行われないようにする。 ・・・というわけで、マウスふるふる ver.1.26.06β、マウスのお供 ver.1.67.06β、キーボードシミュレータ ver.2.00.04βにて、FORと条件演算子を実装しています。 目次の表示: ブログではないので、コメント機能とトラックバック機能は提供していません。ご質問・ご意見等はメール、フィードバックまたはX等からお願いします。いただいたご質問・ご意見などは、この「管理人のひとこと」の記事に追加、あるいは新規の記事にする形で一部または全文をそのまま、あるいは加工させていただいた上で、ご紹介させていただく場合があります。 当サイトでは掲載内容による不具合等に関する責任を持ちません。また、内容の正確性についての保証もありませんので、情報をご利用の際は、利用者の自己責任で確認をお願いします。 |
- 最近の更新 - |
|
|
3459987 (+0061)[+0690] Copyright© 2010-2026 INASOFT | ||