てってってー、ぱいそんっててー
H.Hiro さんのプログラム言語「てってってー」 のインタプリタを Python の勉強がてら実装してみました。能力不足かつ5時間未満のコードゆえに、まだまだ誤動作するかもしれません。
サンプルにあったコード(下記)が動くところまでは確認しました。
{「てってってーてってっててー」と出力するプログラム} ーてってってー {「てってっ」をメモリに書き込む} てっててーてっててーてっててーてっててー {ポインタを4つ戻す} てってっーてってっーてってっーてってっー {標準出力へ4文字出力する} ーててーてっててーてってっー {「て」をメモリに書き込み、ポインタを戻してから標準出力へ出力する} ーーてってっててー {「ーてってって」をメモリに書き込む} てっててーてっててーてっててーてっててーてっててーてっててー {ポインタを6つ戻す} てってっーてってっーてってっーてってっーてってっーてってっー {標準出力へ6文字出力する} ーててーてっててーてってっー {「て」をメモリに書き込み、ポインタを戻してから標準出力へ出力する} ーーてーてっててーてってっー {「ー」をメモリに書き込み、ポインタを戻してから標準出力へ出力する}
S:\shun\Python\brainfuck>python tettettee.py sample\tettettee.txt てってってーてってっててー
現状
- スペース(全角・半角)・タブ・改行は「ー」〜「てー」の間を除き無視:不完全。「てってー てってー」は OK だが「てっ てーてってー」が動作しない。
- {} はコメント:対応済み。
- 「\xAB」「\uABCD」「\d00000」はエスケープシーケンス:未対応 (\d00000 ?)
バグ(2009/2/20 15:40 追記)
- 「てってっててー」入れ子不可。以下のコードが動作せず。 ver 0.1.1 にて修正。
{B[2] に 4 * 4 * 4 = 64 = 0x40 = '@' を作成して出力する。} {B[0], B[1] はカウンタとして使用} ててーててーててーててー てってっててー てっー てってー ててーててーててーててー てってっててー てっー てってー ててーててーててーててー てっててー てってってっー てっててー てってってっー {出力} てってーてってー てってっー