org.eclipse.xtext.serializer.analysis
Class SyntacticSequencerPDAProvider

java.lang.Object
  extended by org.eclipse.xtext.serializer.analysis.SyntacticSequencerPDAProvider
All Implemented Interfaces:
ISyntacticSequencerPDAProvider

public class SyntacticSequencerPDAProvider
extends java.lang.Object
implements ISyntacticSequencerPDAProvider

Author:
Moritz Eysholdt - Initial contribution and API

Nested Class Summary
protected static class SyntacticSequencerPDAProvider.NavigablePDA
           
protected static class SyntacticSequencerPDAProvider.SynAbsorberState
           
protected static class SyntacticSequencerPDAProvider.SynEmitterState
           
protected static class SyntacticSequencerPDAProvider.SynNavigable
           
protected static class SyntacticSequencerPDAProvider.SynState
           
protected static class SyntacticSequencerPDAProvider.SynTransition
           
 
Nested classes/interfaces inherited from interface org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider
ISyntacticSequencerPDAProvider.GetGrammarElement, ISyntacticSequencerPDAProvider.ISynAbsorberState, ISyntacticSequencerPDAProvider.ISynEmitterState, ISyntacticSequencerPDAProvider.ISynFollowerOwner, ISyntacticSequencerPDAProvider.ISynNavigable, ISyntacticSequencerPDAProvider.ISynState, ISyntacticSequencerPDAProvider.ISynTransition, ISyntacticSequencerPDAProvider.SynAbsorberNfaAdapter, ISyntacticSequencerPDAProvider.SynPredicates, ISyntacticSequencerPDAProvider.SynStateType
 
Field Summary
protected  java.util.Map<Pair<org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.EClass>,ISyntacticSequencerPDAProvider.ISynAbsorberState> cache
           
protected  ContextTypePDAProvider pdaProvider
           
 
Constructor Summary
SyntacticSequencerPDAProvider()
           
 
Method Summary
protected  boolean canReachAbsorber(ISerState from, ISerState to, java.util.Set<ISerState> visited)
           
protected  void collectFollowingAbsorberStates(ISerState state, boolean collect, java.util.Set<ISerState> visited, java.util.Set<ISerState> absorber)
           
protected  SyntacticSequencerPDAProvider.SynAbsorberState createAbsorberState(ISerState state, java.util.Map<ISerState,SyntacticSequencerPDAProvider.SynAbsorberState> absorbers, java.util.Map<SyntacticSequencerPDAProvider.SynAbsorberState,java.util.Map<ISerState,SyntacticSequencerPDAProvider.SynState>> emitters, org.eclipse.emf.ecore.EObject context, org.eclipse.emf.ecore.EClass eClass)
           
protected  SyntacticSequencerPDAProvider.SynAbsorberState createAbsorberState(ISyntacticSequencerPDAProvider.SynStateType type, AbstractElement element, org.eclipse.emf.ecore.EObject context, org.eclipse.emf.ecore.EClass eClass)
           
protected  SyntacticSequencerPDAProvider.SynState createEmitterState(ISyntacticSequencerPDAProvider.SynStateType type, AbstractElement element, SyntacticSequencerPDAProvider.SynAbsorberState target)
           
protected  java.util.List<ISyntacticSequencerPDAProvider.ISynState> createEmitterStates(ISerState from, ISerState to, SyntacticSequencerPDAProvider.SynAbsorberState target, java.util.Map<ISerState,SyntacticSequencerPDAProvider.SynState> emitters)
           
protected  SyntacticSequencerPDAProvider.SynTransition createTransition(SyntacticSequencerPDAProvider.SynAbsorberState source, SyntacticSequencerPDAProvider.SynAbsorberState target)
           
 ISyntacticSequencerPDAProvider.ISynAbsorberState getPDA(org.eclipse.emf.ecore.EObject context, org.eclipse.emf.ecore.EClass type)
           
protected  ISyntacticSequencerPDAProvider.SynStateType getType(ISerState state)
           
protected  boolean isMandatoryAbsorber(AbstractElement ele)
           
protected  boolean isOptionalAbsorber(AbstractElement ele)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cache

protected java.util.Map<Pair<org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.EClass>,ISyntacticSequencerPDAProvider.ISynAbsorberState> cache

pdaProvider

@Inject
protected ContextTypePDAProvider pdaProvider
Constructor Detail

SyntacticSequencerPDAProvider

public SyntacticSequencerPDAProvider()
Method Detail

canReachAbsorber

protected boolean canReachAbsorber(ISerState from,
                                   ISerState to,
                                   java.util.Set<ISerState> visited)

collectFollowingAbsorberStates

protected void collectFollowingAbsorberStates(ISerState state,
                                              boolean collect,
                                              java.util.Set<ISerState> visited,
                                              java.util.Set<ISerState> absorber)

createAbsorberState

protected SyntacticSequencerPDAProvider.SynAbsorberState createAbsorberState(ISerState state,
                                                                             java.util.Map<ISerState,SyntacticSequencerPDAProvider.SynAbsorberState> absorbers,
                                                                             java.util.Map<SyntacticSequencerPDAProvider.SynAbsorberState,java.util.Map<ISerState,SyntacticSequencerPDAProvider.SynState>> emitters,
                                                                             org.eclipse.emf.ecore.EObject context,
                                                                             org.eclipse.emf.ecore.EClass eClass)

createAbsorberState

protected SyntacticSequencerPDAProvider.SynAbsorberState createAbsorberState(ISyntacticSequencerPDAProvider.SynStateType type,
                                                                             AbstractElement element,
                                                                             org.eclipse.emf.ecore.EObject context,
                                                                             org.eclipse.emf.ecore.EClass eClass)

createEmitterState

protected SyntacticSequencerPDAProvider.SynState createEmitterState(ISyntacticSequencerPDAProvider.SynStateType type,
                                                                    AbstractElement element,
                                                                    SyntacticSequencerPDAProvider.SynAbsorberState target)

createEmitterStates

protected java.util.List<ISyntacticSequencerPDAProvider.ISynState> createEmitterStates(ISerState from,
                                                                                       ISerState to,
                                                                                       SyntacticSequencerPDAProvider.SynAbsorberState target,
                                                                                       java.util.Map<ISerState,SyntacticSequencerPDAProvider.SynState> emitters)

createTransition

protected SyntacticSequencerPDAProvider.SynTransition createTransition(SyntacticSequencerPDAProvider.SynAbsorberState source,
                                                                       SyntacticSequencerPDAProvider.SynAbsorberState target)

getPDA

public ISyntacticSequencerPDAProvider.ISynAbsorberState getPDA(org.eclipse.emf.ecore.EObject context,
                                                               org.eclipse.emf.ecore.EClass type)
Specified by:
getPDA in interface ISyntacticSequencerPDAProvider

getType

protected ISyntacticSequencerPDAProvider.SynStateType getType(ISerState state)

isMandatoryAbsorber

protected boolean isMandatoryAbsorber(AbstractElement ele)

isOptionalAbsorber

protected boolean isOptionalAbsorber(AbstractElement ele)