看起来是典型的带lookahead的递归下降(recursive descent)。没啥特别的。proto语言的文档在:Language GuideC++版的parser在:protobuf/parser.cc at master · google/protobuf · GitHub