]> gitweb.ps.run Git - toc/blobdiff - antlr4-cpp-runtime-4.9.2-source/runtime/src/FailedPredicateException.h
add antlr source code and ReadMe
[toc] / antlr4-cpp-runtime-4.9.2-source / runtime / src / FailedPredicateException.h
diff --git a/antlr4-cpp-runtime-4.9.2-source/runtime/src/FailedPredicateException.h b/antlr4-cpp-runtime-4.9.2-source/runtime/src/FailedPredicateException.h
new file mode 100644 (file)
index 0000000..16e37f7
--- /dev/null
@@ -0,0 +1,32 @@
+/* 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