!!!ワード名を登録する まずワード名を保存する領域を作っておく。 char word_heap[100]; /* ワード名登録領域 */ ワード名を登録するには、word_heapの先頭から領域を少しずつ分けてもらう。 領域内のワードは、文字終端記号(0x0)で区切られている。 最初はすべて未使用領域であり、ワード名を登録する必要が生じたときに、空き領域を先頭から少しずつ使っていく。 なので、未使用領域の先頭位置を保存する変数が必要である。 char word_heap_index; /* ワード名登録領域の未使用領域の先頭を指す */ ワード名登録関数は以下の通りである。 /* ワード名を登録する */ char reg_word_name(char *str) { char reg_pos = word_heap_index; /* コピーする */ while (*str != '\x0') { word_heap[word_heap_index++] = *str++; } /* 文字終端をつける */ word_heap[word_heap_index++] = '\x0'; /* 登録時の先頭位置を返す */ return reg_pos; } 先のワード名hogeを登録するには、reg_word_name("hoge")のように使う。 その名前が必要なくなったらどうするかは考えていない。 [[戻る|Forthを作ってみる]] [[前へ|Forthを作ってみる / ワード定義を実装する]] [[次へ|Forthを作ってみる / 処理内容を登録する]] {{adsence}}