First, we make a parse tree. We call make-tokenizer with our input port. This time, we also pass our path as an argument, to help with generating source locations. make-tokenizer returns a token-retrieving function, which we pass to parse. In turn, the parser uses this function to retrieve tokens and arrange them into a parse tree according to the rules of our grammar.