Brainf*ck の派生言語作成ツール orenono gem で「CodeIQ言語」を作ってみる
概要
Brainf*ck の派生言語作成ツール orenono gem で「CodeIQ言語」を作ってみます。
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 "問題文をダウンロードする"
CodeIQ言語 プログラム
hello_world.bf
新問題公開新問題公開新問題公開新問題公開新問題公開
新問題公開新問題公開新問題公開新問題公開
ゴルフ問題開始
次の問題を解く
新問題公開新問題公開新問題公開新問題公開新問題公開
新問題公開新問題公開新問題公開
次の問題を解く
新問題公開新問題公開新問題公開新問題公開新問題公開
新問題公開新問題公開新問題公開新問題公開新問題公開
新問題公開
次の問題を解く
新問題公開新問題公開新問題公開新問題公開新問題公開
前の問題を解く
前の問題を解く
前の問題を解く
受付終了
ゴルフ問題終了
次の問題を解く
提出する
次の問題を解く
新問題公開新問題公開
提出する
新問題公開新問題公開新問題公開新問題公開新問題公開
新問題公開新問題公開
提出する
提出する
新問題公開新問題公開新問題公開
提出する
次の問題を解く
受付終了
提出する
受付終了受付終了受付終了受付終了受付終了
受付終了受付終了受付終了受付終了受付終了
受付終了受付終了
提出する
前の問題を解く
新問題公開新問題公開新問題公開新問題公開新問題公開
新問題公開新問題公開新問題公開
提出する
受付終了受付終了受付終了受付終了受付終了
受付終了受付終了受付終了
提出する
新問題公開新問題公開新問題公開
提出する
受付終了受付終了受付終了受付終了受付終了
受付終了
提出する
受付終了受付終了受付終了受付終了受付終了
受付終了受付終了受付終了
提出する
次の問題を解く
新問題公開
提出する
- インデントは読みやすさのために追加しているだけで、処理には不要です。
実行結果
$ orenono e hello_world.bf
Hello, world!
参考
サンプルと等価な Brainf*ck のソースコード
+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.
------------.<++++++++.--------.+++.------.--------.>+.
orenonoスライドショー