Generate appropriate schema doc comments from .proto files

- Add parse handling of .proto struct and field doc comments (enums and
their values were already handled)
- Add FBS generation handling of doc comments for structs, their
fields, enums, and their values (requires linking idl_gen_general in
the test binary build)
- Tested using test.proto|golden with doc comments added.  Xcode run of
flattest passes.

Change-Id: Idff64dd8064afba227174ab77d2c7be22d006628
This commit is contained in:
Advay Mengle
2015-03-31 02:03:11 -07:00
committed by Wouter van Oortmerssen
parent b8708beeec
commit 3ad853630c
7 changed files with 32 additions and 1 deletions

View File

@@ -991,10 +991,13 @@ void Parser::ParseProtoDecl() {
// These are identical in syntax to FlatBuffer's namespace decl.
ParseNamespace();
} else if (attribute_ == "message") {
std::vector<std::string> struct_comment = doc_comment_;
Next();
auto &struct_def = StartStruct();
struct_def.doc_comment = struct_comment;
Expect('{');
while (token_ != '}') {
std::vector<std::string> field_comment = doc_comment_;
// Parse the qualifier.
bool required = false;
bool repeated = false;
@@ -1021,6 +1024,7 @@ void Parser::ParseProtoDecl() {
Expect('=');
Expect(kTokenIntegerConstant);
auto &field = AddField(struct_def, name, type);
field.doc_comment = field_comment;
field.required = required;
// See if there's a default specified.
if (IsNext('[')) {