First and second pass parser functions now use the parser interface