Copied parser and scanner from last year