These utilities are needed for generating the code that supports
summaries; in order to move summary logic into front_end, we will need
these code generation tools in front_end as well.
Also make a minor change to summary code generation logic so that it
talks to the file system directly rather than depending on analyzer's
file system abstraction.
R=brianwilkerson@google.com
Review-Url: https://codereview.chromium.org/2742333005 .
If a marker is null, it won't be written. For all other strings,
they'll be written as they are, including the empty string.
This enables nicer output for languages that don't have begin/end
markers for doc comments, such as Python.
This CL introduces the code generation tools in analyzer, but leaves analysis_server
untouched. In a later CL, after a new version of analyzer has been
published, I'll refactor analysis_server to point to these tools and
remove the corresponding code from analysis_server.
R=scheglov@google.com
Review URL: https://codereview.chromium.org/1411153007 .