Revisión | 667 (tree) |
---|---|
Tiempo | 2017-07-17 06:23:48 |
Autor | y-moriguchi |
supports ignoring case
@@ -744,6 +744,8 @@ | ||
744 | 744 | env.bind("LINECONT", tmp); |
745 | 745 | env.bind("USE_IMMEDIATE_FN", |
746 | 746 | q.isOptionDefined("useImmediateFunction") ? "t" : ""); |
747 | + env.bind("IGNORE_CASE", | |
748 | + q.isOptionDefined("ignoreCase") ? "t" : ""); | |
747 | 749 | |
748 | 750 | if("prompt".equals(q.getOption("main"))) { |
749 | 751 | env.bind("PUTPROMPT", "true"); |
@@ -315,6 +315,11 @@ | ||
315 | 315 | } |
316 | 316 | EOF |
317 | 317 | |
318 | + if [ -n "$IGNORE_CASE" ]; then | |
319 | + ignorecase='System.Char.ToUpper((char)c)' | |
320 | + else | |
321 | + ignorecase='c' | |
322 | + fi | |
318 | 323 | if [ -n "$3" ]; then |
319 | 324 | elif [ "$COMMENT" = "shell" ]; then |
320 | 325 | cat << EOF |
@@ -323,8 +328,12 @@ | ||
323 | 328 | int c; |
324 | 329 | |
325 | 330 | c = ReadFromStream(); |
326 | - if(COMMENT && c == ${sq}${COMMENTHEADER}${sq}) | |
331 | + if(!COMMENT) | |
327 | 332 | { |
333 | + return c; | |
334 | + } | |
335 | + else if(c == ${sq}${COMMENTHEADER}${sq}) | |
336 | + { | |
328 | 337 | while((c = ReadFromStream()) >= 0) |
329 | 338 | { |
330 | 339 | if(c == '\n') |
@@ -336,7 +345,7 @@ | ||
336 | 345 | } |
337 | 346 | else |
338 | 347 | { |
339 | - return c; | |
348 | + return $ignorecase; | |
340 | 349 | } |
341 | 350 | } |
342 | 351 | EOF |
@@ -351,7 +360,7 @@ | ||
351 | 360 | { |
352 | 361 | c = __unreadcomment; |
353 | 362 | __unreadcomment = -2; |
354 | - return c; | |
363 | + return $ignorecase; | |
355 | 364 | } |
356 | 365 | else if(!COMMENT) |
357 | 366 | { |
@@ -407,7 +416,7 @@ | ||
407 | 416 | } |
408 | 417 | else |
409 | 418 | { |
410 | - return c; | |
419 | + return $ignorecase; | |
411 | 420 | } |
412 | 421 | } |
413 | 422 | EOF |
@@ -416,7 +425,8 @@ | ||
416 | 425 | cat << EOF |
417 | 426 | int ReadComment0() |
418 | 427 | { |
419 | - return ReadFromStream(); | |
428 | + int c = ReadFromStream(); | |
429 | + return $ignorecase; | |
420 | 430 | } |
421 | 431 | EOF |
422 | 432 | _putcom |
@@ -302,6 +302,11 @@ | ||
302 | 302 | } |
303 | 303 | EOF |
304 | 304 | |
305 | + if [ -n "$IGNORE_CASE" ]; then | |
306 | + ignorecase='Character.toUpperCase(c)' | |
307 | + else | |
308 | + ignorecase='c' | |
309 | + fi | |
305 | 310 | if [ -n "$3" ]; then |
306 | 311 | elif [ "$COMMENT" = "shell" ]; then |
307 | 312 | cat << EOF |
@@ -309,7 +314,9 @@ | ||
309 | 314 | int c; |
310 | 315 | |
311 | 316 | c = readFromStream(); |
312 | - if(COMMENT && c == ${sq}${COMMENTHEADER}${sq}) { | |
317 | + if(!COMMENT) { | |
318 | + return c; | |
319 | + } else if(c == ${sq}${COMMENTHEADER}${sq}) { | |
313 | 320 | while((c = readFromStream()) >= 0) { |
314 | 321 | if(c == '\n') { |
315 | 322 | break; |
@@ -317,7 +324,7 @@ | ||
317 | 324 | } |
318 | 325 | return c; |
319 | 326 | } else { |
320 | - return c; | |
327 | + return $ignorecase; | |
321 | 328 | } |
322 | 329 | } |
323 | 330 | EOF |
@@ -330,7 +337,7 @@ | ||
330 | 337 | if(__unreadcomment >= -1) { |
331 | 338 | c = __unreadcomment; |
332 | 339 | __unreadcomment = -2; |
333 | - return c; | |
340 | + return $ignorecase; | |
334 | 341 | } else if(!COMMENT) { |
335 | 342 | return readFromStream(); |
336 | 343 | } else if((c = readFromStream()) == '/') { |
@@ -368,7 +375,7 @@ | ||
368 | 375 | __unreadcomment = -1; |
369 | 376 | return '/'; |
370 | 377 | } else { |
371 | - return c; | |
378 | + return $ignorecase; | |
372 | 379 | } |
373 | 380 | } |
374 | 381 | EOF |
@@ -376,7 +383,8 @@ | ||
376 | 383 | else |
377 | 384 | cat << EOF |
378 | 385 | int readComment0() $tre { |
379 | - return readFromStream(); | |
386 | + int c = readFromStream(); | |
387 | + return $ignorecase; | |
380 | 388 | } |
381 | 389 | EOF |
382 | 390 | _putcom |
@@ -227,6 +227,23 @@ | ||
227 | 227 | cat field |
228 | 228 | if [ -z "$LEXER" ]; then |
229 | 229 | _putreadf _read1l |
230 | + if [ -n "$IGNORE_CASE" ]; then | |
231 | + cat << EOF | |
232 | +${CLASSNAME}.prototype.toUpperCase = function(c) { | |
233 | + var r; | |
234 | + if(c === null || c === undefined) { | |
235 | + return c; | |
236 | + } else { | |
237 | + r = String.fromCharCode(c); | |
238 | + r = r.toUpperCase(r); | |
239 | + return r.charCodeAt(0); | |
240 | + } | |
241 | +}; | |
242 | +EOF | |
243 | + ignorecase='this.toUpperCase(c)' | |
244 | + else | |
245 | + ignorecase='c' | |
246 | + fi | |
230 | 247 | if [ "$COMMENT" = "shell" ]; then |
231 | 248 | cat << EOF |
232 | 249 | ${CLASSNAME}.prototype._readComment0 = function(rd) { |
@@ -233,7 +250,9 @@ | ||
233 | 250 | var c; |
234 | 251 | |
235 | 252 | c = this._readFromStream(rd); |
236 | - if(this.COMMENT && c === ${sq}${COMMENTHEADER}${sq}.charCodeAt(0)) { | |
253 | + if(!this.COMMENT) { | |
254 | + return c; | |
255 | + } else if(c === ${sq}${COMMENTHEADER}${sq}.charCodeAt(0)) { | |
237 | 256 | while((c = this._readFromStream(rd)) !== null) { |
238 | 257 | if(c === '\n'.charCodeAt(0)) { |
239 | 258 | break; |
@@ -241,7 +260,7 @@ | ||
241 | 260 | } |
242 | 261 | return c; |
243 | 262 | } else { |
244 | - return c; | |
263 | + return $ignorecase; | |
245 | 264 | } |
246 | 265 | }; |
247 | 266 | EOF |
@@ -254,7 +273,7 @@ | ||
254 | 273 | if(this.__unreadcomment === null || this.__unreadcomment >= 0) { |
255 | 274 | c = this.__unreadcomment; |
256 | 275 | this.__unreadcomment = -2; |
257 | - return c; | |
276 | + return $ignorecase; | |
258 | 277 | } else if(!this.COMMENT) { |
259 | 278 | return this._readFromStream(rd); |
260 | 279 | } else if((c = this._readFromStream(rd)) == '/'.charCodeAt(0)) { |
@@ -292,7 +311,7 @@ | ||
292 | 311 | this.__unreadcomment = null; |
293 | 312 | return '/'.charCodeAt(0); |
294 | 313 | } else { |
295 | - return c; | |
314 | + return $ignorecase; | |
296 | 315 | } |
297 | 316 | }; |
298 | 317 | EOF |
@@ -300,7 +319,8 @@ | ||
300 | 319 | else |
301 | 320 | cat << EOF |
302 | 321 | ${CLASSNAME}.prototype._readComment0 = function(rd) { |
303 | - return this._readFromStream(rd); | |
322 | + var c = this._readFromStream(rd); | |
323 | + return $ignorecase; | |
304 | 324 | }; |
305 | 325 | EOF |
306 | 326 | _putcom |