code: public static boolean[] updateRanges(boolean[] range, GrammarRules grammar) {
      boolean[] res = Arrays.copyOf(range, range.length);
      for (GrammarRuleRecord r : grammar) {
        if (0 == r.getRuleNumber()) {
          continue;
        }
        res = updateRanges(res, r.getRuleIntervals());
      }
      return res;
    }
docs: Updating the coverage ranges.
  
  @param range the global range array.
  @param grammar The grammar (i.e. set of rules) used for this update.
  
  @return an updated array.