fix bugs in node.c without DIRECT_PARSE; add save_parse_tree