LoginSignup
5
5

More than 5 years have passed since last update.

Brainf*ck の派生言語作成ツール orenono gem で「CodeIQ言語」を作ってみる

Last updated at Posted at 2014-09-06

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スライドショー

参照

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5