public class FAFactory extends Object
| Modifier and Type | Field and Description |
|---|---|
protected FAAnalysis |
analysis |
protected org.antlr.tool.Grammar |
g |
protected int |
newStateNumber |
protected boolean |
optimize |
protected Map<org.antlr.analysis.NFAState,FAState> |
processedStates |
protected Map<Integer,FAState> |
skippedStatesMap |
| Constructor and Description |
|---|
FAFactory(org.antlr.tool.Grammar g) |
| Modifier and Type | Method and Description |
|---|---|
FAState |
build(org.antlr.analysis.NFAState state) |
FAState |
buildNFA(org.antlr.analysis.NFAState state,
boolean optimize) |
void |
buildRecursiveSkipState(FAState parentState,
org.antlr.analysis.NFAState state,
Set<org.antlr.analysis.NFAState> currentPath,
List<Integer> skippedStates)
This method is used to skip redundant state following epsilon transition.
|
FAState |
buildRecursiveState(org.antlr.analysis.NFAState state,
Set<org.antlr.analysis.NFAState> currentPath) |
boolean |
canBeSkipped(org.antlr.analysis.NFAState state)
This method returns true if the state can be skipped, using several criteria.
|
FAState |
createRuleReferenceState(FAState parentState,
org.antlr.analysis.Transition transition,
List<Integer> skippedStates) |
org.antlr.analysis.NFAState |
endStateOfAlternative(org.antlr.analysis.NFAState alt) |
Map<Integer,FAState> |
getSkippedStatesMap() |
boolean |
hasMoreThanOneEpsilonTransitionOnly(org.antlr.analysis.NFAState state) |
boolean |
hasOneEpsilonTransitionOnly(org.antlr.analysis.NFAState state) |
boolean |
hasOneOrMoreEpsilonTransitionOnly(org.antlr.analysis.NFAState state) |
boolean |
isAlternativeTransitionEndingAtSameState(org.antlr.analysis.NFAState state) |
String |
nameOfExternalReferencedRule(org.antlr.analysis.Transition transition) |
boolean |
targetStateIsInAnotherRule(org.antlr.analysis.Transition transition) |
org.antlr.analysis.NFAState |
targetStateOfTransition(org.antlr.analysis.Transition transition) |
protected org.antlr.tool.Grammar g
protected boolean optimize
protected FAAnalysis analysis
protected int newStateNumber
public FAState buildNFA(org.antlr.analysis.NFAState state, boolean optimize)
public FAState build(org.antlr.analysis.NFAState state)
public FAState buildRecursiveState(org.antlr.analysis.NFAState state, Set<org.antlr.analysis.NFAState> currentPath)
public void buildRecursiveSkipState(FAState parentState, org.antlr.analysis.NFAState state, Set<org.antlr.analysis.NFAState> currentPath, List<Integer> skippedStates)
public boolean targetStateIsInAnotherRule(org.antlr.analysis.Transition transition)
public String nameOfExternalReferencedRule(org.antlr.analysis.Transition transition)
public FAState createRuleReferenceState(FAState parentState, org.antlr.analysis.Transition transition, List<Integer> skippedStates)
public org.antlr.analysis.NFAState targetStateOfTransition(org.antlr.analysis.Transition transition)
public boolean canBeSkipped(org.antlr.analysis.NFAState state)
public boolean hasOneEpsilonTransitionOnly(org.antlr.analysis.NFAState state)
public boolean hasOneOrMoreEpsilonTransitionOnly(org.antlr.analysis.NFAState state)
public boolean hasMoreThanOneEpsilonTransitionOnly(org.antlr.analysis.NFAState state)
public boolean isAlternativeTransitionEndingAtSameState(org.antlr.analysis.NFAState state)
public org.antlr.analysis.NFAState endStateOfAlternative(org.antlr.analysis.NFAState alt)
Copyright © 2013. All rights reserved.