Optimization: switched from inefficient util.extend(...) to util.copy(...) in parser