File tree Expand file tree Collapse file tree 3 files changed +50
-4
lines changed Expand file tree Collapse file tree 3 files changed +50
-4
lines changed Original file line number Diff line number Diff line change @@ -19,3 +19,6 @@ message outer {
1919 EnumAllowingAlias enum_field = 3 ;
2020 map <int32 , string > my_map = 4 ;
2121}
22+ service HelloService {
23+ rpc SayHello (HelloRequest ) returns (HelloResponse ) {};
24+ }
Original file line number Diff line number Diff line change @@ -237,6 +237,10 @@ func (p *Parser) parseRPC() (*RPC, error) {
237237 if err != nil {
238238 return nil , err
239239 }
240+ if p .permissive {
241+ // accept a block followed by semicolon. See https://github.com/yoheimuta/go-protoparser/issues/30.
242+ p .lex .ConsumeToken (scanner .TSEMICOLON )
243+ }
240244 case scanner .TSEMICOLON :
241245 break
242246 default :
Original file line number Diff line number Diff line change @@ -595,21 +595,60 @@ service SearchService {
595595 {
596596 name : "parsing a block followed by semicolon" ,
597597 input : `
598- service SearchService {};
598+ service SearchService {
599+ rpc Search (SearchRequest) returns (SearchResponse) {};
600+ };
599601` ,
600602 permissive : true ,
601603 wantService : & parser.Service {
602604 ServiceName : "SearchService" ,
605+ ServiceBody : []parser.Visitee {
606+ & parser.RPC {
607+ RPCName : "Search" ,
608+ RPCRequest : & parser.RPCRequest {
609+ MessageType : "SearchRequest" ,
610+ Meta : meta.Meta {
611+ Pos : meta.Position {
612+ Offset : 38 ,
613+ Line : 3 ,
614+ Column : 14 ,
615+ },
616+ },
617+ },
618+ RPCResponse : & parser.RPCResponse {
619+ MessageType : "SearchResponse" ,
620+ Meta : meta.Meta {
621+ Pos : meta.Position {
622+ Offset : 62 ,
623+ Line : 3 ,
624+ Column : 38 ,
625+ },
626+ },
627+ },
628+ Meta : meta.Meta {
629+ Pos : meta.Position {
630+ Offset : 27 ,
631+ Line : 3 ,
632+ Column : 3 ,
633+ },
634+ LastPos : meta.Position {
635+ Offset : 81 ,
636+ Line : 3 ,
637+ Column : 57 ,
638+ },
639+ },
640+ },
641+ },
603642 Meta : meta.Meta {
604643 Pos : meta.Position {
605644 Offset : 1 ,
606645 Line : 2 ,
607646 Column : 1 ,
608647 },
609648 LastPos : meta.Position {
610- Offset : 24 ,
611- Line : 2 ,
612- Column : 24 ,
649+ Offset : 83 ,
650+ Line : 4 ,
651+ Column : 1 ,
613652 },
614653 },
615654 },
You can’t perform that action at this time.
0 commit comments