@@ -18,19 +18,15 @@ var tokenize = require("./tokenize"),
1818
1919var base10Re = / ^ [ 1 - 9 ] [ 0 - 9 ] * $ / ,
2020 base10NegRe = / ^ - ? [ 1 - 9 ] [ 0 - 9 ] * $ / ,
21- base16Re = / ^ 0 [ x ] [ 0 - 9 a - f ] + $ / ,
22- base16NegRe = / ^ - ? 0 [ x ] [ 0 - 9 a - f ] + $ / ,
21+ base16Re = / ^ 0 [ x ] [ 0 - 9 a - f A - F ] + $ / ,
22+ base16NegRe = / ^ - ? 0 [ x ] [ 0 - 9 a - f A - F ] + $ / ,
2323 base8Re = / ^ 0 [ 0 - 7 ] + $ / ,
2424 base8NegRe = / ^ - ? 0 [ 0 - 7 ] + $ / ,
25- numberRe = / ^ (? ! e ) [ 0 - 9 ] * (?: \. [ 0 - 9 ] * ) ? (?: [ e ] [ + - ] ? [ 0 - 9 ] + ) ? $ / ,
25+ numberRe = / ^ (? ! [ e E ] ) [ 0 - 9 ] * (?: \. [ 0 - 9 ] * ) ? (?: [ e E ] [ + - ] ? [ 0 - 9 ] + ) ? $ / ,
2626 nameRe = / ^ [ a - z A - Z _ ] [ a - z A - Z _ 0 - 9 ] * $ / ,
2727 typeRefRe = / ^ (?: \. ? [ a - z A - Z _ ] [ a - z A - Z _ 0 - 9 ] * ) + $ / ,
2828 fqTypeRefRe = / ^ (?: \. [ a - z A - Z ] [ a - z A - Z _ 0 - 9 ] * ) + $ / ;
2929
30- function lower ( token ) {
31- return token === null ? null : token . toLowerCase ( ) ;
32- }
33-
3430var camelCaseRe = / _ ( [ a - z ] ) (? = [ a - z ] | $ ) / g;
3531
3632function camelCase ( str ) {
@@ -118,14 +114,14 @@ function parse(source, root, options) {
118114
119115 function readValue ( acceptTypeRef ) {
120116 var token = next ( ) ;
121- switch ( lower ( token ) ) {
117+ switch ( token ) {
122118 case "'" :
123119 case "\"" :
124120 push ( token ) ;
125121 return readString ( ) ;
126- case "true" :
122+ case "true" : case "TRUE" :
127123 return true ;
128- case "false" :
124+ case "false" : case "FALSE" :
129125 return false ;
130126 }
131127 try {
@@ -156,36 +152,34 @@ function parse(source, root, options) {
156152 sign = - 1 ;
157153 token = token . substring ( 1 ) ;
158154 }
159- var tokenLower = lower ( token ) ;
160- switch ( tokenLower ) {
161- case "inf" : return sign * Infinity ;
162- case "nan" : return NaN ;
155+ switch ( token ) {
156+ case "inf" : case "INF" : return sign * Infinity ;
157+ case "nan" : case "NaN" : case "NAN" : return NaN ;
163158 case "0" : return 0 ;
164159 }
165160 if ( base10Re . test ( token ) )
166161 return sign * parseInt ( token , 10 ) ;
167- if ( base16Re . test ( tokenLower ) )
162+ if ( base16Re . test ( token ) )
168163 return sign * parseInt ( token , 16 ) ;
169164 if ( base8Re . test ( token ) )
170165 return sign * parseInt ( token , 8 ) ;
171- if ( numberRe . test ( tokenLower ) )
166+ if ( numberRe . test ( token ) )
172167 return sign * parseFloat ( token ) ;
173168 /* istanbul ignore next */
174169 throw illegal ( token , "number" , insideTryCatch ) ;
175170 }
176171
177172 function parseId ( token , acceptNegative ) {
178- var tokenLower = lower ( token ) ;
179- switch ( tokenLower ) {
180- case "max" : return 536870911 ;
173+ switch ( token ) {
174+ case "max" : case "MAX" : return 536870911 ;
181175 case "0" : return 0 ;
182176 }
183177 /* istanbul ignore next */
184178 if ( token . charAt ( 0 ) === "-" && ! acceptNegative )
185179 throw illegal ( token , "id" ) ;
186180 if ( base10NegRe . test ( token ) )
187181 return parseInt ( token , 10 ) ;
188- if ( base16NegRe . test ( tokenLower ) )
182+ if ( base16NegRe . test ( token ) )
189183 return parseInt ( token , 16 ) ;
190184 /* istanbul ignore else */
191185 if ( base8NegRe . test ( token ) )
@@ -228,7 +222,7 @@ function parse(source, root, options) {
228222
229223 function parseSyntax ( ) {
230224 skip ( "=" ) ;
231- syntax = lower ( readString ( ) ) ;
225+ syntax = readString ( ) ;
232226 isProto3 = syntax === "proto3" ;
233227 /* istanbul ignore next */
234228 if ( ! isProto3 && syntax !== "proto2" )
@@ -273,23 +267,22 @@ function parse(source, root, options) {
273267 type . filename = parse . filename ;
274268 if ( skip ( "{" , true ) ) {
275269 while ( ( token = next ( ) ) !== "}" ) {
276- var tokenLower = lower ( token ) ;
277270 if ( parseCommon ( type , token ) )
278271 continue ;
279- switch ( tokenLower ) {
272+ switch ( token ) {
280273
281274 case "map" :
282- parseMapField ( type , tokenLower ) ;
275+ parseMapField ( type , token ) ;
283276 break ;
284277
285278 case "required" :
286279 case "optional" :
287280 case "repeated" :
288- parseField ( type , tokenLower ) ;
281+ parseField ( type , token ) ;
289282 break ;
290283
291284 case "oneof" :
292- parseOneOf ( type , tokenLower ) ;
285+ parseOneOf ( type , token ) ;
293286 break ;
294287
295288 case "extensions" :
@@ -363,7 +356,7 @@ function parse(source, root, options) {
363356 type . filename = field . filename = parse . filename ;
364357 skip ( "{" ) ;
365358 while ( ( token = next ( ) ) !== "}" ) {
366- switch ( token = lower ( token ) ) {
359+ switch ( token ) {
367360 case "option" :
368361 parseOption ( type , token ) ;
369362 skip ( ";" ) ;
@@ -456,7 +449,7 @@ function parse(source, root, options) {
456449 enm . filename = parse . filename ;
457450 if ( skip ( "{" , true ) ) {
458451 while ( ( token = next ( ) ) !== "}" ) {
459- if ( lower ( token ) === "option" ) {
452+ if ( token === "option" ) {
460453 parseOption ( enm , token ) ;
461454 skip ( ";" ) ;
462455 } else
@@ -552,14 +545,13 @@ function parse(source, root, options) {
552545 service . filename = parse . filename ;
553546 if ( skip ( "{" , true ) ) {
554547 while ( ( token = next ( ) ) !== "}" ) {
555- var tokenLower = lower ( token ) ;
556- switch ( tokenLower ) {
548+ switch ( token ) {
557549 case "option" :
558- parseOption ( service , tokenLower ) ;
550+ parseOption ( service , token ) ;
559551 skip ( ";" ) ;
560552 break ;
561553 case "rpc" :
562- parseMethod ( service , tokenLower ) ;
554+ parseMethod ( service , token ) ;
563555 break ;
564556
565557 /* istanbul ignore next */
@@ -604,10 +596,9 @@ function parse(source, root, options) {
604596 method . filename = parse . filename ;
605597 if ( skip ( "{" , true ) ) {
606598 while ( ( token = next ( ) ) !== "}" ) {
607- var tokenLower = lower ( token ) ;
608- switch ( tokenLower ) {
599+ switch ( token ) {
609600 case "option" :
610- parseOption ( method , tokenLower ) ;
601+ parseOption ( method , token ) ;
611602 skip ( ";" ) ;
612603 break ;
613604
@@ -634,12 +625,11 @@ function parse(source, root, options) {
634625
635626 if ( skip ( "{" , true ) ) {
636627 while ( ( token = next ( ) ) !== "}" ) {
637- var tokenLower = lower ( token ) ;
638- switch ( tokenLower ) {
628+ switch ( token ) {
639629 case "required" :
640630 case "repeated" :
641631 case "optional" :
642- parseField ( parent , tokenLower , reference ) ;
632+ parseField ( parent , token , reference ) ;
643633 break ;
644634 default :
645635 /* istanbul ignore next */
@@ -657,8 +647,7 @@ function parse(source, root, options) {
657647
658648 var token ;
659649 while ( ( token = next ( ) ) !== null ) {
660- var tokenLower = lower ( token ) ;
661- switch ( tokenLower ) {
650+ switch ( token ) {
662651
663652 case "package" :
664653 /* istanbul ignore next */
0 commit comments