fr.umlv.tatoo.runtime.tools
Class EnumParserLookaheadActivator<R extends Enum<R>,T extends Enum<T>,V extends Enum<V>>
java.lang.Object
fr.umlv.tatoo.runtime.tools.EnumParserLookaheadActivator<R,T,V>
- Type Parameters:
R
- type of rule (must be an enum).T
- type of terminal (must be an enum).V
- type of version (must be an enum).
- All Implemented Interfaces:
- RuleActivator<R>
public class EnumParserLookaheadActivator<R extends Enum<R>,T extends Enum<T>,V extends Enum<V>>
- extends Object
- implements RuleActivator<R>
A rule activator
that use parser lookaheads.
For each parser state, the implementation used the set of possible terminal
given by the parser to find the set corresponding rules to activate.
This implementation supposes that rules and terminals
are specified using enums. In order to improve speed
and memory usage, this activator internally
uses EnumSet
and EnumMap
.
This implementation pre-calculate all possibles rule set
for all parser state.
- Author:
- Remi Forax
- See Also:
HashParserLookaheadActivator
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
EnumParserLookaheadActivator
public EnumParserLookaheadActivator(Parser<T,?,?,V> parser,
EnumMap<T,EnumSet<R>> terminalMap,
Class<R> ruleClass,
EnumSet<R> unconditionalRules)
- Parameters:
parser
- a simple parserterminalMap
- a map that associate a set of rules that create a terminal.ruleClass
- the class of the rule.unconditionalRules
- the set of unconditional rules.
activeRules
public Iterable<? extends R> activeRules()
- Description copied from interface:
RuleActivator
- Determines the set of active rules. The method
activateRules
is called before the beginning of new token recognition.
- Specified by:
activeRules
in interface RuleActivator<R extends Enum<R>>
- Returns:
- new set of active rules
allRules
public Iterable<? extends R> allRules()
- Specified by:
allRules
in interface RuleActivator<R extends Enum<R>>