it's very complicated to support full C programming tokens
fix a bug