Essential things to remember from today's class (class 23, 13th November) How easily the various parsing functions fit together and how they work. Each is responsible for reading the amount of input that corresponds to one of the ::= ... definitions, no more and no less, and returning the tree node that represents it. How all those mutually recursive parse_...() functions work together. Why having separate versions of parse_expression for each of the different levels of operator priority works.