忍者ブログ

RPG製作ソフト「Role Paint」を作っていくぜ!ツクールのようなRPG製作ソフト「Role Paint」を作っていくブログ。 相互リンク募集中

言語仕様がはっきり定まらない

この前の記事の続きである。

結局DSL、その中のRubyのeval機能をフル活用する内部DSLを使う事を決め、自作ライブラリをMRuby上で動かせるようにしつつDSLの勉強もしていた。

あまりのRubyのやばさに感心するが、ここで重大な問題にぶち当たった。言語仕様をどうするか、である。

というのも、RubyによるDSLは非常に自由度が高くて基本的に何でも出来てしまう。故にどのような仕様にするか、かなり悩まされる。一応、C言語のポインタ機能を抜いた言語にし、また一部の部分を日本語等その国の言語に変換できる仕組みを作ろうと考えているが、中々策定が出来ない。

また、予約語の問題もある。ビジュアルプログラミングと通常のテキスト編集によるプログラミングを相互変換できるようにすると考えているが、こうなってくると内部DSLを用いた手法では通常のテキスト上ではforやwhileといった基本的な予約語を使う事がかなり難しくなる。

外部DSLも使おうと考えたがRubyにはこれ用のライブラリが殆ど無く、あっても癖がかなり強かったりメンテナンスが放棄されたものばかりで、特にMRubyでは皆無でパーサジェネレータの自作が必要となってくる。Boost::SpiritなどC++のパーサジェネレータのバインディングも考えたが、これもかなり難しい。一応、C++では良さそうなソースを見つけたが・・・。


拍手[1回]

PR
Comment
name
title
color
mail
URL
comment
pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
コメントの修正にはpasswordが必要です。任意の英数字を入力して下さい。