This is the main function implementing the parser. read is immediately called from within the REPL. Given a string (comming from the programming environment) str, it initializes the scanner with the string, and initializes the global variable token so that the parser's 'current' is 'ready' for processing. Hence, token is always one token ahead of the parser. After the first token has been determined, expression is immediately called since we know from the concrete grammar that any Pico program is always an expression.