銀月の符号

Python 使い見習いの日記・雑記

てってってー、ぱいそんっててー

H.Hiro さんのプログラム言語「てってってー」インタプリタPython の勉強がてら実装してみました。能力不足かつ5時間未満のコードゆえに、まだまだ誤動作するかもしれません。

サンプルにあったコード(下記)が動くところまでは確認しました。

{「てってってーてってっててー」と出力するプログラム}

ーてってってー {「てってっ」をメモリに書き込む}
てっててーてっててーてっててーてっててー {ポインタを4つ戻す}
てってっーてってっーてってっーてってっー {標準出力へ4文字出力する}
ーててーてっててーてってっー {「て」をメモリに書き込み、ポインタを戻してから標準出力へ出力する}

ーーてってっててー {「ーてってって」をメモリに書き込む}
てっててーてっててーてっててーてっててーてっててーてっててー {ポインタを6つ戻す}
てってっーてってっーてってっーてってっーてってっーてってっー {標準出力へ6文字出力する}
ーててーてっててーてってっー {「て」をメモリに書き込み、ポインタを戻してから標準出力へ出力する}
ーーてーてっててーてってっー {「ー」をメモリに書き込み、ポインタを戻してから標準出力へ出力する}
S:\shun\Python\brainfuck>python tettettee.py sample\tettettee.txt
てってってーてってっててー

ダウンロード

py2exe による Windows バイナリも含んでいますので Python がインストールされていない Windows 上でも動作します。

Tettettee-python version 0.1.1 ダウンロード

現状

  • スペース(全角・半角)・タブ・改行は「ー」〜「てー」の間を除き無視:不完全。「てってー てってー」は 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] はカウンタとして使用}
ててーててーててーててー

てってっててー
てっー
てってー
ててーててーててーててー

てってっててー
てっー
てってー
ててーててーててーててー

てっててー
てってってっー

てっててー
てってってっー

{出力}
てってーてってー
てってっー

積み残し課題

  • きちんと動作確認(まて
  • エスケープシーケンス実装
  • エラーメッセージにエラー発生箇所を「何行何文字目」形式で含める。ただでさえデバッグ難しいのだから
  • GUI ほしい、LIUNQA さんのもののような