日本語プログラミング言語「こばなし」

http://blog.technohippy.net/pages/products/kobanashi

文法


コメント


一行コメント



(^_^) < コメント


複数行コメント



…… コメント(改行可) ……。


リテラル


文字



#文字


文字列



文字列


シンボル



< シンボル >


正規表現



/ 正規表現 /


配列



[ 要素 要素 要素 ]


ハッシュ



{}


ブロック



処理


メッセージ送信


単項メッセージ



レシーバー メッセージ



  『文字列』の文字数。     (^_^) < 6 (レシーバー:文字列、メッセージ:の文字数)
[1・2・3] のいずれか。(^_^) < 1 (レシーバー:[1・2・3]、メッセージ:のいずれか)

キーワードメッセージ



レシーバー 助詞、 引数 助詞、 引数 メッセージ


助詞と引数の組の数は任意です。0のときは単項メッセージに一致します。



  『あいうえお』に、『かきくけこ』を繋ぐ。       (^_^) < 『あいうえおかきくけこ』

  • レシーバー: あいうえお
  • メッセージ: に、を繋ぐ
  • 引数: かきくけこ

  『あいうえお』の、2番目に、『ホゲ』を挿入する。(^_^) < 『あホゲいうえおかきくけこ』

  • レシーバー: あいうえお
  • メッセージ: の、に、を挿入する
  • 引数: 2・ホゲ

代入



変数




文字列 は 『』。 (^_^) < 文字列を空に初期化


分岐(ただのメッセージ送信)




「『あいうえお』の文字数 が、10 に等しい。」 が本当なら、「『10文字ですね』。」を実行する。


  • レシーバー: 「『あいうえお』の文字数 が、10 に等しい。」
  • メッセージ: が本当なら、を実行する
  • 引数: 「『10文字ですね』。」

繰返し(ただのメッセージ送信)




10 回、「文字列 は 文字列 と、『あ』の連結。」を繰り返す。


  • レシーバー: 10
  • メッセージ: 回、を繰り返す
  • 引数: 「文字列 は 文字列 と、『あ』の連結。」


「文字列 の文字数 が、10 より小さい。」なら、「文字列 は 文字列 と、『あ』の連結。」を繰り返す。


  • レシーバー: 「文字列 の文字数 が、10 より小さい。」
  • メッセージ:なら、を繰り返す
  • 引数: 「文字列 は 文字列 と、『あ』の連結。」

その他


特殊変数


「それ」「あれ」はそれぞれ一つ前と二つ前の実行結果を表します。



  『あいうえお』の、2番目に、『ホゲ』を挿入する。
それ に、『かきくけこ』を繋ぐ。
それ に、あれ を繋ぐ。 (^_^) < あホゲいうえおかきくけこあホゲいうえお

コメントとしての接続詞


文の一番最初にある「文字列、」は接続詞と見なされて処理に影響を与えません。



  『あいうえお』の、2番目に、『ホゲ』を挿入する。
加えて、それ に、『かきくけこ』を繋ぐ。
さらに、それ に、あれ を繋ぐ。

プログラム例 (じゃんけん)


(^_^) < 以下のプログラムはユーザーからの入力(0 or 1 or 2)を受け付けて、コンピューターの手と比較して勝敗を表示します。

<<もの>> の一種として、 <じゃんけん> を作る。

<<じゃんけん>> にメソッド、『ほいっ、(あなたの手) は?』 を定義し、「対応表 は {0→『グー 』・1→『チョキ 』・2→『パー 』}。あなたの手 を数値に変換する。あなたの手 は それ。私の手 は [0・1・2] のいずれか。勝敗 は あなたの手 と、私の手 の差。対応表 の、あなたの手 の値。対応表 の、私の手 の値。対戦結果 は あれ に、それ を繋ぐ。「勝敗 が、 0 と等しい。」なら、「対戦結果 に、『:引き分け』を繋ぐ。」そうじゃないとき、「「勝敗 が、 1 と等しい または、(勝敗 が、 -2 と等しい) が成り立つ。」なら、「対戦結果 に、『:あなたの負け』を繋ぐ。」そうじゃないとき、「「勝敗 が、 -1 と等しい または、(勝敗 が、 2 と等しい) が成り立つ。」なら、「対戦結果 に、『:あなたの勝ち』を繋ぐ。」を実行する。」を実行する。」を実行する。」を処理する。

<<じゃんけん>> にメソッド、『を開始する』 を定義し、「あなたの手 は 『』。「[『0』・『1』・『2』] に、あなたの手 が含まれる?。」まで、「『0:グー、1:チョキ、2:パー』を表示する。あなたの手 を <<キーボード>> から読み込む。あなたの手 の改行を除く!。」を繰り返す。私 ほいっ、あなたの手 は?。」を処理する。

じゃんけん は <<じゃんけん>> の実体。じゃんけん を開始する。結果 を表示する。

……実際のところ自分でもこれは使いたくないなと思います……。

実行結果


  0:グー、1:チョキ、2:パー
0
グー チョキ:あなたの勝ち