Mathematical expression lexer and parser in C#