froto
froto copied to clipboard
parser feature-parity with Google protoc
- [ ] Load and parse files from import statements. See https://developers.google.com/protocol-buffers/docs/proto3#importing-definitions
- [ ] Verify message identifiers used as field types are actually defined and enum values used in option value assignment are actually defined. Note these must handle forward references.
- [ ] For option assignment, verify type of literal matches type of option's message field definition.
- [ ] Predefine standard options and enums, or load these from an external "descriptor.proto" file. For standard option definitions, see https://github.com/google/protobuf/blob/master/src/google/protobuf/descriptor.proto#L251
- [ ] Generate errors with context including file/line/column when any of the above validations fail (note: this might be better than what protoc reports).
- [ ] Record enough source information in the AST to generate SourceCodeInfo (see https://github.com/google/protobuf/blob/master/src/google/protobuf/descriptor.proto#L84)
- [ ] Record any other information in the AST needed to generate a complete FileDescriptorProto and FileDescriptorSet.
Ref https://github.com/grpc/grpc/pull/12471 – would be nice to avoid C# code generation in the F# example.