code: private BigInteger parseHexLiteral(Token input) {
  		String text = input.text;
  		// Start past 0x
  		for (int i = 2; i != text.length(); ++i) {
  			char c = text.charAt(i);
  			if(c != '_' && !isHexDigit(c)) {
  				syntaxError("invalid hex literal (invalid characters)", input);
  			}
  		}
  		// Remove "0x" and "_"
  		text = input.text.substring(2).replace("_", "");
  		return new BigInteger(text,16);
  	}
docs: Parse a token representing a hex literal, such as "0x
  
  @param input
  The token representing the byte value.
  @return