/* 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. */ #pragma once #include "atn/DecisionEventInfo.h" namespace antlr4 { namespace atn { /// This class represents profiling event information for tracking the lookahead /// depth required in order to make a prediction. class ANTLR4CPP_PUBLIC LookaheadEventInfo : public DecisionEventInfo { public: /// The alternative chosen by adaptivePredict(), not necessarily /// the outermost alt shown for a rule; left-recursive rules have /// user-level alts that differ from the rewritten rule with a (...) block /// and a (..)* loop. size_t predictedAlt = 0; /// /// Constructs a new instance of the class with /// the specified detailed lookahead information. /// /// The decision number /// The final configuration set containing the necessary /// information to determine the result of a prediction, or {@code null} if /// the final configuration set is not available /// The input token stream /// The start index for the current prediction /// The index at which the prediction was finally made /// {@code true} if the current lookahead is part of an LL /// prediction; otherwise, {@code false} if the current lookahead is part of /// an SLL prediction LookaheadEventInfo(size_t decision, ATNConfigSet *configs, size_t predictedAlt, TokenStream *input, size_t startIndex, size_t stopIndex, bool fullCtx); }; } // namespace atn } // namespace antlr4