以下のブクマを見て、
はてなブックマーク - HINのブックマーク / 2007年10月11日
たしかに、Perl とか Ruby は 1_000_000 とか書けるなあ。
JS も出来たら便利だなあと思いました。
ということで SpiderMonkey で _ に対応してみる。
こんな感じで書き換えてみた。
Index: jsscan.c =================================================================== RCS file: /cvsroot/mozilla/js/src/jsscan.c,v retrieving revision 3.138 diff -r3.138 jsscan.c 1334,1335c1334,1338 < } else if (JS7_ISDEC(c)) { < radix = 8; --- > } else { > if (c == '_') c = GetChar(ts); > if (JS7_ISDEC(c)) { > radix = 8; > } 1339c1342,1343 < while (JS7_ISHEX(c)) { --- > while (JS7_ISHEX(c) || c == '_') { > if (c == '_') c = GetChar(ts); 1367,1369c1371,1376 < ADD_TO_TOKENBUF(c); < c = GetChar(ts); < } while (JS7_ISDEC(c)); --- > if (c == '_') c = GetChar(ts); > else { > ADD_TO_TOKENBUF(c); > c = GetChar(ts); > } > } while (JS7_ISDEC(c) || c =='_'); 1385,1387c1392,1397 < ADD_TO_TOKENBUF(c); < c = GetChar(ts); < } while (JS7_ISDEC(c)); --- > if (c == '_') c = GetChar(ts); > else { > ADD_TO_TOKENBUF(c); > c = GetChar(ts); > } > } while (JS7_ISDEC(c) || c == '_');
実行はこんな感じ
$ js js> 1_000_000 1000000 js> 1_000_000.000_000_1 1000000.0000001
できたー
実は、 3, 4 年振りに C を書きました。
とりあえず gdb の使い方を覚えたい今日この頃。