private ATNConfig transform(@NotNull ATNState state, @Nullable PredictionContext context, @NotNull SemanticContext semanticContext, boolean checkNonGreedy, LexerActionExecutor lexerActionExecutor) { boolean passedThroughNonGreedy = checkNonGreedy && checkNonGreedyDecision(this, state); if (semanticContext != SemanticContext.NONE) { if (lexerActionExecutor != null || passedThroughNonGreedy) { return new ActionSemanticContextATNConfig(lexerActionExecutor, semanticContext, this, state, context, passedThroughNonGreedy); } else { return new SemanticContextATNConfig(semanticContext, this, state, context); } } else if (lexerActionExecutor != null || passedThroughNonGreedy) { return new ActionATNConfig(lexerActionExecutor, this, state, context, passedThroughNonGreedy); } else { return new ATNConfig(this, state, context); } }