今回はmelの文法について書きます.

melは いつ - なにを - どうする という3段階の構文になっています.

では,まずはサンプルコードを見てみましょう.

 
	point p;
[setup]{ p = new point(); }
[always]{ p.pushTo(mouse); }
[paint]{ clearAll(); fillOval(p, 40, 40); }

実行結果はこちらです.

このコードのうち
[setup]や[paint]や[always]といった部分がいつにあたります.melではこれをタイミングとよんでいます.
それぞれのタイミングの後に続く{ }の内容がそのタイミングに実行されます.

例えば[always]はこのプログラムが実行中いつも行われるタイミングです.つまりこのサンプルコードでは,いつも
p.pushTo(mouse);
という構文が実行されます.

そして,それぞれのタイミングの中に書かれた内容が なにを どうする にあたります.
[setup]に,つまりこのソースコードを実行するとまず最初に行われるタイミングで
p = new point();
実行されます.これはpという点を初期化(プログラム内で使えるように)する処理です.

これを[always]に,つまりいつもというタイミングで,
p.pushTo(mouse);
が実行されます.これはpという点をマウスカーソルの方に押しなさい,という命令です.

そして[paint]に,つまり描画のタイミング(これはシステム内で[always]後にいつも行われています)で
clearAll();
fillOval(p, 40, 40);
が実行されます.これは,画面上をクリア(全部消去)して,pの場所に縦横の大きさが40ピクセルの塗りつぶされた丸を描きなさい,という命令です.

つまりこのサンプルコードは
1.まず最初に,pをソフト内で使用可能にして,
2.いつも,そのpをマウスの方向に押しなさい
3.そして,pの場所に丸を描きなさい
ということになります.

ちなみに,1行目に
point p;
という記述があります.これは全てのタイミングで使うことが出来る点「p」を宣言しています.

○いつ
タイミングには上記のようなsetup,always,paintを含めて,

の14個が用意されています.それぞれの内容はhttp://www.motionExpress.net/mel/jp/references.htmlに記載されています.

○なにを
「なにを」は主にpointの処理になります.つまり上記のpに関する記述が「なにを」にあたります.pointに関する処理もhttp://www.motionExpress.net/mel/jp/references.htmlに記載されています.

○どうする
「どうする」には主に
動き
描画
2種類あります.上記の
p.pushTo(mouse);
のような点の動きに関するものと,
fillOval(p, 40, 40)
のような描画に関するものです.これらについてもhttp://www.motionExpress.net/mel/jp/references.htmlに記載されています.