Class LexerPopModeAction

  • All Implemented Interfaces:
    LexerAction

    public final class LexerPopModeAction
    extends Object
    implements LexerAction
    Implements the popMode lexer action by calling Lexer.popMode().

    The popMode command does not have any parameters, so this action is implemented as a singleton instance exposed by INSTANCE.

    Since:
    4.2
    Author:
    Sam Harwell
    • Field Detail

      • INSTANCE

        public static final LexerPopModeAction INSTANCE
        Provides a singleton instance of this parameterless lexer action.
    • Method Detail

      • isPositionDependent

        public boolean isPositionDependent()
        Gets whether the lexer action is position-dependent. Position-dependent actions may have different semantics depending on the CharStream index at the time the action is executed.

        Many lexer commands, including type, skip, and more, do not check the input index during their execution. Actions like this are position-independent, and may be stored more efficiently as part of the LexerATNConfig.lexerActionExecutor.

        Specified by:
        isPositionDependent in interface LexerAction
        Returns:
        This method returns false.
      • execute

        public void execute​(Lexer lexer)
        Execute the lexer action in the context of the specified Lexer.

        For position-dependent actions, the input stream must already be positioned correctly prior to calling this method.

        This action is implemented by calling Lexer.popMode().

        Specified by:
        execute in interface LexerAction
        Parameters:
        lexer - The lexer instance.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object