Lexer, multiple parsers for different types of arithmetic notations (handcrafted in C++).