Improved .proto conversion.

- Allowed enums to be declared before use.
- Generalized parsing of `required`.
- Reworked escaping of namespaces.
- Escaping field names that are C++ keywords.
- Many smaller fixes.

Change-Id: Ie580de7b70dc208f676f4f71bb0d061808648b8d
Tested: on Linux.
This commit is contained in:
Wouter van Oortmerssen
2017-10-02 15:41:34 -07:00
parent 5b4acf809e
commit 9c3920d0ab
6 changed files with 268 additions and 149 deletions

View File

@@ -1,6 +1,6 @@
// Generated from test.proto
namespace _proto._test;
namespace proto.test;
/// Enum doc comment.
enum ProtoEnum : int {
@@ -33,12 +33,12 @@ table ProtoMessage {
/// lines
l:string (required);
m:[ubyte];
n:_proto._test._ProtoMessage.OtherMessage;
n:proto.test.ProtoMessage_.OtherMessage;
o:[string];
z:_proto._test.ImportedMessage;
z:proto.test.ImportedMessage;
}
namespace _proto._test._ProtoMessage;
namespace proto.test.ProtoMessage_;
table OtherMessage {
a:double;