.mjtの日記: 言語仕様
(今日の日記はメモ)
ルール
・設置
+名前 ブロック でブロックを現在のスコープに設置できる。
ブロックには生成ブロックと実体ブロックが有る。
生成ブロックは他の実体ブロックによって、設置されようとするブロックに要素を設置できる。
生成ブロックは( )で囲まれる。
+hogehoge (integer)
また、生成ブロックによって設置されたブロックはコンテナと呼ばれる。
実体ブロックは式を纏めたもので、{ }で囲まれる。
+hogehoge { count ++ }
また、実体ブロックによって設置されたブロックはオペレータと呼ばれる。
・連想
連想には固定連想と条件連想がある。
条件連想は、& コンテナ ブロック によって行われ、ブロック内の最初に一致したものとなる。
条件は[ ] で囲んでしめされる。また、条件と条件の間も実行される。
また、条件のうち、==は省略できる。
& select { [ == 1] { hoge1 } [2] {hoge2} [3] {hoge3} [...] {hoge_rescue} }
固定連想はブロックそのものを連想するために使われる。
システムにおいては、すべての単語は固定連想と扱われる。
固定連想は、直前のブロックの生成ブロック中→スコープ中に設置されたブロック→スコープを設置しているブロックの順に一致する名前を検索することで行われる。
また、固定連想を複数行うこともできる。
hogehoge.tamtam.count
・代入
hoge -> tamtam
tamtam <- hoge
・ループ
ブロック-->を連想すると設置されているブロックの最初から実行される。
・例
+main {
+con (@system.console)
+i (integer)
10 math.random -> i
{
&con {
[i] { "あたりー" -> con.lineout }
[...] { "はずれー" -> con.lineout next }
+next { <-- }
}
}
< > は実際は半角。
言語仕様 More ログイン