Todays exercise was raindrops. If a number is evenly divisible by 3, 5, or 7 you give it raindrop sounds for each given number (combined if it is a multiple of two or more of the numbers). If it isn’t a multiple you just return the number as a string. Pretty easy, but someone still had to make it data driven so they could use LINQ.

Yesterday we parsed constants, now we go up one more level and are parsing Values. Of course this doesn’t completely work until I am parsing expressions. But that is eight more levels up the pile. I had to add comma to the tokenizer for the expression lists that don’t work yet without expressions. Without expression list the function call recognition doesn’t work yet either. I filtered out the tokens in the output and am just showing recognized values.