おめがシスターズの名言(迷言？)でBrainf*ck派生言語を作ってみた

#はじめに
おめシスはいいぞ。
ということで、Brainf*ck派生言語、「Ω」です。
C++で実装しました。

#説明
Ωは、Brainf*ckの８つの命令をそれぞれおめシスの台詞に置き換えただけのものです。

> \+ -> "おめシスはいいぞ。"
> \- -> "おめがってるー！？"
> \> -> "う、うん"
> \< -> "わかるぅ〜"
> \. -> "って言わないで"
> , -> "うんちゃん"
> \[ -> "えーんえーん"
> \] -> "おめ合体"


#実装

```cpp:Omega.cpp
#include <iostream>
#include <cstdio>
#include <string>
#include <fstream>

int main(int argc, char* argv[]) {
    using Byte = unsigned char;
	Byte buf[30000] = {};
	Byte* ptr = buf;
	std::string s;
	int count = 0;
	bool flag = false;
	if(argc == 1) {
		std::cout << "Please specify an OMGS file." << std::endl;
		return 1;
	}
	std::string file = argv[1];
	int i = file.rfind(".", file.size());
	if(file.find("omgs", i) != (i + 1)) {
		std::cout << "Please specfy an OMGS file." << std::endl;
		return 1;
	}
	std::ifstream ifs(file);
	while(getline(ifs, s)){
		for(i = 0; i != s.size();) {
			if(s.find("う、うん", i) == i) {
				++ptr;
				i += 12;
				if(flag) count += 12;
			}
			else if(s.find("わかるぅ〜", i) == i) {
				--ptr;
				i += 15;
				if(flag) count += 15;
			}
			else if(s.find("おめシスはいいぞ。", i) == i) {
				++*ptr;
				i += 27;
				if(flag) count += 27;
			}
			else if(s.find("おめがってるー！？", i) == i) {
				--*ptr;
				i += 27;
				if(flag) count += 27;
			}
			else if(s.find("って言わないで", i) == i) {
				putchar(*ptr);
				i += 21;
				if(flag) count += 21;
			}
			else if(s.find("うんちゃん", i) == i) {
				*ptr = getchar();
				i += 9;
				if(flag) count += 9;
			}
			else if(s.find("えーんえーん", i) == i) {
				i += 18;
				if(*ptr == 0) {
					while(s.find("おめ合体", i) != i)
						i += 3;
				}
				else {
					flag = true;
					count += 18;
				}
			}
			else if(s.find("おめ合体", i) == i) {
				if(*ptr != 0) i -= count;
				else {
					flag = false;
					i += 12;
				}
				count = 0;
			}
			else i += 3;
		}
	}
	return 0;
}

```

#Ωのソースコード例
"Omega sisters"と出力するコードです。omgsという拡張子を使います。

```:Omega_sisters.omgs
おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。えーんえーんう、うんおめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。う、うんおめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。わかるぅ〜わかるぅ〜おめがってるー！？おめ合体う、うんう、うんおめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。って言わないでう、うんおめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。えーんえーんわかるぅ〜おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。う、うんおめがってるー！？おめ合体わかるぅ〜って言わないでおめがってるー！？おめがってるー！？おめがってるー！？おめがってるー！？おめがってるー！？おめがってるー！？おめがってるー！？おめがってるー！？って言わないでおめシスはいいぞ。おめシスはいいぞ。って言わないでおめがってるー！？おめがってるー！？おめがってるー！？おめがってるー！？おめがってるー！？おめがってるー！？って言わないでわかるぅ〜って言わないでう、うんう、うんおめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。えーんえーんわかるぅ〜おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。う、うんおめがってるー！？おめ合体わかるぅ〜って言わないでう、うんおめシスはいいぞ。おめシスはいいぞ。えーんえーんわかるぅ〜おめがってるー！？おめがってるー！？おめがってるー！？おめがってるー！？おめがってるー！？う、うんおめがってるー！？おめ合体わかるぅ〜って言わないでう、うんおめシスはいいぞ。おめシスはいいぞ。えーんえーんわかるぅ〜おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。う、うんおめがってるー！？おめ合体わかるぅ〜って言わないでおめシスはいいぞ。って言わないでう、うんおめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。えーんえーんわかるぅ〜おめがってるー！？おめがってるー！？おめがってるー！？おめがってるー！？おめがってるー！？う、うんおめがってるー！？おめ合体わかるぅ〜って言わないでう、うんおめシスはいいぞ。おめシスはいいぞ。えーんえーんわかるぅ〜おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。う、うんおめがってるー！？おめ合体わかるぅ〜おめシスはいいぞ。おめシスはいいぞ。おめシスはいいぞ。って言わないでおめシスはいいぞ。って言わないで
```

#実行
以下のようにcppファイルをコンパイルし、Omegaという実行ファイルを作成。

```
$ g++ Omega Omega.cpp
```

そしたら、次のように実行。

```
$ ./Omega Omega_sisters.omgs
```

そうすると、以下のように出力されます。

```
Omega sisters
```

#まとめ
この台詞入れて！とか、ここはこうしたらいいんじゃない？などというご意見がありましたら是非コメントをください。