どこかで心の叫びが聞こえた気がするので Brainf*ck の派生言語作成ツール orenono gem で「ホモ言語」を作ってみる
概要
どこかで心の叫びが聞こえた気がするので Brainf*ck の派生言語作成ツール orenono gem で「ホモ言語」を作ってみます。
どこかの心の叫びとはちょっと仕様が異なるけどご了承ください。
orenono gem については下記記事参照。
Ruby で Brainf*ck の派生言語を作成するための gem 『orenono』を作成してみた
前提
orenono gem をインストール済み
文法定義
orenono init で Orenonofile を生成し、中身を編集して文法を定義します。
- Orenonofile を生成する
$ orenono i
$ ls Orenonofile
Orenonofile
- Orenonofile を編集する
# encoding: utf-8
increment "ホモ"
decrement "ノンケ"
start_loop "やらないか?"
end_loop "もうおわりかい?"
next_cursol "筋肉"
previous_cursol "贅肉"
display "アーッ!"
read "菊"
ホモ言語 プログラム
hello_world.homo
ホモホモホモホモホモ
ホモホモホモホモ
やらないか?
筋肉
ホモホモホモホモホモ
ホモホモホモ
筋肉
ホモホモホモホモホモ
ホモホモホモホモホモ
ホモ
筋肉
ホモホモホモホモホモ
贅肉
贅肉
贅肉
ノンケ
もうおわりかい?
筋肉
アーッ! # => H
筋肉
ホモホモ
アーッ! # => e
ホモホモホモホモホモ
ホモホモ
アーッ! # => l
アーッ! # => l
ホモホモホモ
アーッ! # => o
筋肉
ノンケ
アーッ! # => ,
ノンケノンケノンケノンケノンケ
ノンケノンケノンケノンケノンケ
ノンケノンケ
アーッ! # => space
贅肉
ホモホモホモホモホモ
ホモホモホモ
アーッ! # => w
ノンケノンケノンケノンケノンケ
ノンケノンケノンケ
アーッ! # => o
ホモホモホモ
アーッ! # => r
ノンケノンケノンケノンケノンケ
ノンケ
アーッ! # => l
ノンケノンケノンケノンケノンケ
ノンケノンケノンケ
アーッ! # => d
筋肉
ホモ
アーッ! # => !
- インデントは読みやすさのために追加しているだけで、処理には不要です。
- 8つの用語以外は無視されるので、コメント扱いになっています。
#=> H
などはコメント。
実行結果
$ orenono e hello_world.homo
Hello, world!
参考
サンプルと等価な Brainf*ck のソースコード
+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.
------------.<++++++++.--------.+++.------.--------.>+.
orenonoスライドショー