public NumeralNode(String s,TreeNode stn) throws AbortException {
  super(NumeralKind,stn);
  this.image=s;
  String num=s.toLowerCase();
  int radix=10;
  if (num.charAt(0) == '\\') {
    if (num.charAt(1) == 'b') {
      radix=2;
    }
 else     if (num.charAt(1) == 'o') {
      radix=8;
    }
 else     if (num.charAt(1) == 'h') {
      radix=16;
    }
 else {
      throw new AbortException();
    }
    num=num.substring(2);
  }
  try {
    this.value=Integer.parseInt(num,radix);
  }
 catch (  NumberFormatException e) {
    this.bigValue=new BigInteger(s,radix);
  }
}

public NumeralNode ( String s , TreeNode stn ) throws AbortException { super ( NumeralKind , stn ) ; this . image = s ; String num = s . toLowerCase ( ) ; int radix = 10 ; if ( num . charAt ( 0 ) == '\\' ) { if ( num . charAt ( 1 ) == 'b' ) { radix = 2 ; } else if ( num . charAt ( 1 ) == 'o' ) { radix = 8 ; } else if ( num . charAt ( 1 ) == 'h' ) { radix = 16 ; } else { throw new AbortException ( ) ; } num = num . substring ( 2 ) ; } try { this . value = Integer . parseInt ( num , radix ) ; } catch ( NumberFormatException e ) { this . bigValue = new BigInteger ( s , radix ) ; } }
the following method was modified by ll on 20 jul 2011 to handle \ b , \ o , and \ h numbers .
