if (mode.includeFactoredAlts()) { GrammarAST factoredAlt = translateLeftFactoredAlternative(alternative, factoredRule, variant, mode == DecisionFactorMode.COMBINED_FACTOR ? DecisionFactorMode.PARTIAL_FACTORED : DecisionFactorMode.FULL_FACTOR, includeFactoredElement); factoredAlternatives[i] = factoredAlt; } else if (unfactoredIntervals.isNil() && !mode.includeFactoredAlts()) { return false; if (unfactoredIntervals.isNil() && factoredIntervals.size() == alternatives.size() && mode.includeFactoredAlts() && !includeFactoredElement) { for (int i = 0; i < factoredAlternatives.length; i++) { GrammarAST translatedAlt = factoredAlternatives[i]; if (mode.includeFactoredAlts() && factoredIntervals.contains(i)) { boolean combineWithPrevious = i > 0 && factoredIntervals.contains(i - 1) && (!mode.includeUnfactoredAlts() || !unfactoredIntervals.contains(i - 1)); if (combineWithPrevious) {
assert !mode.includeFactoredAlts() || !mode.includeUnfactoredAlts(); if (!mode.includeFactoredAlts()) { return null; if (!mode.includeFactoredAlts()) { return null; String marker = mode.includeFactoredAlts() ? ATNSimulator.RULE_LF_VARIANT_MARKER : ATNSimulator.RULE_NOLF_VARIANT_MARKER; element.setText(element.getText() + marker + factoredRule); assert mode.includeFactoredAlts(); RuleRefAST factoredRuleRef = new RuleRefAST(adaptor.createToken(ANTLRParser.RULE_REF, factoredRule)); factoredRuleRef.setOption(SUPPRESS_ACCESSOR, adaptor.create(ANTLRParser.ID, "true")); if (mode.includeFactoredAlts()) { if (includeFactoredElement) { Object factoredElement = adaptor.deleteChild(translatedElement, 0);