changes and data/eval files for new evaluations
[IRC.git] / Robust / src / ClassLibrary / SSJava / Character.java
1 @LATTICE("VALUE")
2 public class Character {
3
4   public static int digit(char ch, int radix) {
5     if (ch>='0'&&ch<='9')
6       return ch-'0';
7     else if (ch>='a'&&ch<='z') {
8       int val=(ch-'a')+10;
9       if (val<radix)
10         return val;
11     } else if (ch>='A'&&ch<='Z') {
12       int val=(ch-'A')+10;
13       if (val<radix)
14         return val;
15     }
16     return -1;
17   }
18
19   public static boolean isDigit(char ch) {
20     // TODO This is a temparory implementation, there are other groups of digits
21     // besides '0' ~ '9'
22     if (ch>='0'&&ch<='9')
23       return true;
24     else
25       return false;
26   }
27
28   @LOC("VALUE") char value;
29
30   public Character(char c) {
31     value = c;
32   }
33
34   public Character(Character c) {
35     value = c.value;
36   }
37
38   @LATTICE("OUT<THIS,RETURNLOC=OUT,THISLOC=THIS,GLOBALLOC=OUT")
39   public String toString() {
40     return ""+value;
41   }
42
43   public static boolean isWhitespace(char character) {
44     boolean returnValue;
45     if ( (character == '\t') ||
46          (character == '\n') ||
47          (character == ' ') ||
48          (character == '\u000C') ||
49          (character == '\u001C') ||
50          (character == '\u001D') ||
51          (character == '\u001E') ||
52          (character == '\u001F')) {
53       returnValue = true;
54     } else {
55       returnValue = false;
56     }
57     return returnValue;
58   }
59
60   public static final int MIN_RADIX = 2;
61   public static final int MAX_RADIX = 36;
62
63   public static char forDigit(int digit, int radix) {
64     if ((digit >= radix) || (digit < 0)) {
65       return '\0';
66     }
67     if ((radix < Character.MIN_RADIX) || (radix > Character.MAX_RADIX)) {
68       return '\0';
69     }
70     if (digit < 10) {
71       return (char)('0' + digit);
72     }
73     return (char)('a' - 10 + digit);
74   }
75 }