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
           
static class SyntacticSequencerPDAProvider.SequencerNFAProvider
           
static class SyntacticSequencerPDAProvider.SequencerNFAState
           
static class SyntacticSequencerPDAProvider.SequencerNFATransition
           
static class SyntacticSequencerPDAProvider.SequencerPDAContext
           
static class SyntacticSequencerPDAProvider.SequencerPDAProvider
           
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<SyntacticSequencerPDAProvider.SequencerPDAContext,ISyntacticSequencerPDAProvider.ISynAbsorberState> cache
           
protected  SyntacticSequencerPDAProvider.SequencerPDAProvider pdaProvider
           
 
Constructor Summary
SyntacticSequencerPDAProvider()
           
 
Method Summary
protected  boolean canReachAbsorber(IPDAState from, IPDAState to, java.util.Set<IPDAState> visited)
           
protected  void collectFollowingAbsorberStates(IPDAState state, boolean collect, java.util.Set<IPDAState> visited, java.util.Set<IPDAState> absorber)
           
protected  SyntacticSequencerPDAProvider.SynAbsorberState createAbsorberState(IPDAState state, java.util.Map<IPDAState,SyntacticSequencerPDAProvider.SynAbsorberState> absorbers, java.util.Map<SyntacticSequencerPDAProvider.SynAbsorberState,java.util.Map<IPDAState,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(IPDAState from, IPDAState to, SyntacticSequencerPDAProvider.SynAbsorberState target, java.util.Map<IPDAState,SyntacticSequencerPDAProvider.SynState> emitters)
           
protected  SyntacticSequencerPDAProvider.SequencerNFAProvider createSequenceParserNFAProvider()
           
protected  SyntacticSequencerPDAProvider.SequencerPDAProvider createSequencerPDAProvider()
           
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(IPDAState 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<SyntacticSequencerPDAProvider.SequencerPDAContext,ISyntacticSequencerPDAProvider.ISynAbsorberState> cache

pdaProvider

protected SyntacticSequencerPDAProvider.SequencerPDAProvider pdaProvider
Constructor Detail

SyntacticSequencerPDAProvider

public SyntacticSequencerPDAProvider()
Method Detail

canReachAbsorber

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

collectFollowingAbsorberStates

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

createAbsorberState

protected SyntacticSequencerPDAProvider.SynAbsorberState createAbsorberState(IPDAState state,
                                                                             java.util.Map<IPDAState,SyntacticSequencerPDAProvider.SynAbsorberState> absorbers,
                                                                             java.util.Map<SyntacticSequencerPDAProvider.SynAbsorberState,java.util.Map<IPDAState,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(IPDAState from,
                                                                                       IPDAState to,
                                                                                       SyntacticSequencerPDAProvider.SynAbsorberState target,
                                                                                       java.util.Map<IPDAState,SyntacticSequencerPDAProvider.SynState> emitters)

createSequenceParserNFAProvider

protected SyntacticSequencerPDAProvider.SequencerNFAProvider createSequenceParserNFAProvider()

createSequencerPDAProvider

protected SyntacticSequencerPDAProvider.SequencerPDAProvider createSequencerPDAProvider()

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(IPDAState state)

isMandatoryAbsorber

protected boolean isMandatoryAbsorber(AbstractElement ele)

isOptionalAbsorber

protected boolean isOptionalAbsorber(AbstractElement ele)