やっつけなので汚いです。ライフゲームのコンパイルが通ったのでヨシ、というレベルの雑なものです。
移植元
ベースになっているバージョン: tag:56 のあたり
メモ
- 理解は後回しにして、かっこ悪い書き方でもいいのでとにかく完成まで持って行く……といういつも通りの方針で、時間をかけすぎないように。理解は後でゆっくり。まずは手を動かして慣れる。
- Tour of Rust
- 情報量が多すぎずよく整理されていて、一番最初にこれを読めばよかった
- 借用とかムーブとか
- このくらいのプログラムを書いて動かせる程度には分かってきた、はず。 でもけっこう怪しい。
- ライフタイム
- まだよく分かっていなくて、コンパイルが通らなかったらライフタイムが絡まない書き方にして回避したりしている
- 連結リストが難しそうだったので
Vec<NodeId>
で管理する方式にしてとりあえず回避 - レキサの入力文字列は最初に
Vec<char>
にして使い回し
TODO
気が向いたらあとで
- List にノードID ではなくノードを直接持たせる
- List のイテレータ対応