Building a Custom M Language Parser and Tokenizer for Dynamic Expression Evaluation in Power Query | Wicked Smart Data