/* 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 semantic predicate /// evaluations which occur during prediction. /// /// class ANTLR4CPP_PUBLIC PredicateEvalInfo : public DecisionEventInfo { public: /// The semantic context which was evaluated. const Ref semctx; /// /// The alternative number for the decision which is guarded by the semantic /// context . Note that other ATN /// configurations may predict the same alternative which are guarded by /// other semantic contexts and/or . /// const size_t predictedAlt; /// The result of evaluating the semantic context . const bool evalResult; /// /// Constructs a new instance of the class with the /// specified detailed predicate evaluation information. /// /// The decision number /// The input token stream /// The start index for the current prediction /// The index at which the predicate evaluation was /// triggered. Note that the input stream may be reset to other positions for /// the actual evaluation of individual predicates. /// The semantic context which was evaluated /// The results of evaluating the semantic context /// The alternative number for the decision which is /// guarded by the semantic context {@code semctx}. See /// for more information. /// {@code true} if the semantic context was /// evaluated during LL prediction; otherwise, {@code false} if the semantic /// context was evaluated during SLL prediction /// /// /// PredicateEvalInfo(size_t decision, TokenStream *input, size_t startIndex, size_t stopIndex, Ref const& semctx, bool evalResult, size_t predictedAlt, bool fullCtx); }; } // namespace atn } // namespace antlr4