• R/O
  • SSH
  • HTTPS

nina: Commit


Commit MetaInfo

Revisión667 (tree)
Tiempo2017-07-17 06:23:48
Autory-moriguchi

Log Message

supports ignoring case

Cambiar Resumen

Diferencia incremental

--- nina/java/translator/net/morilib/nina/translate/AbstractNinaTranslator.java (revision 666)
+++ nina/java/translator/net/morilib/nina/translate/AbstractNinaTranslator.java (revision 667)
@@ -744,6 +744,8 @@
744744 env.bind("LINECONT", tmp);
745745 env.bind("USE_IMMEDIATE_FN",
746746 q.isOptionDefined("useImmediateFunction") ? "t" : "");
747+ env.bind("IGNORE_CASE",
748+ q.isOptionDefined("ignoreCase") ? "t" : "");
747749
748750 if("prompt".equals(q.getOption("main"))) {
749751 env.bind("PUTPROMPT", "true");
--- nina/java/translator/net/morilib/nina/translate/nina_template.dfa.cs.sh (revision 666)
+++ nina/java/translator/net/morilib/nina/translate/nina_template.dfa.cs.sh (revision 667)
@@ -315,6 +315,11 @@
315315 }
316316 EOF
317317
318+ if [ -n "$IGNORE_CASE" ]; then
319+ ignorecase='System.Char.ToUpper((char)c)'
320+ else
321+ ignorecase='c'
322+ fi
318323 if [ -n "$3" ]; then
319324 elif [ "$COMMENT" = "shell" ]; then
320325 cat << EOF
@@ -323,8 +328,12 @@
323328 int c;
324329
325330 c = ReadFromStream();
326- if(COMMENT && c == ${sq}${COMMENTHEADER}${sq})
331+ if(!COMMENT)
327332 {
333+ return c;
334+ }
335+ else if(c == ${sq}${COMMENTHEADER}${sq})
336+ {
328337 while((c = ReadFromStream()) >= 0)
329338 {
330339 if(c == '\n')
@@ -336,7 +345,7 @@
336345 }
337346 else
338347 {
339- return c;
348+ return $ignorecase;
340349 }
341350 }
342351 EOF
@@ -351,7 +360,7 @@
351360 {
352361 c = __unreadcomment;
353362 __unreadcomment = -2;
354- return c;
363+ return $ignorecase;
355364 }
356365 else if(!COMMENT)
357366 {
@@ -407,7 +416,7 @@
407416 }
408417 else
409418 {
410- return c;
419+ return $ignorecase;
411420 }
412421 }
413422 EOF
@@ -416,7 +425,8 @@
416425 cat << EOF
417426 int ReadComment0()
418427 {
419- return ReadFromStream();
428+ int c = ReadFromStream();
429+ return $ignorecase;
420430 }
421431 EOF
422432 _putcom
--- nina/java/translator/net/morilib/nina/translate/nina_template.dfa.java.sh (revision 666)
+++ nina/java/translator/net/morilib/nina/translate/nina_template.dfa.java.sh (revision 667)
@@ -302,6 +302,11 @@
302302 }
303303 EOF
304304
305+ if [ -n "$IGNORE_CASE" ]; then
306+ ignorecase='Character.toUpperCase(c)'
307+ else
308+ ignorecase='c'
309+ fi
305310 if [ -n "$3" ]; then
306311 elif [ "$COMMENT" = "shell" ]; then
307312 cat << EOF
@@ -309,7 +314,9 @@
309314 int c;
310315
311316 c = readFromStream();
312- if(COMMENT && c == ${sq}${COMMENTHEADER}${sq}) {
317+ if(!COMMENT) {
318+ return c;
319+ } else if(c == ${sq}${COMMENTHEADER}${sq}) {
313320 while((c = readFromStream()) >= 0) {
314321 if(c == '\n') {
315322 break;
@@ -317,7 +324,7 @@
317324 }
318325 return c;
319326 } else {
320- return c;
327+ return $ignorecase;
321328 }
322329 }
323330 EOF
@@ -330,7 +337,7 @@
330337 if(__unreadcomment >= -1) {
331338 c = __unreadcomment;
332339 __unreadcomment = -2;
333- return c;
340+ return $ignorecase;
334341 } else if(!COMMENT) {
335342 return readFromStream();
336343 } else if((c = readFromStream()) == '/') {
@@ -368,7 +375,7 @@
368375 __unreadcomment = -1;
369376 return '/';
370377 } else {
371- return c;
378+ return $ignorecase;
372379 }
373380 }
374381 EOF
@@ -376,7 +383,8 @@
376383 else
377384 cat << EOF
378385 int readComment0() $tre {
379- return readFromStream();
386+ int c = readFromStream();
387+ return $ignorecase;
380388 }
381389 EOF
382390 _putcom
--- nina/java/translator/net/morilib/nina/translate/nina_template.dfa.js.sub1.sh (revision 666)
+++ nina/java/translator/net/morilib/nina/translate/nina_template.dfa.js.sub1.sh (revision 667)
@@ -227,6 +227,23 @@
227227 cat field
228228 if [ -z "$LEXER" ]; then
229229 _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
230247 if [ "$COMMENT" = "shell" ]; then
231248 cat << EOF
232249 ${CLASSNAME}.prototype._readComment0 = function(rd) {
@@ -233,7 +250,9 @@
233250 var c;
234251
235252 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)) {
237256 while((c = this._readFromStream(rd)) !== null) {
238257 if(c === '\n'.charCodeAt(0)) {
239258 break;
@@ -241,7 +260,7 @@
241260 }
242261 return c;
243262 } else {
244- return c;
263+ return $ignorecase;
245264 }
246265 };
247266 EOF
@@ -254,7 +273,7 @@
254273 if(this.__unreadcomment === null || this.__unreadcomment >= 0) {
255274 c = this.__unreadcomment;
256275 this.__unreadcomment = -2;
257- return c;
276+ return $ignorecase;
258277 } else if(!this.COMMENT) {
259278 return this._readFromStream(rd);
260279 } else if((c = this._readFromStream(rd)) == '/'.charCodeAt(0)) {
@@ -292,7 +311,7 @@
292311 this.__unreadcomment = null;
293312 return '/'.charCodeAt(0);
294313 } else {
295- return c;
314+ return $ignorecase;
296315 }
297316 };
298317 EOF
@@ -300,7 +319,8 @@
300319 else
301320 cat << EOF
302321 ${CLASSNAME}.prototype._readComment0 = function(rd) {
303- return this._readFromStream(rd);
322+ var c = this._readFromStream(rd);
323+ return $ignorecase;
304324 };
305325 EOF
306326 _putcom
Show on old repository browser