Thrift: Allow whole program doctext.

Summary:
Allow docstrings at the top of the program.

Blame Rev: 52687

Reviewed By: mcslee

Test Plan:
../compiler/cpp/thrift -cpp DocTest.thrift
(with dump_docs on)
and looked at the output.
Generated C++ is identical to installed thrift.

Revert Plan: Do 52687 also.


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665183 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/compiler/cpp/src/main.cc b/compiler/cpp/src/main.cc
index 4d00306..ed38b07 100644
--- a/compiler/cpp/src/main.cc
+++ b/compiler/cpp/src/main.cc
@@ -433,9 +433,13 @@
 
 /**
  * Dumps docstrings to stdout
- * Only works for typedefs
+ * Only works for typedefs and whole program
  */
 void dump_docstrings(t_program* program) {
+  string progdoc = g_program->get_doc();
+  if (!progdoc.empty()) {
+    printf("Whole program doc:\n%s\n", progdoc.c_str());
+  }
   const vector<t_typedef*>& typedefs = program->get_typedefs();
   vector<t_typedef*>::const_iterator t_iter;
   for (t_iter = typedefs.begin(); t_iter != typedefs.end(); ++t_iter) {