eraシリーズ改造/バリアント開発の覚え書き

11月29日の雑記


そういうわけでコンソール風アプリケーション作った。

http://ux.getuploader.com/euremo/download/7/rubier...

できるだけコードらしいものを書かなくてもいいように、ということを意識して、erabasicのユーザー関数定義部に相当する部分は

#関数名 = sub do で関数定義開始
Subhoge = sub do
  #ここに処理内容
  #printの引数には引用符が必要
  printw "あいうえお"
#endで関数定義終了
end

という書き方で書けるようにした。
呼ぶときは

call Subhoge

のように呼べる。今のところ戻り値も引数も対応していない。subについては戻り値を返さず、戻り値を返すものはfunctionで定義するようにしようと考えている。なんかVBみたいであれだけど。

まだprint、printl、printw、wait、callしか実装してないので、それだけしかできないが、文章を表示して入力待ちをする、という程度のことは実装できている。

Rubyは基本的にはあんまり記号を使わないで書ける言語なので、erabasicからの移行はそんなに大変じゃないんじゃないかと思うが、新しい言語、新しい環境に移るというのはやっぱり楽ではないわけで、ERBのコンバータを用意したりとかそういうのも必要になるだろう。
が、まあとりあえずそれなりに使えるものができたらためしに何か移植してみてもいいかもしれない。

それにしてもRubyってすさまじいなーと思うのは、今回のメインのソースコードがたった200行で済んでいるというところ。コンソール部分に関しては100行もない。未実装の部分も多いし、大半はライブラリ任せだというのもあるけど、それにしたってコンパクトなものだ。euremoはモチベーションが持続しない性質なのでよく間が空いたりするのだが、コード量が少なければ間が空いても把握しなおすのがそれほど大変じゃなくて済むので、Rubyのそういうところをとても気に入っている。

追記
できてると思ったらできてなかった。遅延評価してくれると思ったらそうなっていない。まあぼちぼち直すかな……。

追記2
いやいやいや。遅延評価もクソもなかった。めっちょしょぼいミスだった。単にクラス変数のスコープを間違えてただけだった。そりゃ共有したら上書きされるわけで、クラスごとにクラス変数を定義しないとだめだよなあ。そういうことなので直したやつをアップしなおした。やれやれ。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

リンク

漠々ト、獏
eramaker/eramaker2の開発元の公式サイト。

Emuera - emurator of eramaker
C#で書かれたeramakerのエミュレータ「Emuera」のプロジェクトページ。

eraシリーズを語るスレ まとめ
eraシリーズ全般のまとめ。バリアント情報、改造情報など。

eratoho まとめ
eramakerのバリアント「eratoho」のまとめ。

era板
eraシリーズについての掲示板。

サブページ

Rubiera
Bitbucket上のRubieraプロジェクトページ。Rubieraのソースコードのダウンロードはここで。

管理人/副管理人のみ編集できます