- extern (C) による FFI を使って元のC実装で補いつつ、関数単位で D に書き換えていく
- リファクタリングする場合は test.lsp がエラーにならないことが必須
- 関数内であればリファクタリングして良い
- extern (C) を伴わない定義 (定数や、D に書き換え済みの関数と変数) は、もとのC実装の構造を保たなくても良い
- bottom up (main 関数から呼び出される順) に書き換えていく。これは元のC実装には手を加えず FFI による呼び出しを D 側からのみの一方通行にするためである。
- 元の C 実装における static などのアクセス指定だけは適宜書き換えて良い。例えば書き換え前は static のある定義は非 static にしておく、書き換え後に static のない定義は static のあるものにしておくなど。