question: 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 ( ) ) ; } }
target:  Reads the next ruleid from the definition, skipping over any leading spaces.