@@ -389,6 +389,9 @@ function parse(source, root, options) {
389389
390390 switch ( token ) {
391391
392+ case ";" :
393+ break ;
394+
392395 case "map" :
393396 parseMapField ( type , token ) ;
394397 break ;
@@ -523,6 +526,9 @@ function parse(source, root, options) {
523526 ifBlock ( type , function parseGroup_block ( token ) {
524527 switch ( token ) {
525528
529+ case ";" :
530+ break ;
531+
526532 case "option" :
527533 parseOption ( type , token ) ;
528534 skip ( ";" ) ;
@@ -647,6 +653,9 @@ function parse(source, root, options) {
647653 var enm = new Enum ( token ) ;
648654 ifBlock ( enm , function parseEnum_block ( token ) {
649655 switch ( token ) {
656+ case ";" :
657+ break ;
658+
650659 case "option" :
651660 parseOption ( enm , token ) ;
652661 skip ( ";" ) ;
@@ -840,6 +849,8 @@ function parse(source, root, options) {
840849 }
841850
842851 /* istanbul ignore else */
852+ if ( token === ";" )
853+ return ;
843854 if ( token === "rpc" )
844855 parseMethod ( service , token ) ;
845856 else
@@ -891,6 +902,8 @@ function parse(source, root, options) {
891902 ifBlock ( method , function parseMethod_block ( token ) {
892903
893904 /* istanbul ignore else */
905+ if ( token === ";" )
906+ return ;
894907 if ( token === "option" ) {
895908 parseOption ( method , token ) ;
896909 skip ( ";" ) ;
@@ -940,6 +953,9 @@ function parse(source, root, options) {
940953 while ( ( token = next ( ) ) !== null ) {
941954 switch ( token ) {
942955
956+ case ";" :
957+ break ;
958+
943959 case "package" :
944960
945961 /* istanbul ignore if */
0 commit comments