I went through most of the Java half of this using c# right around the time that portion was completed. I think it may be time to build the C half, the question now becomes doing it in c or C++ (but still hand writing the hash table and similar things instead of falling back to the STL)