我想知道用什么语言编写“proto compiler”(用于从Java,Python或c ++生成源文件的编译器)?它可能是混合语言吗?
任何帮助都将不胜感激。
先谢谢 贺
答案 0 :(得分:1)
似乎是in C++。还有关于Java和Python API的文档,但那些似乎不包含编译器本身(至少在任何一种情况下我都看不到任何显然是编译器的东西,尽管我没有花很多时间寻找它。)
那就是说,我几乎想投票结束 - 对于大多数实际来说,用于实现编译器的语言基本上是一个琐事问题,与实际使用无关。但是,有一个完全合理的例外:如果您要下载和修改编译器,那么了解您需要使用的语言可能非常有用。
答案 1 :(得分:0)
protoc编译器是用C或C ++编写的(无论如何都是原生程序)。
当我想在java文件中处理原型文件时,我
我使用protoc命令将它们转换为协议缓冲区文件,即
protoc protofile.proto --descriptor_set_out = OutputFile
读取新的协议缓冲区文件(它的FileDescriptorSet)并使用它
一个过于复杂的例子是
中的 compileProto 方法 由于protoc命令和选项可以存储在属性文件中,所以因为选项而被编译。
注意: getFileDescriptor 方法读取新创建的协议缓冲区