C++ Lexical Analyzer