- public static long resolveConstant(String exp, BenkoBoxDescription bbd) {
- long ret = 0;
- for(StringTokenizer st = new StringTokenizer(exp, ",");
- st.hasMoreTokens();) {
- String s = st.nextToken();
- long val = 0;
- if (s.indexOf('=') != -1) {
- val = Long.parseLong(s.substring(s.indexOf('=')+1));
- s = s.substring(0, s.indexOf('='));
- }
- Constant c = bbd.getConstant(s);
- if (c==null) {
- if (s.startsWith("0x")) ret |= Long.parseLong(s, 16);
- else ret |= Long.parseLong(s);
- } else {
- ret |= c.setbits;
- ret &= ~c.clearbits;
- // FIXME: val
- }
- }
- return ret;
- }