summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Objects/unicodetype_db.h218
-rw-r--r--Tools/unicode/makeunicodedata.py5
2 files changed, 114 insertions, 109 deletions
diff --git a/Objects/unicodetype_db.h b/Objects/unicodetype_db.h
index f7a65f2..e0e5b48 100644
--- a/Objects/unicodetype_db.h
+++ b/Objects/unicodetype_db.h
@@ -1818,7 +1818,7 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
{
switch (ch) {
case 0x0F33:
- return (double) -1/2;
+ return (double) -1.0/2.0;
case 0x0030:
case 0x0660:
case 0x06F0:
@@ -1868,7 +1868,7 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x1D7EC:
case 0x1D7F6:
#endif
- return (double) 0;
+ return (double) 0.0;
case 0x0031:
case 0x00B9:
case 0x0661:
@@ -1951,7 +1951,7 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x1D7F7:
case 0x2092A:
#endif
- return (double) 1;
+ return (double) 1.0;
case 0x00BD:
case 0x0D74:
case 0x0F2A:
@@ -1961,13 +1961,13 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x10175:
case 0x10176:
#endif
- return (double) 1/2;
+ return (double) 1.0/2.0;
case 0x2153:
#ifdef Py_UNICODE_WIDE
case 0x1245A:
case 0x1245D:
#endif
- return (double) 1/3;
+ return (double) 1.0/3.0;
case 0x00BC:
case 0x0D73:
#ifdef Py_UNICODE_WIDE
@@ -1975,19 +1975,19 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x12460:
case 0x12462:
#endif
- return (double) 1/4;
+ return (double) 1.0/4.0;
case 0x2155:
- return (double) 1/5;
+ return (double) 1.0/5.0;
case 0x2159:
#ifdef Py_UNICODE_WIDE
case 0x12461:
#endif
- return (double) 1/6;
+ return (double) 1.0/6.0;
case 0x215B:
#ifdef Py_UNICODE_WIDE
case 0x1245F:
#endif
- return (double) 1/8;
+ return (double) 1.0/8.0;
case 0x0BF0:
case 0x0D70:
case 0x1372:
@@ -2024,7 +2024,7 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x10A44:
case 0x1D369:
#endif
- return (double) 10;
+ return (double) 10.0;
case 0x0BF1:
case 0x0D71:
case 0x137B:
@@ -2042,7 +2042,7 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x10919:
case 0x10A46:
#endif
- return (double) 100;
+ return (double) 100.0;
case 0x0BF2:
case 0x0D72:
case 0x216F:
@@ -2058,7 +2058,7 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x10171:
case 0x10A47:
#endif
- return (double) 1000;
+ return (double) 1000.0;
case 0x137C:
case 0x2182:
case 0x4E07:
@@ -2067,75 +2067,75 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x1012B:
case 0x10155:
#endif
- return (double) 10000;
+ return (double) 10000.0;
case 0x2188:
- return (double) 100000;
+ return (double) 100000.0;
case 0x4EBF:
case 0x5104:
- return (double) 100000000;
+ return (double) 100000000.0;
case 0x5146:
- return (double) 1000000000000;
+ return (double) 1000000000000.0;
case 0x216A:
case 0x217A:
case 0x246A:
case 0x247E:
case 0x2492:
case 0x24EB:
- return (double) 11;
+ return (double) 11.0;
case 0x0F2F:
- return (double) 11/2;
+ return (double) 11.0/2.0;
case 0x216B:
case 0x217B:
case 0x246B:
case 0x247F:
case 0x2493:
case 0x24EC:
- return (double) 12;
+ return (double) 12.0;
case 0x246C:
case 0x2480:
case 0x2494:
case 0x24ED:
- return (double) 13;
+ return (double) 13.0;
case 0x0F30:
- return (double) 13/2;
+ return (double) 13.0/2.0;
case 0x246D:
case 0x2481:
case 0x2495:
case 0x24EE:
- return (double) 14;
+ return (double) 14.0;
case 0x246E:
case 0x2482:
case 0x2496:
case 0x24EF:
- return (double) 15;
+ return (double) 15.0;
case 0x0F31:
- return (double) 15/2;
+ return (double) 15.0/2.0;
case 0x09F9:
case 0x246F:
case 0x2483:
case 0x2497:
case 0x24F0:
- return (double) 16;
+ return (double) 16.0;
case 0x16EE:
case 0x2470:
case 0x2484:
case 0x2498:
case 0x24F1:
- return (double) 17;
+ return (double) 17.0;
case 0x0F32:
- return (double) 17/2;
+ return (double) 17.0/2.0;
case 0x16EF:
case 0x2471:
case 0x2485:
case 0x2499:
case 0x24F2:
- return (double) 18;
+ return (double) 18.0;
case 0x16F0:
case 0x2472:
case 0x2486:
case 0x249A:
case 0x24F3:
- return (double) 19;
+ return (double) 19.0;
case 0x0032:
case 0x00B2:
case 0x0662:
@@ -2222,16 +2222,16 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x1D7F8:
case 0x22390:
#endif
- return (double) 2;
+ return (double) 2.0;
case 0x2154:
#ifdef Py_UNICODE_WIDE
case 0x10177:
case 0x1245B:
case 0x1245E:
#endif
- return (double) 2/3;
+ return (double) 2.0/3.0;
case 0x2156:
- return (double) 2/5;
+ return (double) 2.0/5.0;
case 0x1373:
case 0x2473:
case 0x2487:
@@ -2247,37 +2247,37 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x10A45:
case 0x1D36A:
#endif
- return (double) 20;
+ return (double) 20.0;
#ifdef Py_UNICODE_WIDE
case 0x1011A:
- return (double) 200;
+ return (double) 200.0;
#endif
#ifdef Py_UNICODE_WIDE
case 0x10123:
- return (double) 2000;
+ return (double) 2000.0;
#endif
#ifdef Py_UNICODE_WIDE
case 0x1012C:
- return (double) 20000;
+ return (double) 20000.0;
#endif
case 0x3251:
- return (double) 21;
+ return (double) 21.0;
case 0x3252:
- return (double) 22;
+ return (double) 22.0;
case 0x3253:
- return (double) 23;
+ return (double) 23.0;
case 0x3254:
- return (double) 24;
+ return (double) 24.0;
case 0x3255:
- return (double) 25;
+ return (double) 25.0;
case 0x3256:
- return (double) 26;
+ return (double) 26.0;
case 0x3257:
- return (double) 27;
+ return (double) 27.0;
case 0x3258:
- return (double) 28;
+ return (double) 28.0;
case 0x3259:
- return (double) 29;
+ return (double) 29.0;
case 0x0033:
case 0x00B3:
case 0x0663:
@@ -2366,19 +2366,19 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x22998:
case 0x23B1B:
#endif
- return (double) 3;
+ return (double) 3.0;
case 0x0F2B:
- return (double) 3/2;
+ return (double) 3.0/2.0;
case 0x00BE:
case 0x0D75:
#ifdef Py_UNICODE_WIDE
case 0x10178:
#endif
- return (double) 3/4;
+ return (double) 3.0/4.0;
case 0x2157:
- return (double) 3/5;
+ return (double) 3.0/5.0;
case 0x215C:
- return (double) 3/8;
+ return (double) 3.0/8.0;
case 0x1374:
case 0x303A:
case 0x325A:
@@ -2389,38 +2389,38 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x1D36B:
case 0x20983:
#endif
- return (double) 30;
+ return (double) 30.0;
#ifdef Py_UNICODE_WIDE
case 0x1011B:
case 0x1016B:
- return (double) 300;
+ return (double) 300.0;
#endif
#ifdef Py_UNICODE_WIDE
case 0x10124:
- return (double) 3000;
+ return (double) 3000.0;
#endif
#ifdef Py_UNICODE_WIDE
case 0x1012D:
- return (double) 30000;
+ return (double) 30000.0;
#endif
case 0x325B:
- return (double) 31;
+ return (double) 31.0;
case 0x325C:
- return (double) 32;
+ return (double) 32.0;
case 0x325D:
- return (double) 33;
+ return (double) 33.0;
case 0x325E:
- return (double) 34;
+ return (double) 34.0;
case 0x325F:
- return (double) 35;
+ return (double) 35.0;
case 0x32B1:
- return (double) 36;
+ return (double) 36.0;
case 0x32B2:
- return (double) 37;
+ return (double) 37.0;
case 0x32B3:
- return (double) 38;
+ return (double) 38.0;
case 0x32B4:
- return (double) 39;
+ return (double) 39.0;
case 0x0034:
case 0x0664:
case 0x06F4:
@@ -2502,9 +2502,9 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x200E2:
case 0x2626D:
#endif
- return (double) 4;
+ return (double) 4.0;
case 0x2158:
- return (double) 4/5;
+ return (double) 4.0/5.0;
case 0x1375:
case 0x32B5:
case 0x534C:
@@ -2514,37 +2514,37 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x2098C:
case 0x2099C:
#endif
- return (double) 40;
+ return (double) 40.0;
#ifdef Py_UNICODE_WIDE
case 0x1011C:
- return (double) 400;
+ return (double) 400.0;
#endif
#ifdef Py_UNICODE_WIDE
case 0x10125:
- return (double) 4000;
+ return (double) 4000.0;
#endif
#ifdef Py_UNICODE_WIDE
case 0x1012E:
- return (double) 40000;
+ return (double) 40000.0;
#endif
case 0x32B6:
- return (double) 41;
+ return (double) 41.0;
case 0x32B7:
- return (double) 42;
+ return (double) 42.0;
case 0x32B8:
- return (double) 43;
+ return (double) 43.0;
case 0x32B9:
- return (double) 44;
+ return (double) 44.0;
case 0x32BA:
- return (double) 45;
+ return (double) 45.0;
case 0x32BB:
- return (double) 46;
+ return (double) 46.0;
case 0x32BC:
- return (double) 47;
+ return (double) 47.0;
case 0x32BD:
- return (double) 48;
+ return (double) 48.0;
case 0x32BE:
- return (double) 49;
+ return (double) 49.0;
case 0x0035:
case 0x0665:
case 0x06F5:
@@ -2624,16 +2624,16 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x1D7FB:
case 0x20121:
#endif
- return (double) 5;
+ return (double) 5.0;
case 0x0F2C:
- return (double) 5/2;
+ return (double) 5.0/2.0;
case 0x215A:
#ifdef Py_UNICODE_WIDE
case 0x1245C:
#endif
- return (double) 5/6;
+ return (double) 5.0/6.0;
case 0x215D:
- return (double) 5/8;
+ return (double) 5.0/8.0;
case 0x1376:
case 0x216C:
case 0x217C:
@@ -2652,7 +2652,7 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x10323:
case 0x1D36D:
#endif
- return (double) 50;
+ return (double) 50.0;
case 0x216E:
case 0x217E:
#ifdef Py_UNICODE_WIDE
@@ -2666,7 +2666,7 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x1016F:
case 0x10170:
#endif
- return (double) 500;
+ return (double) 500.0;
case 0x2181:
#ifdef Py_UNICODE_WIDE
case 0x10126:
@@ -2674,14 +2674,14 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x1014E:
case 0x10172:
#endif
- return (double) 5000;
+ return (double) 5000.0;
case 0x2187:
#ifdef Py_UNICODE_WIDE
case 0x1012F:
case 0x10147:
case 0x10156:
#endif
- return (double) 50000;
+ return (double) 50000.0;
case 0x0036:
case 0x0666:
case 0x06F6:
@@ -2753,24 +2753,24 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x1D7FC:
case 0x20AEA:
#endif
- return (double) 6;
+ return (double) 6.0;
case 0x1377:
#ifdef Py_UNICODE_WIDE
case 0x10115:
case 0x1D36E:
#endif
- return (double) 60;
+ return (double) 60.0;
#ifdef Py_UNICODE_WIDE
case 0x1011E:
- return (double) 600;
+ return (double) 600.0;
#endif
#ifdef Py_UNICODE_WIDE
case 0x10127:
- return (double) 6000;
+ return (double) 6000.0;
#endif
#ifdef Py_UNICODE_WIDE
case 0x10130:
- return (double) 60000;
+ return (double) 60000.0;
#endif
case 0x0037:
case 0x0667:
@@ -2842,28 +2842,28 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x1D7FD:
case 0x20001:
#endif
- return (double) 7;
+ return (double) 7.0;
case 0x0F2D:
- return (double) 7/2;
+ return (double) 7.0/2.0;
case 0x215E:
- return (double) 7/8;
+ return (double) 7.0/8.0;
case 0x1378:
#ifdef Py_UNICODE_WIDE
case 0x10116:
case 0x1D36F:
#endif
- return (double) 70;
+ return (double) 70.0;
#ifdef Py_UNICODE_WIDE
case 0x1011F:
- return (double) 700;
+ return (double) 700.0;
#endif
#ifdef Py_UNICODE_WIDE
case 0x10128:
- return (double) 7000;
+ return (double) 7000.0;
#endif
#ifdef Py_UNICODE_WIDE
case 0x10131:
- return (double) 70000;
+ return (double) 70000.0;
#endif
case 0x0038:
case 0x0668:
@@ -2931,24 +2931,24 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x1D7F4:
case 0x1D7FE:
#endif
- return (double) 8;
+ return (double) 8.0;
case 0x1379:
#ifdef Py_UNICODE_WIDE
case 0x10117:
case 0x1D370:
#endif
- return (double) 80;
+ return (double) 80.0;
#ifdef Py_UNICODE_WIDE
case 0x10120:
- return (double) 800;
+ return (double) 800.0;
#endif
#ifdef Py_UNICODE_WIDE
case 0x10129:
- return (double) 8000;
+ return (double) 8000.0;
#endif
#ifdef Py_UNICODE_WIDE
case 0x10132:
- return (double) 80000;
+ return (double) 80000.0;
#endif
case 0x0039:
case 0x0669:
@@ -3020,28 +3020,28 @@ double _PyUnicode_ToNumeric(Py_UNICODE ch)
case 0x1D7FF:
case 0x2F890:
#endif
- return (double) 9;
+ return (double) 9.0;
case 0x0F2E:
- return (double) 9/2;
+ return (double) 9.0/2.0;
case 0x137A:
#ifdef Py_UNICODE_WIDE
case 0x10118:
case 0x10341:
case 0x1D371:
#endif
- return (double) 90;
+ return (double) 90.0;
#ifdef Py_UNICODE_WIDE
case 0x10121:
case 0x1034A:
- return (double) 900;
+ return (double) 900.0;
#endif
#ifdef Py_UNICODE_WIDE
case 0x1012A:
- return (double) 9000;
+ return (double) 9000.0;
#endif
#ifdef Py_UNICODE_WIDE
case 0x10133:
- return (double) 90000;
+ return (double) 90000.0;
#endif
}
return -1.0;
diff --git a/Tools/unicode/makeunicodedata.py b/Tools/unicode/makeunicodedata.py
index 92268ad..330eb2d 100644
--- a/Tools/unicode/makeunicodedata.py
+++ b/Tools/unicode/makeunicodedata.py
@@ -468,6 +468,11 @@ def makeunicodetype(unicode, trace):
print >>fp, '{'
print >>fp, ' switch (ch) {'
for value, codepoints in numeric_items:
+ # Turn text into float literals
+ parts = value.split('/')
+ parts = [repr(float(part)) for part in parts]
+ value = '/'.join(parts)
+
haswide = False
hasnonewide = False
codepoints.sort()