/*
 * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
 * Use of this file is governed by the BSD 3-clause license that
 * can be found in the LICENSE.txt file in the project root.
 */

package org.antlr.v4.runtime.atn;

import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.misc.MurmurHash;

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.

Author:Sam Harwell
Since:4.2
/** * Implements the {@code popMode} lexer action by calling {@link Lexer#popMode}. * * <p>The {@code popMode} command does not have any parameters, so this action is * implemented as a singleton instance exposed by {@link #INSTANCE}.</p> * * @author Sam Harwell * @since 4.2 */
public final class LexerPopModeAction implements LexerAction {
Provides a singleton instance of this parameterless lexer action.
/** * Provides a singleton instance of this parameterless lexer action. */
public static final LexerPopModeAction INSTANCE = new LexerPopModeAction();
Constructs the singleton instance of the lexer popMode command.
/** * Constructs the singleton instance of the lexer {@code popMode} command. */
private LexerPopModeAction() { }
{@inheritDoc}
Returns:This method returns LexerActionType.POP_MODE.
/** * {@inheritDoc} * @return This method returns {@link LexerActionType#POP_MODE}. */
@Override public LexerActionType getActionType() { return LexerActionType.POP_MODE; }
{@inheritDoc}
Returns:This method returns false.
/** * {@inheritDoc} * @return This method returns {@code false}. */
@Override public boolean isPositionDependent() { return false; }
{@inheritDoc}

This action is implemented by calling Lexer.popMode.

/** * {@inheritDoc} * * <p>This action is implemented by calling {@link Lexer#popMode}.</p> */
@Override public void execute(Lexer lexer) { lexer.popMode(); } @Override public int hashCode() { int hash = MurmurHash.initialize(); hash = MurmurHash.update(hash, getActionType().ordinal()); return MurmurHash.finish(hash, 1); } @Override @SuppressWarnings("EqualsWhichDoesntCheckParameterClass") public boolean equals(Object obj) { return obj == this; } @Override public String toString() { return "popMode"; } }