code: @Override
      public String parse(final String threshold, final RangeConfig tc) throws RangeException {
  
          if (threshold == null) {
              throw new RangeException("Range can't be null");
          }
  
          Stage currentStage = this;
  
          String parsedThreshold = threshold;
  
          boolean stageParsed;
  
          while (parsedThreshold.length() != 0) {
              stageParsed = false;
              for (String transitionName : currentStage.getTransitionNames()) {
                  Stage transition = currentStage.getTransition(transitionName);
                  if (transition.canParse(parsedThreshold)) {
                      parsedThreshold = transition.parse(parsedThreshold, tc);
                      currentStage = transition;
                      stageParsed = true;
                      break;
                  }
              }
  
              if (!stageParsed) {
                  throw new InvalidRangeSyntaxException(currentStage, parsedThreshold, threshold);
              }
          }
  
          if (!currentStage.isLeaf()) {
              throw new PrematureEndOfRangeException(currentStage, threshold);
          }
  
          return parsedThreshold;
      }
docs: Method parse.
  @param threshold String
  @param tc RangeConfig
  @return String
  @throws RangeException