humor
humor-0.01.tar.gz
目次
名前の由来
もし身の回りの人達みんながユーモアのある人達ならいいかも。
humorの動作
- 内部コードの展開
入力された文字列がすでに登録済みかどうかを調べます。もし登録済み
なら、そのラベルへの参照がコードになります。もし未登録なら未解決
コードとなります。未解決コードは実行時に解決されます。名前解決の
方法をCのようにプロトタイプ宣言で行なう仕組みは、とりあえず考え
ていません。
- コードの実行
コードを順に追って処理を行ない、未解決のコードにあたると、そのコー
ドのラベルを解決しようと試みます。この試みに失敗した場合はプログ
ラムが停止します。
- ブロック情報
ブロック情報には以下の種類があります。
- 入力コードから内部コードへの展開
入力される文字列すべてをラベルとしてあつかい、そのラベルがすでに定
義されているならばラベル情報を内部コードに追加します。その後、定義
されているラベルが内部コード展開用に実行可能ならば、実行します。
ラベルがまだ登録されていないならば、新たに空のラベルを登録して、そ
のラベル情報を内部コードに追加します。
内部コード展開用に実行可能なラベルには以下のものがあります。
- 10進表記のラベル
自分自身のラベルに数字の情報を持たせます。
- 0xで始まる16進表記のラベル
自分自身のラベルに数字の情報を持たせます。
- ""で囲まれたラベル
自分自身のラベルに文字列の情報を持たせます。
- {
内部コードベクターと内部コード展開用スタックにブロック開始位置を
追加します。
- }
内部コードベクターにブロック終了位置を追加し、内部コード展開用ス
タックから開始位置情報を取り出します。この時、ブロック開始位置情
報と終了位置情報に必要な情報を設定します。
- #
二つ前のラベルを現在のブロック情報に置きかえます。一つ前のコード
がブロック情報でない場合や、二つ前のラベルが空でない場合はエラー
とします。
ホームページにもどる
,
プログラムのページに戻る
Thu Oct 25 02:01:07 JST 2001