1455 (Character value:16r03B1) asUppercase |
1455 (Character value:16r03B1) asUppercase |
1456 " |
1456 " |
1457 ! |
1457 ! |
1458 |
1458 |
1459 digitValue |
1459 digitValue |
1460 "return my digitValue for any base (up to 37)" |
1460 "return my digitValue for any base (up to 37). |
|
1461 Notice: in case of an invalid character, |
|
1462 ST/X is not X3J20 conform: |
|
1463 ST/X raises an error, |
|
1464 X3J20 returns -1" |
1461 |
1465 |
1462 |code "{ Class: SmallInteger }" | |
1466 |code "{ Class: SmallInteger }" | |
1463 |
1467 |
1464 code := asciivalue. |
1468 code := asciivalue. |
1465 (code between:($0 codePoint) and:($9 codePoint)) ifTrue:[ |
1469 (code between:($0 codePoint) and:($9 codePoint)) ifTrue:[ |
1466 ^ code - $0 codePoint |
1470 ^ code - $0 codePoint |
1467 ]. |
1471 ]. |
1468 (code between:($a codePoint) and:($z codePoint)) ifTrue:[ |
1472 (code between:($a codePoint) and:($z codePoint)) ifTrue:[ |
1469 ^ code + (10 - $a codePoint) |
1473 ^ code + (10 - $a codePoint) |
1470 ]. |
1474 ]. |
1471 (code between:($A codePoint) and:($Z codePoint)) ifTrue:[ |
1475 (code between:($A codePoint) and:($Z codePoint)) ifTrue:[ |
1472 ^ code + (10 - $A codePoint) |
1476 ^ code + (10 - $A codePoint) |
1473 ]. |
1477 ]. |
1474 |
1478 |
1475 "remove error below for X3J20 conformance ... " |
1479 "remove error below for X3J20 conformance ... " |
1476 self error:'bad character'. |
1480 self error:'bad character'. |
1477 " " |
1481 " " |
1478 ^ -1 |
1482 ^ -1 |
|
1483 |
|
1484 "Modified (comment): / 21-07-2019 / 07:54:30 / Claus Gittinger" |
1479 ! |
1485 ! |
1480 |
1486 |
1481 digitValueRadix:base |
1487 digitValueRadix:base |
1482 "return my digitValue for base. |
1488 "return my digitValue for base. |
1483 Return nil, if it is not a valid character for that base" |
1489 Return nil, if it is not a valid character for that base" |