Package org.antlr.v4.automata
Class LexerATNFactory
- java.lang.Object
-
- org.antlr.v4.automata.ParserATNFactory
-
- org.antlr.v4.automata.LexerATNFactory
-
- All Implemented Interfaces:
ATNFactory
public class LexerATNFactory extends ParserATNFactory
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classLexerATNFactory.CharSetParseState-
Nested classes/interfaces inherited from interface org.antlr.v4.automata.ATNFactory
ATNFactory.Handle
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Map<LexerAction,java.lang.Integer>actionToIndexMapMaps from aLexerActionobject to the action index.org.stringtemplate.v4.STGroupcodegenTemplatesstatic java.util.Map<java.lang.String,java.lang.Integer>COMMON_CONSTANTSProvides 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>indexToActionMapMaps from an action index to aLexerActionobject.private java.util.List<java.lang.String>ruleCommands-
Fields inherited from class org.antlr.v4.automata.ParserATNFactory
atn, currentOuterAlt, currentRule, g, preventEpsilonClosureBlocks, preventEpsilonOptionalBlocks
-
-
Constructor Summary
Constructors Constructor Description LexerATNFactory(LexerGrammar g)LexerATNFactory(LexerGrammar g, CodeGenerator codeGenerator)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ATNFactory.Handleaction(java.lang.String action)ATNFactory.Handleaction(ActionAST action)Build what amounts to an epsilon transition with an action.protected ATNFactory.Handleaction(GrammarAST node, LexerAction lexerAction)private voidapplyPrevState(GrammarAST charSetAST, IntervalSet set, LexerATNFactory.CharSetParseState state)private LexerATNFactory.CharSetParseStateapplyPrevStateAndMoveToCodePoint(GrammarAST charSetAST, IntervalSet set, LexerATNFactory.CharSetParseState state, int codePoint)private LexerATNFactory.CharSetParseStateapplyPrevStateAndMoveToProperty(GrammarAST charSetAST, IntervalSet set, LexerATNFactory.CharSetParseState state, IntervalSet property)ATNFactory.HandlecharSetLiteral(GrammarAST charSetAST)[Aa\t ሴa-z\]\p{Letter}\-] char setsprivate voidcheckCharAndAddToSet(GrammarAST ast, IntervalSet set, int c)private voidcheckCommands(java.lang.String command, org.antlr.runtime.Token commandToken)protected booleancheckRange(GrammarAST leftNode, GrammarAST rightNode, int leftValue, int rightValue)private voidcheckRangeAndAddToSet(GrammarAST mainAst, IntervalSet set, int a, int b)private CharactersDataCheckStatuscheckRangeAndAddToSet(GrammarAST rootAst, GrammarAST ast, IntervalSet set, int a, int b, boolean caseInsensitive, CharactersDataCheckStatus previousStatus)ATNcreateATN()private LexerActioncreateLexerAction(GrammarAST ID, GrammarAST arg)private TransitioncreateTransition(ATNState target, int from, int to, org.antlr.runtime.tree.CommonTree tree)private java.lang.IntegergetChannelConstantValue(java.lang.String channelName, org.antlr.runtime.Token token)static java.util.Set<java.lang.String>getCommonConstants()protected intgetLexerActionIndex(LexerAction lexerAction)private java.lang.IntegergetModeConstantValue(java.lang.String modeName, org.antlr.runtime.Token token)IntervalSetgetSetFromCharSetLiteral(GrammarAST charSetAST)private java.lang.IntegergetTokenConstantValue(java.lang.String tokenName, org.antlr.runtime.Token token)ATNFactory.HandlelexerAltCommands(ATNFactory.Handle alt, ATNFactory.Handle cmds)ATNFactory.HandlelexerCallCommand(GrammarAST ID, GrammarAST arg)private ATNFactory.HandlelexerCallCommandOrCommand(GrammarAST ID, GrammarAST arg)ATNFactory.HandlelexerCommand(GrammarAST ID)ATNFactory.Handlerange(GrammarAST a, GrammarAST b)Not valid for non-lexers.ATNFactory.Handlerule(GrammarAST ruleAST, java.lang.String name, ATNFactory.Handle blk)ATNFactory.Handleset(GrammarAST associatedAST, java.util.List<GrammarAST> alts, boolean invert)From set build single edge grapho->o-set->o.ATNFactory.HandlestringLiteral(TerminalAST stringLiteralAST)For a lexer, a string is a sequence of char to match.ATNFactory.HandletokenRef(TerminalAST node)From labelAbuild grapho-A->o.-
Methods inherited from class org.antlr.v4.automata.ParserATNFactory
_createATN, _ruleRef, addEOFTransitionToStartRules, addFollowLink, addRuleFollowLinks, alt, block, blockHasWildcardAlt, checkEpsilonClosure, createRuleStartAndStopATNStates, elemList, epsilon, epsilon, epsilon, expectNonGreedy, getTokenType, label, listLabel, makeBlock, newState, newState, newState, optional, plus, ruleRef, sempred, setCurrentOuterAlt, setCurrentRuleName, star, wildcard
-
-
-
-
Field Detail
-
codegenTemplates
public org.stringtemplate.v4.STGroup codegenTemplates
-
COMMON_CONSTANTS
public static final 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. These names would be resolved by the Java compiler for lexer commands that are translated to embedded actions, but are required during code generation for creatingLexerActioninstances that are usable by a lexer interpreter.
-
ruleCommands
private final java.util.List<java.lang.String> ruleCommands
-
indexToActionMap
protected java.util.Map<java.lang.Integer,LexerAction> indexToActionMap
Maps from an action index to aLexerActionobject.
-
actionToIndexMap
protected java.util.Map<LexerAction,java.lang.Integer> actionToIndexMap
Maps from aLexerActionobject to the action index.
-
-
Constructor Detail
-
LexerATNFactory
public LexerATNFactory(LexerGrammar g)
-
LexerATNFactory
public LexerATNFactory(LexerGrammar g, CodeGenerator codeGenerator)
-
-
Method Detail
-
getCommonConstants
public static java.util.Set<java.lang.String> getCommonConstants()
-
createATN
public ATN createATN()
- Specified by:
createATNin interfaceATNFactory- Overrides:
createATNin classParserATNFactory
-
rule
public ATNFactory.Handle rule(GrammarAST ruleAST, java.lang.String name, ATNFactory.Handle blk)
- Specified by:
rulein interfaceATNFactory- Overrides:
rulein classParserATNFactory
-
action
public ATNFactory.Handle action(ActionAST action)
Description copied from class:ParserATNFactoryBuild what amounts to an epsilon transition with an action. The action goes into ATN though it is ignored during prediction ifactionIndex<0.- Specified by:
actionin interfaceATNFactory- Overrides:
actionin classParserATNFactory
-
getLexerActionIndex
protected int getLexerActionIndex(LexerAction lexerAction)
-
action
public ATNFactory.Handle action(java.lang.String action)
- Specified by:
actionin interfaceATNFactory- Overrides:
actionin classParserATNFactory
-
action
protected ATNFactory.Handle action(GrammarAST node, LexerAction lexerAction)
-
lexerAltCommands
public ATNFactory.Handle lexerAltCommands(ATNFactory.Handle alt, ATNFactory.Handle cmds)
- Specified by:
lexerAltCommandsin interfaceATNFactory- Overrides:
lexerAltCommandsin classParserATNFactory
-
lexerCallCommand
public ATNFactory.Handle lexerCallCommand(GrammarAST ID, GrammarAST arg)
- Specified by:
lexerCallCommandin interfaceATNFactory- Overrides:
lexerCallCommandin classParserATNFactory
-
lexerCommand
public ATNFactory.Handle lexerCommand(GrammarAST ID)
- Specified by:
lexerCommandin interfaceATNFactory- Overrides:
lexerCommandin classParserATNFactory
-
lexerCallCommandOrCommand
private ATNFactory.Handle lexerCallCommandOrCommand(GrammarAST ID, GrammarAST arg)
-
range
public ATNFactory.Handle range(GrammarAST a, GrammarAST b)
Description copied from class:ParserATNFactoryNot valid for non-lexers.- Specified by:
rangein interfaceATNFactory- Overrides:
rangein classParserATNFactory
-
set
public ATNFactory.Handle set(GrammarAST associatedAST, java.util.List<GrammarAST> alts, boolean invert)
Description copied from class:ParserATNFactoryFrom set build single edge grapho->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.- Specified by:
setin interfaceATNFactory- Overrides:
setin classParserATNFactory
-
checkRange
protected boolean checkRange(GrammarAST leftNode, GrammarAST rightNode, int leftValue, int rightValue)
-
stringLiteral
public ATNFactory.Handle stringLiteral(TerminalAST stringLiteralAST)
For a lexer, a string is a sequence of char to match. That is, "fog" is treated as 'f' 'o' 'g' not as a single transition in the DFA. Machine== o-'f'->o-'o'->o-'g'->o and has n+1 states for n characters. if "caseInsensitive" option is enabled, "fog" will be treated as o-('f'|'F') -> o-('o'|'O') -> o-('g'|'G')- Specified by:
stringLiteralin interfaceATNFactory- Overrides:
stringLiteralin classParserATNFactory
-
charSetLiteral
public ATNFactory.Handle charSetLiteral(GrammarAST charSetAST)
[Aa\t ሴa-z\]\p{Letter}\-] char sets- Specified by:
charSetLiteralin interfaceATNFactory- Overrides:
charSetLiteralin classParserATNFactory
-
getSetFromCharSetLiteral
public IntervalSet getSetFromCharSetLiteral(GrammarAST charSetAST)
-
applyPrevStateAndMoveToCodePoint
private LexerATNFactory.CharSetParseState applyPrevStateAndMoveToCodePoint(GrammarAST charSetAST, IntervalSet set, LexerATNFactory.CharSetParseState state, int codePoint)
-
applyPrevStateAndMoveToProperty
private LexerATNFactory.CharSetParseState applyPrevStateAndMoveToProperty(GrammarAST charSetAST, IntervalSet set, LexerATNFactory.CharSetParseState state, IntervalSet property)
-
applyPrevState
private void applyPrevState(GrammarAST charSetAST, IntervalSet set, LexerATNFactory.CharSetParseState state)
-
checkCharAndAddToSet
private void checkCharAndAddToSet(GrammarAST ast, IntervalSet set, int c)
-
checkRangeAndAddToSet
private void checkRangeAndAddToSet(GrammarAST mainAst, IntervalSet set, int a, int b)
-
checkRangeAndAddToSet
private CharactersDataCheckStatus checkRangeAndAddToSet(GrammarAST rootAst, GrammarAST ast, IntervalSet set, int a, int b, boolean caseInsensitive, CharactersDataCheckStatus previousStatus)
-
createTransition
private Transition createTransition(ATNState target, int from, int to, org.antlr.runtime.tree.CommonTree tree)
-
tokenRef
public ATNFactory.Handle tokenRef(TerminalAST node)
Description copied from class:ParserATNFactoryFrom labelAbuild grapho-A->o.- Specified by:
tokenRefin interfaceATNFactory- Overrides:
tokenRefin classParserATNFactory
-
createLexerAction
private LexerAction createLexerAction(GrammarAST ID, GrammarAST arg)
-
checkCommands
private void checkCommands(java.lang.String command, org.antlr.runtime.Token commandToken)
-
getModeConstantValue
private java.lang.Integer getModeConstantValue(java.lang.String modeName, org.antlr.runtime.Token token)
-
getTokenConstantValue
private java.lang.Integer getTokenConstantValue(java.lang.String tokenName, org.antlr.runtime.Token token)
-
getChannelConstantValue
private java.lang.Integer getChannelConstantValue(java.lang.String channelName, org.antlr.runtime.Token token)
-
-