public class LexerATNFactory extends ParserATNFactory
| Modifier and Type | Class and Description |
|---|---|
private static class |
LexerATNFactory.CharSetParseState |
ATNFactory.Handle| Modifier and Type | Field and Description |
|---|---|
protected java.util.Map<LexerAction,java.lang.Integer> |
actionToIndexMap
Maps from a
LexerAction object to the action index. |
org.stringtemplate.v4.STGroup |
codegenTemplates |
static java.util.Map<java.lang.String,java.lang.Integer> |
COMMON_CONSTANTS
Provides a map of names of predefined constants which are likely to
appear as the argument for lexer commands.
|
protected java.util.Map<java.lang.Integer,LexerAction> |
indexToActionMap
Maps from an action index to a
LexerAction object. |
private java.util.List<java.lang.String> |
ruleCommands |
atn, currentOuterAlt, currentRule, g, preventEpsilonClosureBlocks, preventEpsilonOptionalBlocks| Constructor and Description |
|---|
LexerATNFactory(LexerGrammar g) |
| Modifier and Type | Method and Description |
|---|---|
ATNFactory.Handle |
action(ActionAST action)
Build what amounts to an epsilon transition with an action.
|
protected ATNFactory.Handle |
action(GrammarAST node,
LexerAction lexerAction) |
ATNFactory.Handle |
action(java.lang.String action) |
private void |
applyPrevState(GrammarAST charSetAST,
IntervalSet set,
LexerATNFactory.CharSetParseState state) |
private LexerATNFactory.CharSetParseState |
applyPrevStateAndMoveToCodePoint(GrammarAST charSetAST,
IntervalSet set,
LexerATNFactory.CharSetParseState state,
int codePoint) |
private LexerATNFactory.CharSetParseState |
applyPrevStateAndMoveToProperty(GrammarAST charSetAST,
IntervalSet set,
LexerATNFactory.CharSetParseState state,
IntervalSet property) |
ATNFactory.Handle |
charSetLiteral(GrammarAST charSetAST)
[Aa\t ሴa-z\]\p{Letter}\-] char sets
|
private void |
checkCommands(java.lang.String command,
org.antlr.runtime.Token commandToken) |
protected boolean |
checkRange(GrammarAST leftNode,
GrammarAST rightNode,
int leftValue,
int rightValue) |
protected void |
checkSetCollision(GrammarAST ast,
IntervalSet set,
int el) |
protected void |
checkSetCollision(GrammarAST ast,
IntervalSet set,
int a,
int b) |
ATN |
createATN() |
private LexerAction |
createLexerAction(GrammarAST ID,
GrammarAST arg) |
private java.lang.Integer |
getChannelConstantValue(java.lang.String channelName,
org.antlr.runtime.Token token) |
static java.util.Set<java.lang.String> |
getCommonConstants() |
protected int |
getLexerActionIndex(LexerAction lexerAction) |
private java.lang.Integer |
getModeConstantValue(java.lang.String modeName,
org.antlr.runtime.Token token) |
IntervalSet |
getSetFromCharSetLiteral(GrammarAST charSetAST) |
private java.lang.Integer |
getTokenConstantValue(java.lang.String tokenName,
org.antlr.runtime.Token token) |
ATNFactory.Handle |
lexerAltCommands(ATNFactory.Handle alt,
ATNFactory.Handle cmds) |
ATNFactory.Handle |
lexerCallCommand(GrammarAST ID,
GrammarAST arg) |
ATNFactory.Handle |
lexerCommand(GrammarAST ID) |
ATNFactory.Handle |
range(GrammarAST a,
GrammarAST b)
Not valid for non-lexers.
|
ATNFactory.Handle |
rule(GrammarAST ruleAST,
java.lang.String name,
ATNFactory.Handle blk) |
ATNFactory.Handle |
set(GrammarAST associatedAST,
java.util.List<GrammarAST> alts,
boolean invert)
From set build single edge graph
o->o-set->o. |
ATNFactory.Handle |
stringLiteral(TerminalAST stringLiteralAST)
For a lexer, a string is a sequence of char to match.
|
ATNFactory.Handle |
tokenRef(TerminalAST node)
From label
A build graph o-A->o. |
_createATN, _ruleRef, addEOFTransitionToStartRules, addFollowLink, addRuleFollowLinks, alt, block, blockHasWildcardAlt, createRuleStartAndStopATNStates, elemList, epsilon, epsilon, epsilon, expectNonGreedy, getTokenType, label, listLabel, makeBlock, newState, newState, newState, optional, plus, ruleRef, sempred, setCurrentOuterAlt, setCurrentRuleName, star, wildcardpublic org.stringtemplate.v4.STGroup codegenTemplates
public static final java.util.Map<java.lang.String,java.lang.Integer> COMMON_CONSTANTS
LexerAction instances that are usable by a lexer interpreter.private java.util.List<java.lang.String> ruleCommands
protected java.util.Map<java.lang.Integer,LexerAction> indexToActionMap
LexerAction object.protected java.util.Map<LexerAction,java.lang.Integer> actionToIndexMap
LexerAction object to the action index.public LexerATNFactory(LexerGrammar g)
public static java.util.Set<java.lang.String> getCommonConstants()
public ATN createATN()
createATN in interface ATNFactorycreateATN in class ParserATNFactorypublic ATNFactory.Handle rule(GrammarAST ruleAST, java.lang.String name, ATNFactory.Handle blk)
rule in interface ATNFactoryrule in class ParserATNFactorypublic ATNFactory.Handle action(ActionAST action)
ParserATNFactoryactionIndex<0.action in interface ATNFactoryaction in class ParserATNFactoryprotected int getLexerActionIndex(LexerAction lexerAction)
public ATNFactory.Handle action(java.lang.String action)
action in interface ATNFactoryaction in class ParserATNFactoryprotected ATNFactory.Handle action(GrammarAST node, LexerAction lexerAction)
public ATNFactory.Handle lexerAltCommands(ATNFactory.Handle alt, ATNFactory.Handle cmds)
lexerAltCommands in interface ATNFactorylexerAltCommands in class ParserATNFactorypublic ATNFactory.Handle lexerCallCommand(GrammarAST ID, GrammarAST arg)
lexerCallCommand in interface ATNFactorylexerCallCommand in class ParserATNFactorypublic ATNFactory.Handle lexerCommand(GrammarAST ID)
lexerCommand in interface ATNFactorylexerCommand in class ParserATNFactorypublic ATNFactory.Handle range(GrammarAST a, GrammarAST b)
ParserATNFactoryrange in interface ATNFactoryrange in class ParserATNFactorypublic ATNFactory.Handle set(GrammarAST associatedAST, java.util.List<GrammarAST> alts, boolean invert)
ParserATNFactoryo->o-set->o. To conform to
what an alt block looks like, must have extra state on left.
This also handles ~A, converted to ~{A} set.set in interface ATNFactoryset in class ParserATNFactoryprotected boolean checkRange(GrammarAST leftNode, GrammarAST rightNode, int leftValue, int rightValue)
public ATNFactory.Handle stringLiteral(TerminalAST stringLiteralAST)
stringLiteral in interface ATNFactorystringLiteral in class ParserATNFactorypublic ATNFactory.Handle charSetLiteral(GrammarAST charSetAST)
charSetLiteral in interface ATNFactorycharSetLiteral in class ParserATNFactorypublic IntervalSet getSetFromCharSetLiteral(GrammarAST charSetAST)
private LexerATNFactory.CharSetParseState applyPrevStateAndMoveToCodePoint(GrammarAST charSetAST, IntervalSet set, LexerATNFactory.CharSetParseState state, int codePoint)
private LexerATNFactory.CharSetParseState applyPrevStateAndMoveToProperty(GrammarAST charSetAST, IntervalSet set, LexerATNFactory.CharSetParseState state, IntervalSet property)
private void applyPrevState(GrammarAST charSetAST, IntervalSet set, LexerATNFactory.CharSetParseState state)
protected void checkSetCollision(GrammarAST ast, IntervalSet set, int el)
protected void checkSetCollision(GrammarAST ast, IntervalSet set, int a, int b)
public ATNFactory.Handle tokenRef(TerminalAST node)
ParserATNFactoryA build graph o-A->o.tokenRef in interface ATNFactorytokenRef in class ParserATNFactoryprivate LexerAction createLexerAction(GrammarAST ID, GrammarAST arg)
private void checkCommands(java.lang.String command,
org.antlr.runtime.Token commandToken)
private java.lang.Integer getModeConstantValue(java.lang.String modeName,
org.antlr.runtime.Token token)
private java.lang.Integer getTokenConstantValue(java.lang.String tokenName,
org.antlr.runtime.Token token)
private java.lang.Integer getChannelConstantValue(java.lang.String channelName,
org.antlr.runtime.Token token)