preserving blank lines in AST