support heredocument parsing