[xtext] Improved performance of GrammarUtil.findRuleForName

Signed-off-by: Miro Spönemann <miro.spoenemann@itemis.de>
This commit is contained in:
Miro Spönemann 2015-05-11 14:28:10 +02:00
parent 11c2745905
commit e101883779

View file

@ -247,10 +247,15 @@ public class GrammarUtil {
public static AbstractRule findRuleForName(Grammar grammar, String ruleName) {
if (ruleName == null)
return null;
List<AbstractRule> rules = allRules(grammar);
for (AbstractRule abstractRule : rules) {
if (ruleName.equals(abstractRule.getName())) {
return abstractRule;
for (AbstractRule rule : grammar.getRules()) {
if (ruleName.equals(rule.getName())) {
return rule;
}
}
for (Grammar usedGrammar : grammar.getUsedGrammars()) {
AbstractRule rule = findRuleForName(usedGrammar, ruleName);
if (rule != null) {
return rule;
}
}
return null;