code: def check_num(self, checks, radl):
          
  
          prefixes = {}
          for f in self.features:
              if not isinstance(f, Feature):
                  continue
              (prefix, sep, tail) = f.prop.partition(".")
              if not sep or prefix not in checks:
                  continue
              checks0 = checks[prefix]
              (num, sep, suffix) = tail.partition(".")
              try:
                  num = int(num)
              except:
                  raise RADLParseException(
                      "Invalid property name; expected an index.", line=f.line)
              if not sep or suffix not in checks0:
                  continue
              f._check(checks0[suffix], radl)
              if prefix not in prefixes:
                  prefixes[prefix] = set()
              prefixes[prefix].add(num)
  
          # Check consecutive indices for num properties.
          for prefix, nums in prefixes.items():
              if min(nums) != 0 or max(nums) != len(nums) - 1:
                  raise RADLParseException(
                      "Invalid indices values in properties '%s'" % prefix)
  
          return prefixes
docs: Check types, operators and units in features with numbers.
  
          Args:
  
          - checks(dict of dict of str:tuples): keys are property name prefixes, and the
            values are dict with keys are property name suffixes and values are iterable
            as in ``_check_feature``.
          - radl: passed to ``_check_feature``.