static Integer readRuleID(final SubstringReader reader) throws DecodeException {
  int length=0;
  reader.skipWhitespaces();
  reader.mark();
  try {
    while (reader.read() != ' ') {
      length++;
    }
    if (length == 0) {
      throw DecodeException.error(ERR_ATTR_SYNTAX_RULE_ID_NO_VALUE1.get(reader.pos() - 1));
    }
    reader.reset();
    final String ruleID=reader.read(length);
    try {
      return Integer.valueOf(ruleID);
    }
 catch (    final NumberFormatException e) {
      throw DecodeException.error(ERR_ATTR_SYNTAX_RULE_ID_INVALID1.get(ruleID));
    }
  }
 catch (  final StringIndexOutOfBoundsException e) {
    throw DecodeException.error(ERR_ATTR_SYNTAX_TRUNCATED_VALUE1.get());
  }
}

static Integer readRuleID ( final SubstringReader reader ) throws DecodeException { int length = 0 ; reader . skipWhitespaces ( ) ; reader . mark ( ) ; try { while ( reader . read ( ) != ' ' ) { length ++ ; } if ( length == 0 ) { throw DecodeException . error ( ERR_ATTR_SYNTAX_RULE_ID_NO_VALUE1 . get ( reader . pos ( ) - 1 ) ) ; } reader . reset ( ) ; final String ruleID = reader . read ( length ) ; try { return Integer . valueOf ( ruleID ) ; } catch ( final NumberFormatException e ) { throw DecodeException . error ( ERR_ATTR_SYNTAX_RULE_ID_INVALID1 . get ( ruleID ) ) ; } } catch ( final StringIndexOutOfBoundsException e ) { throw DecodeException . error ( ERR_ATTR_SYNTAX_TRUNCATED_VALUE1 . get ( ) ) ; } }
reads the next ruleid from the definition , skipping over any leading spaces .
