/* 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