UNPKG

2.98 kBJavaScriptView Raw
1"use strict";
2/*!
3 * Copyright 2016 The ANTLR Project. All rights reserved.
4 * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.
5 */
6var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
7 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
9 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
10 return c > 3 && r && Object.defineProperty(target, key, r), r;
11};
12var __param = (this && this.__param) || function (paramIndex, decorator) {
13 return function (target, key) { decorator(target, key, paramIndex); }
14};
15Object.defineProperty(exports, "__esModule", { value: true });
16exports.FailedPredicateException = void 0;
17const RecognitionException_1 = require("./RecognitionException");
18const Decorators_1 = require("./Decorators");
19const PredicateTransition_1 = require("./atn/PredicateTransition");
20/** A semantic predicate failed during validation. Validation of predicates
21 * occurs when normally parsing the alternative just like matching a token.
22 * Disambiguating predicate evaluation occurs when we test a predicate during
23 * prediction.
24 */
25let FailedPredicateException = class FailedPredicateException extends RecognitionException_1.RecognitionException {
26 constructor(recognizer, predicate, message) {
27 super(recognizer, recognizer.inputStream, recognizer.context, FailedPredicateException.formatMessage(predicate, message));
28 let s = recognizer.interpreter.atn.states[recognizer.state];
29 let trans = s.transition(0);
30 if (trans instanceof PredicateTransition_1.PredicateTransition) {
31 this._ruleIndex = trans.ruleIndex;
32 this._predicateIndex = trans.predIndex;
33 }
34 else {
35 this._ruleIndex = 0;
36 this._predicateIndex = 0;
37 }
38 this._predicate = predicate;
39 super.setOffendingToken(recognizer, recognizer.currentToken);
40 }
41 get ruleIndex() {
42 return this._ruleIndex;
43 }
44 get predicateIndex() {
45 return this._predicateIndex;
46 }
47 get predicate() {
48 return this._predicate;
49 }
50 static formatMessage(predicate, message) {
51 if (message) {
52 return message;
53 }
54 return `failed predicate: {${predicate}}?`;
55 }
56};
57__decorate([
58 Decorators_1.NotNull
59], FailedPredicateException, "formatMessage", null);
60FailedPredicateException = __decorate([
61 __param(0, Decorators_1.NotNull)
62], FailedPredicateException);
63exports.FailedPredicateException = FailedPredicateException;
64//# sourceMappingURL=FailedPredicateException.js.map
\No newline at end of file