public abstract class AbstractPDAProvider<CTX> extends java.lang.Object implements IPDAProvider<CTX>
Modifier and Type | Class and Description |
---|---|
protected static class |
AbstractPDAProvider.PDAContext<CTX> |
protected static class |
AbstractPDAProvider.PDAState |
protected static class |
AbstractPDAProvider.RuleCallStackElement |
Constructor and Description |
---|
AbstractPDAProvider() |
Modifier and Type | Method and Description |
---|---|
protected abstract boolean |
canEnterRuleCall(INFAState<?,?> state) |
protected abstract boolean |
canPass(CTX context,
INFAState<?,?> state,
org.eclipse.emf.ecore.EClass constructedType) |
protected boolean |
canReachContextEnd(AbstractPDAProvider.PDAContext<CTX> context,
AbstractPDAProvider.RuleCallStackElement stack,
INFAState<?,?> fromNfa,
org.eclipse.emf.ecore.EClass constructedType,
boolean returning,
boolean canReturn,
java.util.Set<Pair<java.lang.Boolean,INFAState<?,?>>> visited) |
protected AbstractPDAProvider.PDAContext<CTX> |
createContext(CTX obj) |
protected AbstractPDAProvider.PDAState |
createState(AbstractPDAProvider.PDAContext<CTX> ctx,
AbstractPDAProvider.RuleCallStackElement stack,
INFAState<?,?> fromNfa,
org.eclipse.emf.ecore.EClass constructedType,
boolean returning,
boolean canReturn,
java.util.Set<Pair<java.lang.Boolean,INFAState<?,?>>> visited) |
protected AbstractPDAProvider.PDAState |
createState(IPDAState.PDAStateType type,
AbstractElement element) |
protected org.eclipse.emf.ecore.EClass |
getConstructedType(AbstractElement ele) |
protected abstract java.util.List<INFAState<?,?>> |
getFollowers(CTX context,
INFAState<?,?> state,
boolean returning,
boolean canReturn) |
IPDAState |
getPDA(CTX context) |
protected abstract java.util.List<INFAState<?,?>> |
getStartFollowers(CTX context) |
protected AbstractPDAProvider.PDAState |
getState(AbstractPDAProvider.PDAContext<CTX> ctx,
INFAState<?,?> state,
boolean returning) |
protected abstract boolean |
isFinalState(CTX context,
INFAState<?,?> state,
boolean returning,
boolean canReturn) |
protected AbstractPDAProvider.RuleCallStackElement |
stackPush(AbstractPDAProvider.RuleCallStackElement stack,
INFAState<?,?> value) |
protected abstract boolean canEnterRuleCall(INFAState<?,?> state)
protected abstract boolean canPass(CTX context, INFAState<?,?> state, org.eclipse.emf.ecore.EClass constructedType)
protected org.eclipse.emf.ecore.EClass getConstructedType(AbstractElement ele)
protected boolean canReachContextEnd(AbstractPDAProvider.PDAContext<CTX> context, AbstractPDAProvider.RuleCallStackElement stack, INFAState<?,?> fromNfa, org.eclipse.emf.ecore.EClass constructedType, boolean returning, boolean canReturn, java.util.Set<Pair<java.lang.Boolean,INFAState<?,?>>> visited)
protected AbstractPDAProvider.PDAContext<CTX> createContext(CTX obj)
protected AbstractPDAProvider.PDAState createState(IPDAState.PDAStateType type, AbstractElement element)
protected AbstractPDAProvider.PDAState createState(AbstractPDAProvider.PDAContext<CTX> ctx, AbstractPDAProvider.RuleCallStackElement stack, INFAState<?,?> fromNfa, org.eclipse.emf.ecore.EClass constructedType, boolean returning, boolean canReturn, java.util.Set<Pair<java.lang.Boolean,INFAState<?,?>>> visited)
public IPDAState getPDA(CTX context)
getPDA
in interface IPDAProvider<CTX>
protected abstract java.util.List<INFAState<?,?>> getStartFollowers(CTX context)
protected AbstractPDAProvider.PDAState getState(AbstractPDAProvider.PDAContext<CTX> ctx, INFAState<?,?> state, boolean returning)
protected abstract boolean isFinalState(CTX context, INFAState<?,?> state, boolean returning, boolean canReturn)
protected abstract java.util.List<INFAState<?,?>> getFollowers(CTX context, INFAState<?,?> state, boolean returning, boolean canReturn)
protected AbstractPDAProvider.RuleCallStackElement stackPush(AbstractPDAProvider.RuleCallStackElement stack, INFAState<?,?> value)