トップ 一覧 Farm 検索 ヘルプ RSS ログイン

ScanningProgramCodeの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!プログラム配列を走査する

コード化されたプログラム配列prog[]をもとに、プログラムを実行するには、、 

*現在位置のコードを得る
*コードによって処理を振り分ける
*最初に戻る

コードとしては、以下のようになる 

 void proc_prog(void)
 {
     while (prog[prog_cnt] != CODE_END) {
         switch (prog[prog_cnt]) {
         case CODE_PUSH:
             /* pushの処理 */
             break;
         case CODE_PLUS:
             /* plusの処理 */
             break;
         case CODE_PRINT:
             /* printの処理 */
             break;
         }
     }
 }

ただスイッチ文で振り分けただけの構造である。 
ところで、コードにはマクロ名を付けた。 

 #define CODE_END 0
 #define CODE_PUSH -1
 #define CODE_PLUS -2
 #define CODE_PRINT -3

である。

[[戻る|ForthImplementation]] [[前へ|RunningForth?]] [[次へ|RunningPushStack]]

{{adsence}}
[[Forthを作ってみる / プログラム配列を走査する]]に移動しました。