code: public Set<HeadedSyntacticCategory> getSubcategories(Set<String> featureValues) {
      Set<HeadedSyntacticCategory> subcategories = Sets.newHashSet();
      for (SyntacticCategory newSyntax : syntacticCategory.getSubcategories(featureValues)) {
        subcategories.add(new HeadedSyntacticCategory(newSyntax, semanticVariables, rootIndex));
      }
      return subcategories;
    }
docs: Gets all syntactic categories which can be formed by assigning values to the
  feature variables of this category. Returned categories may not be in canonical
  form.
  
  @param featureValues
  @return