>>457-460
汚い、読みづらい。2chの使用上インデントが反映されないのは仕方がないが、
改行位置をなんとかしろ。

で、void get_token()内
while ( c = *reg_string )

c に0が代入されたとき、whileブロックには入らないから
case '\0': curr_token = EOREG; break;
が実行されることはない。