LexerIndexedCustomAction

This implementation of {@link LexerAction} is used for tracking input offsets for position-dependent actions within a {@link LexerActionExecutor}.

<p>This action is not serialized as part of the ATN, and is only required for position-dependent lexer actions which appear at a location other than the end of a rule. For more information about DFA optimizations employed for lexer actions, see {@link LexerActionExecutor#append} and {@link LexerActionExecutor#fixOffsetBeforeMatch}.</p>

@author Sam Harwell @since 4.2

Constructors

this
this(size_t offset, LexerAction action)

@uml Constructs a new indexed custom action by associating a character offset with a {@link LexerAction}.

Members

Functions

equals
bool equals(Object obj)
Undocumented in source. Be warned that the author may not have intended to support it.
execute
void execute(InterfaceLexer lexer)

@uml {@inheritDoc}

getAction
LexerAction getAction()

@uml Gets the lexer action to execute.

getActionType
LexerActionType getActionType()

@uml {@inheritDoc}

getOffset
size_t getOffset()

@uml Gets the location in the input {@link CharStream} at which the lexer action should be executed. The value is interpreted as an offset relative to the token start index.

isPositionDependent
bool isPositionDependent()

@uml {@inheritDoc} @return This method returns {@code true}.

toHash
size_t toHash()

@uml @nothrow @trusted @override

Inherited Members

From LexerAction

getActionType
LexerActionType getActionType()

Gets the serialization type of the lexer action.

isPositionDependent
bool isPositionDependent()

Gets whether the lexer action is position-dependent. Position-dependent actions may have different semantics depending on the {@link CharStream} index at the time the action is executed.

execute
void execute(InterfaceLexer lexer)

Execute the lexer action in the context of the specified {@link Lexer}.

toHash
size_t toHash()

@uml @nothrow

Meta