parse_toplevel and parse_block