org.eclipse.xtext.formatting.impl
Class ElementMatcherProvider.TransitionMatcher<T extends IElementMatcherProvider.IElementPattern>

java.lang.Object
  extended by org.eclipse.xtext.formatting.impl.ElementMatcherProvider.TransitionMatcher<T>
All Implemented Interfaces:
IElementMatcherProvider.IElementMatcher<T>, IElementMatcherProvider.IElementMatcherExtension<T>
Enclosing class:
ElementMatcherProvider

protected static class ElementMatcherProvider.TransitionMatcher<T extends IElementMatcherProvider.IElementPattern>
extends java.lang.Object
implements IElementMatcherProvider.IElementMatcherExtension<T>


Field Summary
protected  IGrammarAccess grammar
           
protected  MatcherState lastState
           
protected  MatcherNFAProvider nfaProvider
           
protected  java.util.Stack<MatcherState> ruleCallStack
           
 
Constructor Summary
ElementMatcherProvider.TransitionMatcher(IGrammarAccess grammar, MatcherNFAProvider nfaProvider, java.lang.Iterable<T> patterns)
           
 
Method Summary
protected  java.util.Set<MatcherState> findRuleCallsTo(AbstractRule rule, java.util.Set<AbstractRule> visited)
           
 Pair<java.lang.Integer,RuleCall> findTopmostRuleCall(com.google.common.base.Predicate<RuleCall> predicate)
           
protected  Pair<java.util.List<MatcherTransition>,java.util.List<MatcherState>> findTransitionPath(MatcherState from, AbstractElement to, boolean returning, boolean canReturn, java.util.Set<Pair<java.lang.Boolean,MatcherState>> visited)
           
protected  java.util.List<MatcherTransition> findTransitionsToToken(MatcherState from, java.util.Set<MatcherState> targets, boolean returning, boolean canReturn, java.util.Set<MatcherState> visited)
           
 java.util.Collection<T> finish()
           
protected  java.util.Set<MatcherState> getAllStates(AbstractElement element)
           
 IGrammarAccess getGrammar()
           
 MatcherNFAProvider getNfaProvider()
           
 void init(ParserRule rule)
           
protected  void installAfter(IElementMatcherProvider.IAfterElement pattern)
           
protected  void installAllPatterns(java.lang.Iterable<T> patterns)
           
protected  void installBefore(IElementMatcherProvider.IBeforeElement pattern)
           
protected  void installBetween(IElementMatcherProvider.IBetweenElements pattern)
           
protected  void installBetween(IElementMatcherProvider.IBetweenElements pattern, AbstractElement loopCenter)
           
protected  void installBetween(IElementMatcherProvider.IBetweenElements pattern, AbstractElement first, AbstractElement second)
           
 java.util.Collection<T> matchNext(AbstractElement nextElement)
           
protected  java.util.Collection<T> patternsForTransition(Pair<java.util.List<MatcherTransition>,java.util.List<MatcherState>> transition)
           
protected  java.util.Collection<T> patternsForTwoStates(MatcherState first, MatcherState second)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

grammar

protected IGrammarAccess grammar

lastState

protected MatcherState lastState

nfaProvider

protected MatcherNFAProvider nfaProvider

ruleCallStack

protected java.util.Stack<MatcherState> ruleCallStack
Constructor Detail

ElementMatcherProvider.TransitionMatcher

public ElementMatcherProvider.TransitionMatcher(IGrammarAccess grammar,
                                                MatcherNFAProvider nfaProvider,
                                                java.lang.Iterable<T> patterns)
Method Detail

findRuleCallsTo

protected java.util.Set<MatcherState> findRuleCallsTo(AbstractRule rule,
                                                      java.util.Set<AbstractRule> visited)

findTopmostRuleCall

public Pair<java.lang.Integer,RuleCall> findTopmostRuleCall(com.google.common.base.Predicate<RuleCall> predicate)
Specified by:
findTopmostRuleCall in interface IElementMatcherProvider.IElementMatcher<T extends IElementMatcherProvider.IElementPattern>

findTransitionPath

protected Pair<java.util.List<MatcherTransition>,java.util.List<MatcherState>> findTransitionPath(MatcherState from,
                                                                                                  AbstractElement to,
                                                                                                  boolean returning,
                                                                                                  boolean canReturn,
                                                                                                  java.util.Set<Pair<java.lang.Boolean,MatcherState>> visited)

findTransitionsToToken

protected java.util.List<MatcherTransition> findTransitionsToToken(MatcherState from,
                                                                   java.util.Set<MatcherState> targets,
                                                                   boolean returning,
                                                                   boolean canReturn,
                                                                   java.util.Set<MatcherState> visited)

finish

public java.util.Collection<T> finish()
Specified by:
finish in interface IElementMatcherProvider.IElementMatcher<T extends IElementMatcherProvider.IElementPattern>

getAllStates

protected java.util.Set<MatcherState> getAllStates(AbstractElement element)

getGrammar

public IGrammarAccess getGrammar()

getNfaProvider

public MatcherNFAProvider getNfaProvider()

installAfter

protected void installAfter(IElementMatcherProvider.IAfterElement pattern)

installAllPatterns

protected void installAllPatterns(java.lang.Iterable<T> patterns)

installBefore

protected void installBefore(IElementMatcherProvider.IBeforeElement pattern)

installBetween

protected void installBetween(IElementMatcherProvider.IBetweenElements pattern)

installBetween

protected void installBetween(IElementMatcherProvider.IBetweenElements pattern,
                              AbstractElement loopCenter)

installBetween

protected void installBetween(IElementMatcherProvider.IBetweenElements pattern,
                              AbstractElement first,
                              AbstractElement second)

init

public void init(ParserRule rule)
Specified by:
init in interface IElementMatcherProvider.IElementMatcherExtension<T extends IElementMatcherProvider.IElementPattern>
Since:
2.0

matchNext

public java.util.Collection<T> matchNext(AbstractElement nextElement)
Specified by:
matchNext in interface IElementMatcherProvider.IElementMatcher<T extends IElementMatcherProvider.IElementPattern>

patternsForTransition

protected java.util.Collection<T> patternsForTransition(Pair<java.util.List<MatcherTransition>,java.util.List<MatcherState>> transition)

patternsForTwoStates

protected java.util.Collection<T> patternsForTwoStates(MatcherState first,
                                                       MatcherState second)