Get rules representing parameters.
        The return rules can be different from parameters, in case parameter define multiple rules in one class.
        :param rules: For which rules get the representation.
        :return: List of rules representing parameters.
        :raise NotRuleException: If the parameter doesn't inherit from Rule.
        :raise RuleException: If the syntax of the rule is invalid.

def _get(self, *rules):
        # type: (Iterable[Type[Rule]]) -> Generator[Type[Rule]]
        """
        Get rules representing parameters.
        The return rules can be different from parameters, in case parameter define multiple rules in one class.
        :param rules: For which rules get the representation.
        :return: List of rules representing parameters.
        :raise NotRuleException: If the parameter doesn't inherit from Rule.
        :raise RuleException: If the syntax of the rule is invalid.
        """
        for rule in rules:
            if not inspect.isclass(rule) or not issubclass(rule, Rule):
                raise NotRuleException(rule)
            for r in self._split_rules(rule):
                yield self._find_rule(r)