| /* 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 "RecognitionException.h" |
| |
| namespace antlr4 { |
| |
| /// A semantic predicate failed during validation. Validation of predicates |
| /// occurs when normally parsing the alternative just like matching a token. |
| /// Disambiguating predicate evaluation occurs when we test a predicate during |
| /// prediction. |
| class ANTLR4CPP_PUBLIC FailedPredicateException : public RecognitionException { |
| public: |
| FailedPredicateException(Parser *recognizer); |
| FailedPredicateException(Parser *recognizer, const std::string &predicate); |
| FailedPredicateException(Parser *recognizer, const std::string &predicate, const std::string &message); |
| |
| virtual size_t getRuleIndex(); |
| virtual size_t getPredIndex(); |
| virtual std::string getPredicate(); |
| |
| private: |
| size_t _ruleIndex; |
| size_t _predicateIndex; |
| std::string _predicate; |
| }; |
| |
| } // namespace antlr4 |