Package org.antlr.v4.runtime.atn
Class LexerPushModeAction
- java.lang.Object
-
- org.antlr.v4.runtime.atn.LexerPushModeAction
-
- All Implemented Interfaces:
LexerAction
public final class LexerPushModeAction extends Object implements LexerAction
Implements thepushMode
lexer action by callingLexer.pushMode(int)
with the assigned mode.- Since:
- 4.2
- Author:
- Sam Harwell
-
-
Constructor Summary
Constructors Constructor Description LexerPushModeAction(int mode)
Constructs a newpushMode
action with the specified mode value.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object obj)
void
execute(Lexer lexer)
Execute the lexer action in the context of the specifiedLexer
.LexerActionType
getActionType()
Gets the serialization type of the lexer action.int
getMode()
Get the lexer mode this action should transition the lexer to.int
hashCode()
boolean
isPositionDependent()
Gets whether the lexer action is position-dependent.String
toString()
-
-
-
Constructor Detail
-
LexerPushModeAction
public LexerPushModeAction(int mode)
Constructs a newpushMode
action with the specified mode value.- Parameters:
mode
- The mode value to pass toLexer.pushMode(int)
.
-
-
Method Detail
-
getMode
public int getMode()
Get the lexer mode this action should transition the lexer to.- Returns:
- The lexer mode for this
pushMode
command.
-
getActionType
public LexerActionType getActionType()
Gets the serialization type of the lexer action.- Specified by:
getActionType
in interfaceLexerAction
- Returns:
- This method returns
LexerActionType.PUSH_MODE
.
-
isPositionDependent
public boolean isPositionDependent()
Gets whether the lexer action is position-dependent. Position-dependent actions may have different semantics depending on theCharStream
index at the time the action is executed.Many lexer commands, including
type
,skip
, andmore
, do not check the input index during their execution. Actions like this are position-independent, and may be stored more efficiently as part of theLexerATNConfig.lexerActionExecutor
.- Specified by:
isPositionDependent
in interfaceLexerAction
- Returns:
- This method returns
false
.
-
execute
public void execute(Lexer lexer)
Execute the lexer action in the context of the specifiedLexer
.For position-dependent actions, the input stream must already be positioned correctly prior to calling this method.
This action is implemented by calling
Lexer.pushMode(int)
with the value provided bygetMode()
.- Specified by:
execute
in interfaceLexerAction
- Parameters:
lexer
- The lexer instance.
-
-