@@ -18,19 +18,15 @@ var tokenize = require("./tokenize"),
18
18
19
19
var base10Re = / ^ [ 1 - 9 ] [ 0 - 9 ] * $ / ,
20
20
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 ] + $ / ,
23
23
base8Re = / ^ 0 [ 0 - 7 ] + $ / ,
24
24
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 ] + ) ? $ / ,
26
26
nameRe = / ^ [ a - z A - Z _ ] [ a - z A - Z _ 0 - 9 ] * $ / ,
27
27
typeRefRe = / ^ (?: \. ? [ a - z A - Z _ ] [ a - z A - Z _ 0 - 9 ] * ) + $ / ,
28
28
fqTypeRefRe = / ^ (?: \. [ a - z A - Z ] [ a - z A - Z _ 0 - 9 ] * ) + $ / ;
29
29
30
- function lower ( token ) {
31
- return token === null ? null : token . toLowerCase ( ) ;
32
- }
33
-
34
30
var camelCaseRe = / _ ( [ a - z ] ) (? = [ a - z ] | $ ) / g;
35
31
36
32
function camelCase ( str ) {
@@ -118,14 +114,14 @@ function parse(source, root, options) {
118
114
119
115
function readValue ( acceptTypeRef ) {
120
116
var token = next ( ) ;
121
- switch ( lower ( token ) ) {
117
+ switch ( token ) {
122
118
case "'" :
123
119
case "\"" :
124
120
push ( token ) ;
125
121
return readString ( ) ;
126
- case "true" :
122
+ case "true" : case "TRUE" :
127
123
return true ;
128
- case "false" :
124
+ case "false" : case "FALSE" :
129
125
return false ;
130
126
}
131
127
try {
@@ -156,36 +152,34 @@ function parse(source, root, options) {
156
152
sign = - 1 ;
157
153
token = token . substring ( 1 ) ;
158
154
}
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 ;
163
158
case "0" : return 0 ;
164
159
}
165
160
if ( base10Re . test ( token ) )
166
161
return sign * parseInt ( token , 10 ) ;
167
- if ( base16Re . test ( tokenLower ) )
162
+ if ( base16Re . test ( token ) )
168
163
return sign * parseInt ( token , 16 ) ;
169
164
if ( base8Re . test ( token ) )
170
165
return sign * parseInt ( token , 8 ) ;
171
- if ( numberRe . test ( tokenLower ) )
166
+ if ( numberRe . test ( token ) )
172
167
return sign * parseFloat ( token ) ;
173
168
/* istanbul ignore next */
174
169
throw illegal ( token , "number" , insideTryCatch ) ;
175
170
}
176
171
177
172
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 ;
181
175
case "0" : return 0 ;
182
176
}
183
177
/* istanbul ignore next */
184
178
if ( token . charAt ( 0 ) === "-" && ! acceptNegative )
185
179
throw illegal ( token , "id" ) ;
186
180
if ( base10NegRe . test ( token ) )
187
181
return parseInt ( token , 10 ) ;
188
- if ( base16NegRe . test ( tokenLower ) )
182
+ if ( base16NegRe . test ( token ) )
189
183
return parseInt ( token , 16 ) ;
190
184
/* istanbul ignore else */
191
185
if ( base8NegRe . test ( token ) )
@@ -228,7 +222,7 @@ function parse(source, root, options) {
228
222
229
223
function parseSyntax ( ) {
230
224
skip ( "=" ) ;
231
- syntax = lower ( readString ( ) ) ;
225
+ syntax = readString ( ) ;
232
226
isProto3 = syntax === "proto3" ;
233
227
/* istanbul ignore next */
234
228
if ( ! isProto3 && syntax !== "proto2" )
@@ -273,23 +267,22 @@ function parse(source, root, options) {
273
267
type . filename = parse . filename ;
274
268
if ( skip ( "{" , true ) ) {
275
269
while ( ( token = next ( ) ) !== "}" ) {
276
- var tokenLower = lower ( token ) ;
277
270
if ( parseCommon ( type , token ) )
278
271
continue ;
279
- switch ( tokenLower ) {
272
+ switch ( token ) {
280
273
281
274
case "map" :
282
- parseMapField ( type , tokenLower ) ;
275
+ parseMapField ( type , token ) ;
283
276
break ;
284
277
285
278
case "required" :
286
279
case "optional" :
287
280
case "repeated" :
288
- parseField ( type , tokenLower ) ;
281
+ parseField ( type , token ) ;
289
282
break ;
290
283
291
284
case "oneof" :
292
- parseOneOf ( type , tokenLower ) ;
285
+ parseOneOf ( type , token ) ;
293
286
break ;
294
287
295
288
case "extensions" :
@@ -363,7 +356,7 @@ function parse(source, root, options) {
363
356
type . filename = field . filename = parse . filename ;
364
357
skip ( "{" ) ;
365
358
while ( ( token = next ( ) ) !== "}" ) {
366
- switch ( token = lower ( token ) ) {
359
+ switch ( token ) {
367
360
case "option" :
368
361
parseOption ( type , token ) ;
369
362
skip ( ";" ) ;
@@ -456,7 +449,7 @@ function parse(source, root, options) {
456
449
enm . filename = parse . filename ;
457
450
if ( skip ( "{" , true ) ) {
458
451
while ( ( token = next ( ) ) !== "}" ) {
459
- if ( lower ( token ) === "option" ) {
452
+ if ( token === "option" ) {
460
453
parseOption ( enm , token ) ;
461
454
skip ( ";" ) ;
462
455
} else
@@ -552,14 +545,13 @@ function parse(source, root, options) {
552
545
service . filename = parse . filename ;
553
546
if ( skip ( "{" , true ) ) {
554
547
while ( ( token = next ( ) ) !== "}" ) {
555
- var tokenLower = lower ( token ) ;
556
- switch ( tokenLower ) {
548
+ switch ( token ) {
557
549
case "option" :
558
- parseOption ( service , tokenLower ) ;
550
+ parseOption ( service , token ) ;
559
551
skip ( ";" ) ;
560
552
break ;
561
553
case "rpc" :
562
- parseMethod ( service , tokenLower ) ;
554
+ parseMethod ( service , token ) ;
563
555
break ;
564
556
565
557
/* istanbul ignore next */
@@ -604,10 +596,9 @@ function parse(source, root, options) {
604
596
method . filename = parse . filename ;
605
597
if ( skip ( "{" , true ) ) {
606
598
while ( ( token = next ( ) ) !== "}" ) {
607
- var tokenLower = lower ( token ) ;
608
- switch ( tokenLower ) {
599
+ switch ( token ) {
609
600
case "option" :
610
- parseOption ( method , tokenLower ) ;
601
+ parseOption ( method , token ) ;
611
602
skip ( ";" ) ;
612
603
break ;
613
604
@@ -634,12 +625,11 @@ function parse(source, root, options) {
634
625
635
626
if ( skip ( "{" , true ) ) {
636
627
while ( ( token = next ( ) ) !== "}" ) {
637
- var tokenLower = lower ( token ) ;
638
- switch ( tokenLower ) {
628
+ switch ( token ) {
639
629
case "required" :
640
630
case "repeated" :
641
631
case "optional" :
642
- parseField ( parent , tokenLower , reference ) ;
632
+ parseField ( parent , token , reference ) ;
643
633
break ;
644
634
default :
645
635
/* istanbul ignore next */
@@ -657,8 +647,7 @@ function parse(source, root, options) {
657
647
658
648
var token ;
659
649
while ( ( token = next ( ) ) !== null ) {
660
- var tokenLower = lower ( token ) ;
661
- switch ( tokenLower ) {
650
+ switch ( token ) {
662
651
663
652
case "package" :
664
653
/* istanbul ignore next */
0 commit comments