class SimpleRuleCounter {

    private void run(List<Language> languages) {
        List<Language> sortedLanguages = new ArrayList<>(languages);
        sortedLanguages.sort(comparing(Language::getName));
        for (Language language : sortedLanguages) {
            if (language.isVariant()) {
                continue;
            }
            JLanguageTool lt = new JLanguageTool(language);
            List<Rule> allRules = lt.getAllActiveRules();
            countForLanguage(allRules, language);
        }
    }

    private void countForLanguage(List<Rule> allRules, Language language) {
        int simpleCount = 0;
        for (Rule rule : allRules) {
            boolean isSimple = true;
            if (rule instanceof PatternRule) {
                PatternRule patternRule = (PatternRule) rule;
                List<PatternToken> tokens = patternRule.getPatternTokens();
                for (PatternToken token : tokens) {
                    if (!isSimple(token)) {
                        isSimple = false;
                        break;
                    }
                }
                if (isSimple) {
                    simpleCount++;
                    //System.out.println("Simple: " + patternRule.getId());
                    //System.out.println(patternRule.toXML());
                    //System.out.println("-------------------------");
                }
            }
        }
        float percent = (float)simpleCount / allRules.size() * 100;
        //System.out.printf(simpleCount + "/" + allRules.size() + " = %.0f%% for " + language + "\n", percent);
        System.out.printf("%.0f%% for " + language + "\n", percent);
    }

    private boolean isSimple(PatternToken t) {<FILL_FUNCTION_BODY>}

    public static void main(String[] args) {
        SimpleRuleCounter finder = new SimpleRuleCounter();
        finder.run(Languages.get());
        //finder.run(Collections.singletonList(new GermanyGerman()));
        //finder.run(Collections.singletonList(new English()));
    }
}

        return !(t.getNegation() || t.getPOSNegation() || t.hasAndGroup() || t.hasExceptionList() || 
                 t.hasNextException() || t.hasOrGroup() || t.isInflected() || t.isPOStagRegularExpression() ||
                 t.getPOStag() != null || t.isReferenceElement() || t.isSentenceStart() ||
                 t.getSkipNext() != 0);
    
<no_super_class>